# US 2018/0024832 A1 · Cognitive feature analytics

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0024832 A1
- Document ID: US20180024832A1
- Status: Published application
- Kind: A1
- Application number: 15/214,589
- Filed: 2016-07-20
- Published: 2018-01-25
- Earliest claimed: 2016-07-20
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Ya Bin DANG; Qi Cheng LI; Shao Chun LI; Guang Tai LIANG; Xin ZHOU
- Web page: https://patentgrep.com/patent/US20180024832A1

## CPC

- G06F 8/74: Reverse engineering; Extracting design information from source code
- G06F 8/20: Software design
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method to build feature evolution models for existing applications (“apps”) in the market based on open app data repositories). A feature evolution model of an app depicts the app name, its historical versions (historical version labels, release timestamps of each version), rating values of each version, and structured features (e.g., umbrella features and low-level features) each version introduces, improves or deletes. There is further extracted from the app description and release logs the app name, historical version labels, release timestamps, use the rating info of the app to extract and assign rating values for each version of the app, and apply NLP techniques and source code analysis techniques to extract “structured features” of the app through analyzing the app description, the release logs, and corresponding source code revisions of the app. Upon the built feature evolution models, various feature insights may be easily extracted and generated.

## Claims

### Claim 1

A method for improving features of a product comprising:
obtaining, at a programmed processor, data relating to features of an existing product;
building, using the programmed processor, a behavior evolution model of said product based on said features data, said behavior evolution model comprising one of more structured features and a feature's fine-grained relationship with other related entities;
computing, using the programmed processor, one or more insights for users' preferences based on said behavior evolution model; and
designing a future product or improving an existing product based on said one or more computed insights for users' preferences.

### Claim 2 (depends on 1)

The method of claim 1, wherein said product is a software application, said obtaining comprising
storing, at a memory storage device, features data relating to said software application, the feature data spanning at least one or more software application versions released over time;
automatically extracting said stored feature related data of said product, said stored feature data comprising one or more of: an application description and version release logs relating to said released software application product versions; and
implementing, by said programmed processor, natural language processing (NLP) applied to said application description and version release logs to identify said one or more structured features, said structured features comprising: umbrella features (UF) and low-level features each release version introduces, improves or deletes.

### Claim 3 (depends on 2)

The method of claim 2, wherein said building said behavior evolution model comprises:
utilizing description information and structure of a source code of said application to evaluate or refine or both evaluate and refine, the identified one or more structured features.

### Claim 4 (depends on 2)

The method of claim 2, wherein said building said behavior evolution model comprises:
obtaining, by said processor, the application name, historical version labels, release timestamps from each released version, and rating information of each version of the application; and
tracking application versions by linking versions with release timestamps and said rating information, said building said behavior evolution model comprising linking features and release versions with change labels, said change labels being labels introduced, deleted or refined.

### Claim 5 (depends on 3)

The method of claim 3, wherein said automatically extracting comprises:
extracting, using said processor, feature related description units, said units comprising keywords or structure characteristics,
identifying, by said processor device, potential umbrella features based on said keywords or structure characteristics;
generating said low-level features for each potential umbrella feature based on its nearby information;
determining whether a first umbrella feature contains a lower-level feature which is a same or semantically similar with another umbrella feature; and
merging the another umbrella feature and the lower-level feature to be a refined lower-level feature of said first umbrella feature.

### Claim 6 (depends on 3)

The method of claim 3, further comprising: evaluating, refining or both evaluating and refining the identified structured features, said method further comprises:
based on a code implementation CI related to UF, using said processor to collect descriptions of said CI, said description comprising a code name, or a code comment;
based on locations of these descriptions and control flows of CI, generating by said processor, a structured description model (SDM);
based on the structured description model SDM of CI, validating, by the processor, the corresponding umbrella feature with child features.

### Claim 7 (depends on 4)

The method of claim 4, wherein said computing, using the programmed processor, one or more insights for users' preferences comprises:
computing, by said processor, an intra-application feature snapshot for each version of each application from one or more built feature evolution models;
computing, by said processor, an inter-application feature snapshot for each category of applications in a certain timestamp from said one or more built feature evolution models; and
computing, based on a computed an intra-application feature snapshot, a computed inter-application feature snapshot, or both a computed an intra-application feature snapshot and a computed inter-application feature snapshot, an insight extraction rule relating to one or more feature insights for user preferences to be extracted and generated.

### Claim 8 (depends on 7)

The method of claim 7, wherein said computed one or more insights for users' preferences comprises: a surprising feature, a must-have feature, a failure feature, a co-occurring feature, a continuously-improved feature, a seldom-but-interesting feature.

### Claim 9

A system for improving features of a product comprising:
a processor and a computer-readable memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:
obtain data relating to features of an existing product;
build a behavior evolution model of said product based on said features data, said behavior evolution model comprising one of more structured features and a feature's fine-grained relationship with other related entities;
compute one or more insights for users' preferences based on said behavior evolution model; and
design a future product or improve an existing product based on said one or more computed insights for users' preferences.

### Claim 10 (depends on 9)

The system of claim 9, wherein said product is a software application product, wherein to obtain, said programmed processor is further configured to:
store, at a memory storage device, features data relating to said software application, the feature data spanning at least one or more software application versions released over time;
automatically extract said stored feature related data of said product, said stored feature data comprising one or more of: an application description and version release logs relating to said released software application product versions; and
implement natural language processing (NLP) applied to said application description and version release logs to identify said one or more structured features, said structured features comprising: umbrella features (UF) and low-level features each release version introduces, improves or deletes.

### Claim 11 (depends on 10)

The system of claim 10, wherein to build said behavior evolution model, said programmed processor is further configured to:
utilize description information and structure of a source code of said application to evaluate or refine or both evaluate and refine, the identified one or more structured features.

### Claim 12 (depends on 11)

The system of claim 11, wherein to build said behavior evolution model, said programmed processor is further configured to:
obtain the application name, historical version labels, release timestamps from each released version, and rating information of each version of the application; and
track application versions by linking versions with release timestamps and said rating information, said building said behavior evolution model comprising linking features and release versions with change labels, said change labels being labels introduced, deleted or refined.

### Claim 13 (depends on 12)

The system of claim 12, wherein to automatically extract, said programmed processor is further configured to:
extract feature related description units, said units comprising keywords or structure characteristics,
identify potential umbrella features based on said keywords or structure characteristics;
generate said low-level features for each potential umbrella feature based on its nearby information;
determine whether a first umbrella feature contains a lower-level feature which is a same or semantically similar with another umbrella feature; and
merge the another umbrella feature and the lower-level feature to be a refined lower-level feature of said first umbrella feature

### Claim 14 (depends on 11)

The system of claim 11, wherein to evaluate or refine or both evaluate and refine, the identified features, said programmed processor is further configured to:
based on the code implementation CI related to UF, collect descriptions of said CI, said description comprising a code name, or a code comment;
based on locations of these descriptions and control flows of CI, generate a structured description model (SDM);
based on the structured description model SDM of CI, validate the corresponding umbrella feature with child features.

### Claim 15 (depends on 12)

The system of claim 12, wherein the programmed processor is further configured to:
compute an intra-application feature snapshot for each version of each application from one or more built feature evolution models;
compute an inter-application feature snapshot for each category of applications in a certain timestamp from said one or more built feature evolution models; and
compute, based on a computed an intra-application feature snapshot, a computed inter-application feature snapshot, or both a computed an intra-application feature snapshot and a computed inter-application feature snapshot, an insight extraction rule relating to one or more feature insights for user preferences to be extracted and generated.

### Claim 16

A computer program product for improving features of a product, the computer program product comprising a computer-readable storage medium having a computer-readable program stored therein, wherein the computer-readable program, when executed on a computer system comprising at least one processor, causes the processor to perform:
obtaining, at a programmed processor, data relating to features of an existing product;
building, using the programmed processor, a behavior evolution model of said product based on said features data, said behavior evolution model comprising one of more structured features and a feature's fine-grained relationship with other related entities;
computing, using the programmed processor, one or more insights for users' preferences based on said behavior evolution model; and
designing a future product or improving an existing product based on said one or more computed insights for users' preferences.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein said product is a software application product, said product further comprising instructions for:
storing, at a memory storage device, features data relating to said software application, the feature data spanning at least one or more software application versions released over time;
automatically extracting said stored feature related data of said product, said stored feature data comprising one or more of: an application description and version release logs relating to said released software application product versions; and
implementing, by said programmed processor, natural language processing (NLP) applied to said application description and version release logs to identify said one or more structured features, said structured features comprising: umbrella features (UF) and low-level features each release version introduces, improves or deletes.

### Claim 18 (depends on 17)

The computer program product of claim 17, wherein for building a behavior evolution model for a software application, said product further comprising instructions causing the processor to perform:
obtaining the application name, historical version labels, release timestamps from each released version, and rating information of each version of the application; and
tracking application versions by linking versions with release timestamps and said rating information, said building said behavior evolution model comprising linking features and release versions with change labels, said change labels being labels introduced, deleted or refined.

### Claim 19 (depends on 17)

The computer program product of claim 17, wherein said automatically extracting comprises:
extracting feature related description units, said units comprising keywords or structure characteristics,
identifying potential umbrella features based on said keywords or structure characteristics;
generating said low-level features for each potential umbrella feature based on its nearby information;
determining whether a first umbrella feature contains a lower-level feature which is a same or semantically similar with another umbrella feature; and
merging the another umbrella feature and the lower-level feature to be a refined lower-level feature of said first umbrella feature.

### Claim 20 (depends on 18)

The computer program product of claim 18, wherein said product further comprising instructions for configuring said processor to perform:
computing an intra-application feature snapshot for each version of each application;
computing an inter-application feature snapshot for each category of applications in a certain timestamp; and
computing, based on a computed an intra-application feature snapshot and a computed inter-application feature snapshot, an insight extraction rule relating to one or more various feature insights for user preferences to be extracted and generated, said one or more various feature insights for user preferences comprises: a surprising feature, a must-have feature, a failure feature, a co-occurring feature, a continuously-improved feature, a seldom-but-interesting feature.
