CN107885768B - User comment mining method for APP software use quality - Google Patents

User comment mining method for APP software use quality Download PDF

Info

Publication number
CN107885768B
CN107885768B CN201710890944.4A CN201710890944A CN107885768B CN 107885768 B CN107885768 B CN 107885768B CN 201710890944 A CN201710890944 A CN 201710890944A CN 107885768 B CN107885768 B CN 107885768B
Authority
CN
China
Prior art keywords
comment
mode
word
seed
speech
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710890944.4A
Other languages
Chinese (zh)
Other versions
CN107885768A (en
Inventor
姜瑛
胡甜媛
丁家满
李凌宇
汪海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kunming University of Science and Technology
Original Assignee
Kunming University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kunming University of Science and Technology filed Critical Kunming University of Science and Technology
Priority to CN201710890944.4A priority Critical patent/CN107885768B/en
Publication of CN107885768A publication Critical patent/CN107885768A/en
Application granted granted Critical
Publication of CN107885768B publication Critical patent/CN107885768B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Abstract

The invention relates to a user comment mining method for the use quality of APP software, and belongs to the field of APP software use quality analysis. Firstly, excavating APP software user comments reflecting the use quality by using initial comment seeds; then, for the user comment which is unsuccessfully matched with the comment seed, judging whether the user comment reflects the use quality or not according to the APP software use quality feature word list and extracting a comment mode; and finally, extracting new comment seeds based on the candidate comment mode, and further mining user comments related to the use quality. The method is beneficial to mining comments related to the use quality from a large number of APP software user comments; the method is helpful for obtaining information related to ISO/IEC 25010 use quality attributes in APP software user comments; the method is helpful for analyzing the APP software use quality.

Description

User comment mining method for APP software use quality
Technical Field
The invention relates to a user comment mining method for the use quality of APP software, and belongs to the field of APP software use quality analysis.
Background
At present, APP software is more and more diversified in type, not only provides information and simple services for people, but also can influence life, economy, even health and safety of people from various aspects. Therefore, assessing the quality of APP software becomes critical. According to the definition of the international organization for standardization ISO: "software quality is the sum of all features and all characteristics of a software product that are relevant to meeting the specified and implied requirements capabilities". Software quality includes internal quality, external quality, usage quality, and process quality. Wherein quality of use is the degree of effectiveness, efficiency, safety, and satisfaction that a particular user uses a product or system to meet the needs of the user to achieve a particular goal in a particular use environment. The use quality is the non-functional quality characteristic experienced from the user perspective in the software actual application environment, and the measurement thereof depends on the environment for measurement, and changes with different evaluators. Some users can give corresponding comments after using the APP software, the user comments are important sources of user experience information, reflect the use condition of the APP software, pay attention to specific attributes of the APP software by the users and the like, and are important bases for analyzing the use quality. In recent years, use quality analysis based on user comments has received increasing attention. How to extract comments related to the use quality from a large number of APP software user comments becomes an urgent problem to be solved.
Disclosure of Invention
Aiming at the defects in the prior art, the invention provides a user comment mining method aiming at the APP software use quality.
The technical scheme of the invention is as follows: a user comment mining method aiming at the APP software use quality,
firstly, excavating APP software user comments reflecting the use quality by using initial comment seeds; then, for the user comment which is unsuccessfully matched with the comment seed, judging whether the user comment reflects the use quality or not according to the APP software use quality feature word list and extracting a comment mode; and finally, extracting new comment seeds based on the candidate comment mode, and further mining user comments related to the use quality.
The method comprises the following specific steps:
step1, initialization data: c user comment comments after word segmentation are arranged in the comment library, wherein m is 1, s comment seeds are arranged in the comment seed library, and f use quality feature words feature _ word are arranged in the use quality feature word list;
step2, judging whether the undetermined user comments exist in the comment library: judging whether m is less than or equal to c: if yes, taking out an undetermined comment of the usermDrawing commentmComment mode ofmExecuting Step 3; otherwise, Step5 is executed;
wherein comment modem=<mode_wordm1+…+mode_wordmn+…+ mode_wordmq,mode_speechm1+…+mode_speechmn+…+mode_speechmq, mode_quality_in_usem>N is more than or equal to 1 and less than or equal to q; mode _ word represents a word in the user comment, mode _ speech represents a part of speech of the word in the user comment, q represents the number of words/parts of speech in the comment mode, and mode _ quality _ in _ usemRepresentative commentmReflectingThe quality of use is one of 5 quality of use attributes in the usage quality feature vocabulary, when comment is not givenmJudging the use quality, wherein the value is unknown;
step3, judgment commentmWhether it matches a certain comment seed:
if comment is commented onmAnd comment seedgSuccessful match, mode _ quality _ in _ usem= seed_quality_in_usegGive commentmAnd (4) judging the result:<commentm,seed_quality_in_useg>(ii) a m + +, execute Step 2; wherein g is more than or equal to 1 and less than or equal to s;
if comment is commented onmIf the matching with all comment seeds fails, Step4 is executed;
step4, judgment commentmWhether to match a certain usage quality feature word:
if comment is commented onmAnd use the quality feature wordf'Successful match, mode _ quality _ in _ usem=quality_in_usef'Give commentmAnd (4) judging the result:<commentm, quality_in_usef'>(ii) a Comment modem=<mode_wordm1+…+mode_wordmn +…+mode_wordmq,mode_speechm1+…+mode_speechmn+…+mode_speechmq, mode_quality_in_usef'>N is more than or equal to 1 and less than or equal to q enters a candidate comment mode library, m + +, and Step2 is executed;
if comment is commented onmMode _ quality _ in _ use, failure to match with the usage quality feature vocabularymComment is given as nullmAnd (4) judging the result:<commentm,null>(ii) a m + +, execute Step 2;
wherein null represents commentmDoes not reflect the quality of use; f' is more than or equal to 1 and less than or equal to f;
step5, calculating the text similarity of the candidate comment modes to obtain 5 comment modes with maximum word text similarity, wherein the 5 comment modes respectively belong to 5 different use qualities: { modemax1,…,modemax5Execution Step 6;
step6, selecting comment seeds in the candidate comment mode library to update the comment seed library: extraction comment modemax1,…,modemax5Seed of comment ofnewkTo seednewkAnd updating the comment seeds which are not empty in the database to the comment seed database.
The specific steps of Step3 are as follows:
step3.1, initialization data: i is 1;
step3.2, judging whether i is less than or equal to s: if yes, extracting the ith comment seediExecuting Step3.3; otherwise, executing Step3.7;
wherein seedi=<seed_wordi1+…+seed_wordij+…+seed_wordip,seed_speechi1 +…+seed_speechij+…+seed_speechip,seed_disi,seed_quality_in_usei>J is more than or equal to 1 and less than or equal to p, seed _ word represents a word in the comment seed, seed _ speech represents a part of speech of the word in the comment seed, p represents the number of words/parts of speech in the comment seed, and seed _ disiThe distance of the comment seed is the sum of the maximum distance between the evaluation object and the evaluation viewpoint and the number of words/parts of speech in the comment seed, and the value of seed _ quality _ in _ useiThe use quality reflected by the comment seed is represented, and the use quality is one of 5 use quality attributes in the use quality feature vocabulary;
wherein, the evaluation object is also called as an emotion object or a viewpoint object and refers to a subject discussed in a certain text; the evaluation viewpoint refers to words with emotion tendencies capable of expressing the own viewpoint of the user, and is the fundamental basis for judging the emotion of the user on the evaluation object;
step3.3, commentmWord "mode wordm1+…+mode_wordmn+…+ mode_wordmq"and comment seediWord "seed wordi1+…+seed_wordij+…+seed_wordip"match, calculate word match value commented word _ simmi
Step3.3.1, initializing j to 1, and setting pos _ word to be null;
step3.3.2, judging whether j is less than or equal to p: if so, executing Step3.3.3; otherwise, executing Step3.3.6;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than q: if so, executing Step3.3.5; otherwise, j + +, execute Step3.3.2;
step3.3.5, judging seed _ wordijWhether and mode _ wordmnThe same is that: if yes, add n to the set pos _ word, j + +, execute Step3.3.2; otherwise, n + +, execute Step3.3.4;
step3.3.6 calculation of comment using equation (1)mAnd seediMaximum distance between successfully matched words dis wordmi
dis_wordmi=MAX{pos_word}-MIN{pos_word} (1)
In the formula (1), MAX represents the maximum value of elements in the calculation set, and MIN represents the minimum value of elements in the calculation set;
then executing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not it is less than or equal to seed _ disi: if so, then calculate comment using equation (2)mAnd seediWord matching value commentWord _ simmi
commentWord_simmi=NUM(pos_word)/p (2)
In the formula (2), NUM represents the number of elements in the calculation set;
otherwise, commenting word _ simmi=0;
Performing Step3.4;
step3.4, commentmPart of speech "mode _ speechm1+…+mode_speechmn+…+ mode_speechmq"and comment seediPart of speech "seed _ speechi1+…+seed_speechij+…+ seed_speechip"match, calculate the part-of-speech match value commendspeech _ simmi
Step3.4.1, initializing j to 1, and setting pos _ speed to be empty;
step3.4.2, judging whether j is less than or equal to p: if so, executing Step3.4.3; otherwise, executing Step3.4.7;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than or equal to q: if so, executing Step3.4.5; otherwise, j + +, execute Step3.4.2;
step3.4.5, judging seed _ speedijWhether to sum mode _ speedmnThe same is that: if so, executing Step3.4.6; otherwise, n + +, execute Step3.4.4;
step3.4.6, determine if n is greater than all elements in the set pos _ speed: if yes, add n to the set pos _ speed, j + +, execute Step3.4.2; otherwise, n + +, execute Step3.4.4;
step3.4.7 uses equation (3) to calculate commentmAnd seediMaximum distance dis _ speech between successfully matched parts of speechmi
dis_speechmi=MAX{pos_speech}-MIN{pos_speech} (3)
Then executing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not it is less than or equal to seed _ disi: if so, then the comment is calculated using equation (4)mAnd seediWord-part matching value commendstech simmi
commentSpeech_simmi=NUM(pos_speech)/p (4)
Otherwise, commenting Speech _ simmi=0;
Performing Step3.5;
step3.5, calculate comment using equation (5)mAnd comment seediIntegrated match value com _ sim ofmi
commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
Performing Step3.6;
step3.6, i + +, execute Step3.2;
step3.7, useFormula (6) obtains commentmWith comment seed of all comment seedsgMaximum integrated match value of (2) commentBoth _ simmg
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1≤g≤s); (6)
Executing Step3.8;
step3.8, judge commentBoth _ simmgWhether or not it is greater than 0.5: if so, commentmAnd comment seedgMatching is successful; otherwise, commentmFailure to match with all review seeds;
if comment is commented onmAnd comment seedgSuccessful match, mode _ quality _ in _ usem= seed_quality_in_usegGive commentmAnd (4) judging the result:<commentm,seed_quality_in_useg>(ii) a m + +, execute Step 2;
if comment is commented onmFailing to match all the review seeds, Step4 is performed.
The specific steps of Step4 are as follows:
step4.1, initialization variables: f ═ 1;
step4.2, judging whether f' is less than or equal to f: if so, executing Step4.3; otherwise, executing Step4.6;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf': if so, executing Step4.5; otherwise, executing Step4.4;
wherein, the f' th use quality feature wordf'The reflected use quality is quality _ in _ usef', 1≤f'≤f;
Step4.4, commentmAnd use the quality feature wordf'Matching fails, f' ++, Step4.2 is executed;
step4.5, commentmAnd use the quality feature wordf'Successful match, mode _ quality _ in _ usem=quality_in_usef'Give commentmAnd (4) judging the result:<commentm, quality_in_usef'>(ii) a Comment modem=<mode_wordm1+…+mode_wordmn+…+ mode_wordmq,mode_speechm1+…+mode_speechmn+…+mode_speechmq, mode_quality_in_usef'>Entering a candidate comment mode library, m + +, and executing Step 2;
step4.6, commentmMatching with the use quality feature vocabulary fails: mode _ quality _ in _ usemComment is given as nullmAnd (4) judging the result:<commentm,null>(ii) a m + +, execute Step 2; wherein null represents commentmDoes not reflect the quality of use.
The specific steps of Step5 are as follows:
step5.1, initialization variables: QinU is a quality attribute, QinU is 1; wherein QinU ═ 1 represents "satisfaction"; QinU ═ 2 stands for "effectiveness"; QinU ═ 3 stands for "efficiency"; QinU ═ 4 stands for "risk avoidance"; QinU ═ 5 stands for "context coverage";
step5.2, judging whether QinU is less than or equal to 5: if so, executing Step5.3; otherwise, obtaining the comment modes with the maximum text similarity of 5 words respectively belonging to 5 different use qualities: { modemax1,…, modemax5Execution Step 6;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: if yes, extracting all comment modes with the quality attribute of QinU in the candidate comment mode library, and executing Step5.4; otherwise, modemaxQinUNull, perform step5.10;
wherein, modemaxQinUNull represents that the comment mode representing the quality of use attribute QinU is null;
step5.4, judging whether the text similarity of all comment modes in QinU is calculated according to the quality attribute: if so, executing Step5.9; otherwise, extracting the quality of use attribute as QiComment mode with text similarity not calculated in nUmExecuting Step5.5;
the text similarity calculation comprises word text similarity calculation, part of speech text similarity calculation and comprehensive text similarity calculation;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: if so, executing Step5.8; otherwise, extracting a using quality attribute of a non-neutralized mode in QinUmComment mode for text similarity calculationm'M'! Executing step5.6;
step5.6, calculate mode using equation (7)mAnd modem'Word text similarity modelword simmm'
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
Wherein, modeWord _ simmm'Represents a modemAnd modem'Word-text similarity of (dis word)mm'Represents a modemAnd modem'Distance between word combinations of (2), lenjwordmAnd len _ wordm'And the lengths of the characters in the two word combinations respectively;
calculate mode using equation (8)mAnd modem'Part-of-speech text similarity modeSpeech _ simmm'
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
Wherein modeSpeech _ simmm'Represents a modemAnd modem'Part of speech text similarity of (dis _ speech)mm'Represents a modemAnd modem'Distance between parts of speech combinations of (2), len _ speechmAnd len _ speedm'The lengths of the characters in the two part-of-speech combinations are respectively;
then, Step5.7 is executed;
step5.7, calculate mode using equation (9)mAnd modem'Integrated text similarity modeboyh _ simmm'
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
Then, Step5.5 is executed;
step5.8 calculates the comment mode using equation (10)mAnd all other comment modes in its usage quality attributesm'Sum of word text similarity sum _ model word _ simm
sum_modeWord_simm=SUM{modeWord_simmm'}(m'!=m) (10)
In the formula (10), SUM represents the SUM of elements in the calculation set;
performing Step5.4;
step5.9, obtaining a comment mode with maximum word text similarity sum by using formula (11)maxQinU
sum_modeWord_simmaxQinU=MAX{sum_modeWord_simm}(1≤max≤m) (11)
Performing Step5.10;
step5.10, QinU + +, Step5.2 was performed.
The specific steps of Step6 are as follows:
step6.1, choose comment mode { modemax1,…,modemax5The first 3 comment modes with the maximum sum of word text similarity: modenewk(k is more than or equal to 1 and less than or equal to 3), and extracting comment seed thereofnewk
Step6.1.1, initializing k to 1, and executing step 6.1.2;
step6.1.2, judging whether k is less than or equal to 3: if so, extracting the comment modenewkExecuting Step6.1.3; otherwise, executing Step6.2;
step6.1.3, judgment modenewkWhether it is empty: if so, seednewkNull, k + +, execute step6.1.2; otherwise, extract its comment seednewk={seed_wordnewk1+…+seed_wordnewkj+…+ seed_wordnewkp,seed_speechnewk1+…+seed_speechnewkj+…+speechnewkp,seed_disnewk, seed_quality_in_usenewk}, k + +, perform Step6.1.2;
wherein seed _ disnewkIs a comment modenewkNumber of words with middle part of speech n, v, d, and a, seed _ quality _ in _ usenewkTo commentnewkReflected quality of use attributes;
step6.2 determination of seednewkWhether the distances of the comment seeds which are not empty in the database are all updated is judged: if so, executing Step6.7; otherwise, executing Step6.3;
step6.3, extract a distance not empty and not updating the comment seednewkSelecting and commenting seednewkComment mode ofnewkAll comment mode modes with a combined text similarity greater than 0.35newk'Executing Step6.4;
step6.4, calculate all comment modenewk'Distance dis of keywordsnewk'
The keywords are words with parts of speech n, v, d and a in the comment mode;
step6.4.1, judge all comment mode modesnewk'Whether the extraction of the keyword distance is finished: if so, executing Step6.5; otherwise, executing Step6.4.2;
step6.4.2 extracting a comment mode with an unextracted keyword distancenewk'Initializing the set pos _ mode _ speed to be empty, and then executing step 6.4.3;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: if so, executing Step6.4.5; otherwise, executing Step6.4.4;
step6.4.4, extracting an undetermined part-of-speechnewk'jJudging whether the part of speech is n or v or a or d: if yes, add j to the set pos _ mode _ speed, execute Step6.4.3; otherwise, executing Step6.4.3;
step6.4.5, calculate comment mode Using equation (12)maxk'Distance dis of keywordsnewk'
disnewk'=MAX{pos_mode_speech}-MIN{pos_mode_speech} (12)
Performing Step6.4.1;
step6.5, retrieve and mode using equation (13)newkAll comment mode with integrated text similarity greater than 0.35newk'Dis ofnewk'Maximum value new _ seed _ dis in (1)max
new_seed_dismax=MAX{disnewk'} (13)
Performing Step6.6;
step6.6, judge new _ seed _ dismaxWhether greater than seednewkThe distance of (c): if so, seed will benewkIs updated to new _ seed _ dismaxExecuting Step6.2; otherwise, executing Step6.2;
step6.7, seednewkAnd updating the comment seeds which are not empty in the database to the comment seed database.
The invention has the beneficial effects that:
(1) the comment seed is defined and matched with the comment seed, so that the comment related to the use quality can be mined from a large number of APP software user comments;
(2) according to the method, the use quality characteristic word list is defined, and the comments which are unsuccessfully matched with the comment seeds are matched with the use quality characteristic word list, so that the method is beneficial to obtaining information related to the ISO/IEC 25010 use quality attribute in the APP software user comments;
(3) the method and the device provided by the invention are beneficial to further mining the user comments related to the use quality by extracting the new comment seeds based on the candidate comment mode.
In conclusion, the method is beneficial to mining comments related to the use quality from a large number of APP software user comments; the method is helpful for obtaining information related to ISO/IEC 25010 use quality attributes in APP software user comments; the method is helpful for analyzing the APP software use quality.
Drawings
FIG. 1 is a flow chart of the present invention;
FIG. 2 is a Step3 in FIG. 1commentmA specific flow chart matching with the comment seed;
FIG. 3 is the calculated word match value commentWord _ sim of FIG. 2miA specific flowchart of (1);
FIG. 4 is a block diagram of the calculated part-of-speech match value commendsSpeech sim of FIG. 2miA specific flowchart of (1);
FIG. 5 shows the comment in Step4 in FIG. 1mA specific flow chart matched with the use quality characteristic words;
FIG. 6 is a detailed flowchart of Step5 in FIG. 1;
fig. 7 is a detailed flowchart of Step6 in fig. 1.
Detailed Description
Example 1: as shown in fig. 1-7, a user comment mining method for APP software usage quality,
firstly, excavating APP software user comments reflecting the use quality by using initial comment seeds; then, for the user comment which is unsuccessfully matched with the comment seed, judging whether the user comment reflects the use quality or not according to the APP software use quality feature word list and extracting a comment mode; and finally, extracting new comment seeds based on the candidate comment mode, and further mining user comments related to the use quality.
Further, the specific steps of the method may be set as follows:
step1, initialization data: c user comment comments after word segmentation are arranged in the comment library, wherein m is 1, s comment seeds are arranged in the comment seed library, and f use quality feature words feature _ word are arranged in the use quality feature word list;
step2, judging whether the undetermined user comments exist in the comment library: judging whether m is less than or equal to c: if yes, taking out an undetermined comment of the usermDrawing commentmComment mode ofmExecuting Step 3; otherwise, Step5 is executed;
wherein comment modem=<mode_wordm1+…+mode_wordmn+…+ mode_wordmq,mode_speechm1+…+mode_speechmn+…+mode_speechmq, mode_quality_in_usem>N is more than or equal to 1 and less than or equal to q; mode _ word represents a word in the user comment, mode _ speech represents a part of speech of the word in the user comment, q represents the number of words/parts of speech in the comment mode, and mode _ quality _ in _ usemRepresentative commentmThe reflected use quality is one of 5 use quality attributes in the use quality feature vocabulary, and the comment is not givenmJudging the use quality, wherein the value is unknown;
step3, judgment commentmWhether it matches a certain comment seed:
if comment is commented onmAnd comment seedgSuccessful match, mode _ quality _ in _ usem= seed_quality_in_usegGive commentmAnd (4) judging the result:<commentm,seed_quality_in_useg>(ii) a m + +, execute Step 2; wherein g is more than or equal to 1 and less than or equal to s;
if comment is commented onmIf the matching with all comment seeds fails, Step4 is executed;
step4, judgment commentmWhether to match a certain usage quality feature word:
if comment is commented onmAnd use the quality feature wordf'Successful match, mode _ quality _ in _ usem=quality_in_usef'Give commentmAnd (4) judging the result:<commentm, quality_in_usef'>(ii) a Comment modem=<mode_wordm1+…+mode_wordmn +…+mode_wordmq,mode_speechm1+…+mode_speechmn+…+mode_speechmq, mode_quality_in_usef'>N is more than or equal to 1 and less than or equal to q enters a candidate comment mode library, m + +, and Step2 is executed;
if comment is commented onmMode _ quality _ in _ use, failure to match with the usage quality feature vocabularymComment is given as nullmAnd (4) judging the result:<commentm,null>(ii) a m + +, execute Step 2;
wherein null represents commentmDoes not reflect the quality of use; f' is more than or equal to 1 and less than or equal tof;
Step5, calculating the text similarity of the candidate comment modes to obtain 5 comment modes with maximum word text similarity, wherein the 5 comment modes respectively belong to 5 different use qualities: { modemax1,…,modemax5Execution Step 6;
step6, selecting comment seeds in the candidate comment mode library to update the comment seed library: extraction comment modemax1,…,modemax5Seed of comment ofnewkTo seednewkAnd updating the comment seeds which are not empty in the database to the comment seed database.
Example 2: as shown in fig. 1 to 7, a user comment mining method for APP software use quality includes the following specific steps:
step1, initialization data:
the comment library has 5 (c is 5) segmented user comments, m is 1, the comment seed library has 1 (s is 1) comment seeds seed, and the quality feature word list has 15 (f is 15) feature words feature _ word;
the user comment is shown in table 2, and the usage quality feature word table is shown in table 1;
TABLE 1 word list using quality characteristics
Figure BDA0001421143480000111
Wherein vi represents a short verb, a represents an adjective, n represents a noun, and d represents an adverb;
TABLE 2 APP software user comment form
Numbering APP software User comment information User comment information after word segmentation
1 Youke Can not download Download/v is not/d is/y
2 Youke Large internal memory Memory/n is/a
3 Youke ok ok/n
4 Youke The memory is smaller than before Memory/n ratio/p pre/f is small/a
5 Youke The memory space is really too large Memory/n space/n true/ad too/d big/a
Initializing a comment seed in a comment seed repository1
seed1=<Installation + not + v + d + y, 3, effectiveness>
Step2, judging whether the undetermined user comments exist in the comment library:
judging whether m is less than or equal to c: 1<5, taking out an undetermined comment1"download/v not/d not/y", extract comment1Comment mode of1=<mode_word11+mode_word12+ mode_word13,mode_speech11+mode_speech12+mode_speech13, mode_quality_in_use1>=<Download + not + v + d + y, un-download>Executing Step 3;
step3, judgment commentmWhether it matches a certain comment seed:
step3.1, initialization data: i is 1;
step3.2, judging whether i is less than or equal to s: 1-1, extract the 1 st comment seed1=<Installation + not + v + d + y, 3, effectiveness>Executing Step3.3;
step3.3, comment1The word "download + not + seed" and comment seed1The word "install + not + match" is matched, and the word matching value commentWord _ sim is calculated11
Step3.3.1, initializing j to 1, and setting pos _ word to be null;
step3.3.2, judging whether j is less than or equal to p: 1<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than q: 1<3, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word11: the 'downloading' is different, n is 2, and Step3.3.4 is executed;
step3.3.4, judging whether n is less than q: 2<3, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word12: "not" is not the same, n is 3, step3.3.4 is performed;
step3.3.4, judging whether n is less than q: 3, executing Step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnWhether or not the same as: word11: "install" and word13: "different," n ═ 4, step3.3.4 is performed;
step3.3.4, judging whether n is less than q: 4>3, j ═ 2, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 2<3, perform step3.3.3;
step3.3.3, initialization n is 1;
step3.3.4, judging whether n is less than q: 1<3, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word11: the 'downloading' is different, n is 2, and Step3.3.4 is executed;
step3.3.4, judging whether n is less than q: 2<3, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word12: not being the same, add 2 to the set pos _ word, j is 3, perform step3.3.2;
step3.3.2, judging whether j is less than or equal to p: 3, executing Step3.3.3;
step3.3.3, initialization n is 1;
step3.3.4, judging whether n is less than q: 1<3, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: ' s and word11: the 'downloading' is different, n is 2, and Step3.3.4 is executed;
step3.3.4, judging whether n is less than q: 2<3, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: ' s and word12: "not" is not the same, n is 3, step3.3.4 is performed;
step3.3.4, judging whether n is less than q: 3, executing Step3.3.5;
Step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: ' s and word13: "same," add 3 to the set pos _ word, j is 4, perform step3.3.2;
step3.3.2, judging whether j is less than or equal to p: 4>3, execute step 3.3.6;
step3.3.6 calculation of comment using equation (1)1And seed1Maximum distance between successfully matched words dis word11
dis_wordmi=MAX{pos_word}-MIN{pos_word} (1)
dis_word11=3-2=1
Performing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not it is less than or equal to seed _ disi:dis_word11=1<seed_dis1Calculate comment using equation (2) as 31And seed1Word matching value commentWord _ sim11
commentWord_simmi=NUM(pos_word)/p (2)
commentWord_sim11=2/3=0.67
Performing Step3.4;
step3.4, comment1Part of speech "v + d + y" and comment seed1The parts of speech "v + d + y" are matched, and a part of speech matching value commensuch _ sim is calculated11
Step3.4.1, initializing j to 1, and setting pos _ speed to be empty;
step3.4.2, judging whether j is less than or equal to p: 1<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<3, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed11: "v" is the same, Step3.4.6 is performed;
step3.4.6, determine if n is greater than all elements in the set pos _ speed: pos _ speed { }, 1 is greater than all elements in pos _ speed, 1 is added to the set pos _ speed, j ═ 2, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 2<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<3, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed11: "v" is not the same, n ═ 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<3, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed12: "d" is the same, Step3.4.6 is performed;
step3.4.6, determine if n is greater than all elements in the set pos _ speed: pos _ speed ═ {1}, 2 is greater than all elements in pos _ speed, 2 is added to the set pos _ speed, j ═ 3, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 3, executing Step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<3, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed11: "v" is not the same, n ═ 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<3, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed12: "d" is not the same, n is 3, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 3, executing Step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed13: "y" is the same, Step3.4.6 is performed;
step3.4.6, determine if n is greater than all elements in the set pos _ speed: pos _ speed ═ {1, 2}, 3 is greater than all elements in pos _ speed, 3 is added to the set pos _ speed, j ═ 4, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 4>3, perform Step3.4.7;
step3.4.7, calculation of comment using equation (3)1And seed1Maximum distance dis _ speech between successfully matched parts of speech11
dis_speechmi=MAX{pos_speech}-MIN{pos_speech} (3)
dis_speech11=3-1=2
Performing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not less than seed _ disi:dis_speech11=2<seed_dis1Calculate comment using equation (4) as 31And seed1Word-part matching value commendstech sim11
commentSpeech_simmi=NUM(pos_speech)/p (4)
commentSpeech_sim11=3/3=1
Performing Step3.5;
step3.5, calculate comment using equation (5)1And comment seed1Integrated match value com _ sim of11: commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
commentBoth_sim11=0.5*0.67+0.5*1=0.835
Performing Step3.6;
step3.6, i ═ 2, step3.2 is performed;
step3.2, judging whether i is less than or equal to s: 2>1, performing Step3.7;
step3.7, obtaining comment using equation (6)1With comment seed of all comment seedsg(1< =g<S) maximum integrated match value commentBoth _ sim1g
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1<=g<=s); (6)
commentBoth_sim11=MAX{0.835}=0.835 (g=1)
Executing Step3.8;
step3.8, judge commentBoth _ simmgWhether or not to>0.5:0.835>0.5, comment1And comment seed1Matching is successful;
comment1And comment seed1Successful match, mode _ quality _ in _ use1Given a comment as valid1And (4) judging the result:<download/v No/d/y, availability>(ii) a And finishing the judgment of the 1 st comment.
After the 1 st comment is judged, the execution is started from the 2 nd comment, and Step2 is executed when m is 2;
step2, judging whether the undetermined user comments exist in the comment library:
judging whether m is less than or equal to c: 2<5, taking out an undetermined comment2"memory/n is large/a", and comment is extracted2Comment mode of2=<mode_word21+mode_word22,mode_speech21+ mode_speech22,mode_quality_in_use2>=<Memory + large, n + a, unknown>Executing Step 3;
step3, judgment commentmWhether it matches a certain comment seed:
step3.1, initialization data: i is 1;
step3.2, judging whether i is less than or equal to s: 1-1, extract the 1 st comment seed1=<Installation + not + v + d + y, 3, effectiveness>Executing Step3.3;
step3.3, comment2The word "memory + big" and comment seed1The word "install + not + match" is matched, and the word matching value commentWord _ sim is calculated21
Step3.3.1, initializing j to 1, and setting pos _ word to be null;
step3.3.2, judging whether j is less than or equal to p: 1<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<2, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word21: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2 ═ 2, step3.3.5 is performed;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word22: "big" is not the same, n is 3, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3>2, j ═ 2, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 2<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<2, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word21: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2 ═ 2, step3.3.5 is performed;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word22: "big" is not the same, n is 3, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3>2, j ═ 3, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 3, executing Step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<2, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word21: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2 ═ 2, step3.3.5 is performed;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word22: "big" is not the same, n is 3, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3>2, j ═ 4, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 4>3, execute step 3.3.6;
step3.3.6 calculation of comment using equation (1)2And seed1Maximum distance between successfully matched words dis word21
dis_wordmi=MAX{pos_word}-MIN{pos_word} (1)
dis_word21=0-0=0
Performing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not less than seed _ disi:dis_word21=0<seed_dis1Calculate comment using equation (2) as 32And seed1Word matching value commentWord _ sim21
commentWord_simmi=NUM(pos_word)/p (2)
commentWord_sim21=0/3=0
Performing Step3.4;
step3.4, review comment2Part of speech "n + a" and comment seed1The parts of speech "v + d + y" are matched, and a part of speech matching value commensuch _ sim is calculated21
Step3.4.1, initializing j to 1, and setting pos _ speed to be empty;
step3.4.2, judging whether j is less than or equal to p: 1<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<2, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed21: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2 ═ 2, step3.4.5 is performed;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed22: "a" is not the same, n is 3, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 3>2, j ═ 2, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 2<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<2, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed21: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2 ═ 2, step3.4.5 is performed;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed22: "a" is not the same, n is 3, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 3>2, j ═ 3, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 3, executing Step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<2, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed21: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2 ═ 2, step3.4.5 is performed;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed22: "a" is not the same, n is 3, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 3>2, j ═ 4, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 4>3, perform Step3.4.7;
step3.4.7, calculation of comment using equation (3)2And seed1Maximum distance dis _ speech between successfully matched parts of speech21
dis_speechmi=MAX{pos_speech}-MIN{pos_speech} (3)
dis_speech21=0-0=0
Performing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not less than seed _ disi:dis_speech21=0<seed_dis1Calculate comment using equation (4) as 32And seed1Word-part matching value commendstech sim21
commentSpeech_simmi=NUM(pos_speech)/p (4)
commentSpeech_sim21=0/3=0
Performing Step3.5;
step3.5, calculate comment using equation (5)2The composite match value commentBoth_sim21: commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
commentBoth_sim21=0+0=0
Performing Step3.6;
step3.6, i ═ 2, step3.2 is performed;
step3.2, judging whether i is less than or equal to s: 2>1, performing Step3.7;
step3.7, obtaining comment using equation (6)2With comment seed of all comment seedsg(1< =g<S) maximum integrated match value commentBoth _ sim2g
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1<=g<=s); (6)
commentBoth_sim21=Max{0}=0 (g=1)
Executing Step3.8;
step3.8, judge commentBoth _ simmgWhether or not to>0.5:0<0.5, comment2Failure to match with all review seeds;
comment2If the matching with all comment seeds fails, Step4 is executed;
step4, judgment commentmWhether to match a certain usage quality feature word:
step4.1, initialization variables: f ═ 1;
step4.2, judging whether f' is less than or equal to f: 1<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment2Does not contain the use quality feature word1: "fail/vi", execute step 4.4;
step4.4, comment2And use the quality feature word1Matching fails, f' is 2, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 2<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment2Does not contain the use quality feature word2: "error/vi", perform Step4.4;
step4.4, comment2And use the quality feature word2Matching fails, f' is 3, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 3<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment2Does not contain the use quality feature word3: "Utility/a", perform Step4.4;
step4.4, comment2And use the quality feature word3Matching fails, f' is 4, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 4<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment2Does not contain the use quality feature word4: "function/n", perform Step4.4;
step4.4, comment2And use the quality feature word4Matching fails, f' is 5, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 5<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment2Including the use quality feature word5: "memory/n", executing Step4.5;
step4.5, comment2And use the quality feature word5Matching is successful;
comment2And use the quality feature word5Successful match, mode _ quality _ in _ use2Given a comment as efficiency2And (4) judging the result:<memory/n is large/a, efficiency>(ii) a Comment mode2=<Memory + large, n + a, efficiency>Entering a candidate comment mode library; and finishing the judgment of the 2 nd comment.
After the 2 nd comment is judged, the execution is started from the 3 rd comment, and Step2 is executed when m is 3;
step2, judging whether the undetermined user comments exist in the comment library:
judging whether m is less than or equal to c: 3<5, taking out an undetermined comment3Extract comment as ok/n3Comment mode of3=<mode_word31,mode_speech31,mode_quality_in_use3> =<ok,n,unknown>Executing Step 3;
step3, judgment commentmWhether it matches a certain comment seed:
step3.1, initialization data: i is 1;
step3.2, judging whether i is less than or equal to s: 1-1, extract the 1 st comment seed1=<Installation + not + v + d + y, 3, effectiveness>Executing Step3.3;
step3.3, comment3The word "ok" with comment seed1The word "install + not + match" is matched, and the word matching value commentWord _ sim is calculated31
Step3.3.1, initializing j to 1, and setting pos _ word to be null;
step3.3.2, judging whether j is less than or equal to p: 1<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1 to 1, performing step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word31: "ok" is not the same, n ═ 2, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 2>1, j ═ 2, Step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 2<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1 to 1, performing step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word31: "ok" is not the same, n ═ 2, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 2>1, j ═ 3, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 3, executing Step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1 to 1, performing step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word31: "ok" is not the same, n ═ 2, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 2>1, j ═ 4, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 4>3, execute step 3.3.6;
step3.3.6 calculation of comment using equation (1)3And seed1Maximum distance between successfully matched words dis word31
dis_wordmi=MAX{pos_word}-MIN{pos_word} (1)
dis_word31=0-0=0
Performing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not less than seed _ disi:dis_word31=0<seed_dis1Calculate comment using equation (2) as 33And seed1Word matching value commentWord _ sim31
commentWord_simmi=NUM(pos_word)/p (2)
commentWord_sim31=0/3=0
Performing Step3.4;
step3.4, comment3Part of speech "n" and comment seed1The parts of speech "v + d + y" are matched, and a part of speech matching value commensuch _ sim is calculated31
Step3.4.1, initializing j to 1, and setting pos _ speed to be empty;
step3.4.2, judging whether j is less than or equal to p: 1<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1 to 1, performing step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed31: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2>1, j ═ 2, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 2<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1 to 1, performing step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed31: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2>1, j ═ 3, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 3, executing Step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1 to 1, performing step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed31: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2>1, j ═ 4, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 4>3, perform Step3.4.7;
step3.4.7, calculation of comment using equation (3)3And seed1Maximum distance dis _ speech between successfully matched parts of speech31
dis_speechmi=MAX{pos_speech}-MIN{pos_speech} (3)
dis_speech31=0-0=0
Performing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not less than seed _ disi:dis_speech31=0<seed_dis1Calculate comment using equation (4) as 33And seed1Word-part matching value commendstech sim31
commentSpeech_simmi=NUM(pos_speech)/p (4)
commentSpeech_sim31=0/3=0
Performing Step3.5;
step3.5, calculate comment using equation (5)3Composite match value commentBoth _ sim31: commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
commentBoth_sim31=0+0=0
Performing Step3.6;
step3.6, i ═ 2, step3.2 is performed;
step3.2, judging whether i is less than or equal to s: 2>1, performing Step3.7;
step3.7, obtaining comment using equation (6)3With comment seed of all comment seedsg(1< =g<S) maximum integrated match value commentBoth _ sim3g
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1<=g<=s); (6)
commentBoth_sim31=Max{0}=0 (g=1)
Executing Step3.8;
step3.8, judge commentBoth _ simmiWhether or not to>0.5:0<0.5, comment3Failure to match with all review seeds;
comment3If the matching with all comment seeds fails, Step4 is executed;
step4, judgment commentmWhether to match a certain usage quality feature word:
step4.1, initialization variables: f ═ 1;
step4.2, judging whether f' is less than or equal to f: 1<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word1: "fail/vi", execute step 4.4;
step4.4, comment3And use the quality feature word1Matching fails, f' is 2, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 2<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word2: "error/vi", perform Step4.4;
step4.4, comment3And use the quality feature word2Matching fails, f' is 3, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 3<15, perform step4.3;
step4.3, judgmentcommentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word3: "Utility/a", perform Step4.4;
step4.4, comment3And use the quality feature word3Matching fails, f' is 4, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 4<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word4: "function/n", perform Step4.4;
step4.4, comment3And use the quality feature word4Matching fails, f' is 5, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 5<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word5: "memory/n", execute step 4.4;
step4.4, comment3And use the quality feature word5Matching fails, f' is 6, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 6<15, perform Step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word6: "efficiency/n", perform Step4.4;
step4.4, comment3And use the quality feature word6Matching fails, f' is 7, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 7<15, perform Step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word7: "speed/n", execute Step4.4;
step4.4, comment3And use the quality feature word7Matching fails, f' is 8, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 8<15, perform Step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word8: "safe/a", perform step 4.4;
step4.4, comment3And use the quality feature word8Matching fails, f' is 9, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 9<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word9: "charge/vi", perform step 4.4;
step4.4, comment3And use the quality feature word9Matching fails, f' is 10, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 10<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word10: "Ad/n", execute Step4.4;
step4.4, comment3And use the quality feature word10Matching fails, f' is 11, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 11<15, perform step4.3;
step4.3, judgment commentmIn isWhether to include the use quality feature wordf':comment3Does not contain the use quality feature word11: "version/n", perform Step4.4;
step4.4, comment3And use the quality feature word11Matching fails, f' is 12, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 12<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word12: "product/n", perform Step4.4;
step4.4, comment3And use the quality feature word12Matching fails, f' is 13, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 13<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word13: "system/n", perform Step4.4;
step4.4, comment3And use the quality feature word13Matching fails, f' is 14, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 14<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment3Does not contain the use quality feature word14: "good/a", perform step 4.4;
step4.4, comment3And use the quality feature word14Matching fails, f' is 15, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 15, executing Step4.3;
step4.3, judgment commentmWhether or notInvolving the use of quality feature words feature wordf':comment3Does not contain the use quality feature word15: "difference/a", perform step4.4;
step4.4, comment3And use the quality feature word15Matching fails, f ═ 16, step4.2 is performed;
step4.2, judging whether f' is less than or equal to f: 16>15, perform Step4.6;
step4.6, comment3Matching with the use quality feature vocabulary fails;
comment3Mode _ quality _ in _ use, failure to match with the usage quality feature vocabulary3Comment is given as null3And (4) judging the result:<comment3,null>(ii) a And the 3 rd comment is judged to be finished.
After the 3 rd comment is judged, the execution is started from the 4 th comment, and Step2 is executed when m is 4;
step2, judging whether the undetermined user comments exist in the comment library:
judging whether m is less than or equal to c: 4<5, taking out an undetermined comment4Extracting comment as "memory/n ratio/p pre/f small/a4Comment mode of4=<mode_word41+mode_word42+ mode_word43+mode_word44,mode_speech41+mode_speech42+mode_speech43+ mode_speech44,mode_quality_in_use4>=<Memory + is smaller than + before, n + p + f + a, undnown>Executing Step 3;
step3, judgment commentmWhether it matches a certain comment seed:
step3.1, initialization data: i is 1;
step3.2, judging whether i is less than or equal to s: 1-1, extract the 1 st comment seed1=<Installation + not + v + d + y, 3, effectiveness>Executing Step3.3;
step3.3, comment4The word "memory + less than + before + and comment seed1The word "install + not + match" is matched, and the word matching value commentWord _ sim is calculated41
Step3.3.1, initializing j to 1, and setting pos _ word to be null;
step3.3.2, judging whether j is less than or equal to p: 1<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word41: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word42: the ratio is different, n is 3, and Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word43: "before" is not the same, n is 4, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 4-4, performing step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word44: "small" is not the same, n is 5, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 5>4, j ═ 2, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 2<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word41: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word42: the ratio is different, n is 3, and Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word43: "before" is not the same, n is 4, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 4-4, performing step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word44: "small" is not the same, n is 5, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 5>4, j ═ 3, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 3, executing Step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word41: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word42: the ratio is different, n is 3, and Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3<4, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word43: "before" is not the same, n is 4, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 4-4, performing step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word44: "small" is not the same, n is 5, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 5>4, j ═ 4, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 4>3, execute step 3.3.6;
step3.3.6 calculation of comment using equation (1)4And seed1Maximum distance between successfully matched words dis word41
dis_wordmi=MAX{pos_word}-MIN{pos_word} (1)
dis_word41=0-0=0
Performing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not less than seed _ disi:dis_word41=0<seed_dis1Calculate comment using equation (2) as 34And seed1Word matching value commentWord _ sim41
commentWord_simmi=NUM(pos_word)/p (2)
commentWord_sim41=0/3=0
Performing Step3.4;
step3.4, comment4Part of speech "n + p + f + a" and comment seed1The parts of speech "v + d + y" are matched, and a part of speech matching value commensuch _ sim is calculated41
Step3.4.1, initializing j to 1, and setting pos _ speed to be empty;
step3.4.2, judging whether j is less than or equal to p: 1<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed41: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed42: "p" is not the same, n ═ 3, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 3<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed43: "f" is not the same, n is 4, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 4-4, performing step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed44: "a" is not the same, n is 5, and step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 5>4, j ═ 2, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 2<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed41: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed42: "p" is not the same, n ═ 3, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 3<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed43: "f" is not the same, n is 4, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 4-4, performing step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed44: "a" is not the same, n is 5, and step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 5>4, j ═ 3, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 3, executing Step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed41: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed42: "p" is not the same, n ═ 3, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 3<4, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed43:“f”Different, n is 4, execute step3.4.4;
step3.4.4, judging whether n is less than q: 4-4, performing step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed44: "a" is not the same, n is 5, and step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 5>4, j ═ 4, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 4>3, perform Step3.4.7;
step3.4.7, calculation of comment using equation (3)4And seed1Maximum distance dis _ speech between successfully matched parts of speech41
dis_speechmi=MAX{pos_speech}-MIN{pos_speech} (3)
dis_speech41=0-0=0
Performing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not less than seed _ disi:dis_speech41=0<seed_dis1Calculate comment using equation (4) as 34And seed1Word-part matching value commendstech sim41
commentSpeech_simmi=NUM(pos_speech)/p (4)
commentSpeech_sim41=0/3=0
Performing Step3.5;
step3.5, calculate comment using equation (5)4Composite match value commentBoth _ sim41: commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
commentBoth_sim41=0+0=0
Performing Step3.6;
step3.6, i ═ 2, step3.2 is performed;
step3.2, judging whether i is less than or equal to s: 2>1, performing Step3.7;
step3.7, Utility maleEquation (6) get comment4With comment seed of all comment seedsg(1< =g<S) maximum integrated match value commentBoth _ sim4g
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1<=g<=s); (6)
commentBoth_sim41=Max{0}=0 (g=1)
Executing Step3.8;
step3.8, judge commentBoth _ simmiWhether or not to>0.5:0<0.5, comment4Failure to match with all review seeds;
comment4If the matching with all comment seeds fails, Step4 is executed;
step4, judgment commentmWhether to match a certain usage quality feature word:
step4.1, initialization variables: f ═ 1;
step4.2, judging whether f' is less than or equal to f: 1<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment4Does not contain the use quality feature word1: "fail/vi", execute step 4.4;
step4.4, comment4And use the quality feature word1Matching fails, f' is 2, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 2<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment4Does not contain the use quality feature word2: "error/vi", perform Step4.4;
step4.4, comment4And use the quality feature word2Fail to match, f' is 3, Step is executed4.2;
Step4.2, judging whether f' is less than or equal to f: 3<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment4Does not contain the use quality feature word3: "Utility/a", perform Step4.4;
step4.4, comment4And use the quality feature word3Matching fails, f' is 4, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 4<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment4Does not contain the use quality feature word4: "function/n", perform Step4.4;
step4.4, comment4And use the quality feature word4Matching fails, f' is 5, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 5<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment4Including the use quality feature word5: "memory/n", executing Step4.5;
step4.5, comment4And use the quality feature word5Matching is successful;
comment4And use the quality feature word5Successful match, mode _ quality _ in _ use4Given a comment as efficiency4And (4) judging the result:<memory/n ratio/p front/f is small/a, efficiency>(ii) a Comment mode4=<Memory + is smaller than + before, n + p + f + a, efficiency>Entering a candidate comment mode library; the judgment of item 4 was completed.
After the 4 th comment is judged, the execution is started from the 5 th comment, and Step2 is executed when m is 5;
step2, judging whether the undetermined user comments exist in the comment library:
judging whether m is less than or equal to c: taking out one piece of comment which is not judged if 5 is 55Extracting comment as "memory/n space/n true/ad too/d big/a5Comment mode of5=<mode_word51+ mode_word52+mode_word53+mode_word54+mode_word55,mode_speech51+ mode_speech52+mode_speech53+mode_speech54+mode_speech55, mode_quality_in_use5>=<Memory + space + true + too + big, n + n + ad + d + a, unbnown>Executing Step 3;
step3, judgment commentmWhether it matches a certain comment seed:
step3.1, initialization data: i is 1;
step3.2, judging whether i is less than or equal to s: 1-1, extract the 1 st comment seed1=<Installation + not + v + d + y, 3, effectiveness>Executing Step3.3;
step3.3, comment5The word "memory + space + really + too + big" and comment seed1The word "install + not + match" is matched, and the word matching value commentWord _ sim is calculated51
Step3.3.1, initializing j to 1, and setting pos _ word to be null;
step3.3.2, judging whether j is less than or equal to p: 1<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word51: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word52: "space" is not the same, n is 3, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word53: "do" is not the same, n is 4, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 4<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word54: "too" is not the same, n ═ 5, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 5, executing Step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word11: "install" and word55: "big" is not the same, n is 6, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 6>5, j ═ 2, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 2<3, perform step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word51: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word52: "space" is not the same, n is 3, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word53: "do" is not the same, n is 4, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 4<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word54: "too" is not the same, n ═ 5, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 5, executing Step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word12: not and word55: "big" is not the same, n is 6, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 6>5, j ═ 3, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 3, executing Step3.3.3;
step3.3.3, initializing n to 1, and executing step 3.3.4;
step3.3.4, judging whether n is less than or equal to q: 1<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word51: the memories are different, and when n is 2, Step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 2<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word52: "space" is not the same, n is 3, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 3<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word53:“Indeed "not the same, n ═ 4, step3.3.4 was performed;
step3.3.4, judging whether n is less than or equal to q: 4<5, perform step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word54: "too" is not the same, n ═ 5, step3.3.4 is performed;
step3.3.4, judging whether n is less than or equal to q: 5, executing Step3.3.5;
step3.3.5, judgment wordijWhether to sum wordmnThe same is that: word13: 's' and word55: "big" is not the same, n is 6, step3.3.4 is executed;
step3.3.4, judging whether n is less than or equal to q: 6>5, j ═ 4, step3.3.2 is performed;
step3.3.2, judging whether j is less than or equal to p: 4>3, execute step 3.3.6;
step3.3.6 calculation of comment using equation (1)5And seed1Maximum distance between successfully matched words dis word51
dis_wordmi=MAX{pos_word}-MIN{pos_word} (1)
dis_word51=0-0=0
Performing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not less than seed _ disi:dis_word51=0<seed_dis1Calculate comment using equation (2) as 35And seed1Word matching value commentWord _ sim51
commentWord_simmi=NUM(pos_word)/p (2)
commentWord_sim51=0/3=0
Performing Step3.4;
step3.4, comment5Part of speech "n + n + ad + d + a" and comment seed1The parts of speech "v + d + y" are matched, and a part of speech matching value commensuch _ sim is calculated51
Step3.4.1, initializing j to 1, and setting pos _ speed to be empty;
step3.4.2, judging whether j is less than or equal to p: 1<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed51: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed52: "n" is not the same, n is 3, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 3<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed53: "ad" is not the same, n ═ 4, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 4<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed54: "d" is not the same, n is 5, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 5, executing Step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed11: "v" and speed55: "a" is not the same, n is 6, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 6>5, j ═ 2, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 2<3, perform step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed51: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed52: "n" is not the same, n is 3, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 3<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed53: "ad" is not the same, n ═ 4, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 4<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed12: "d" and speed54: "d" is the same, Step3.4.6 is performed;
step3.4.6, determine if n is greater than all elements in the set pos _ speed: pos _ speed { }, 4 is greater than all elements in pos _ speed, 4 is added to the set pos _ speed, j ═ 3, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 3, executing Step3.4.3;
step3.4.3, initializing n to 1, and executing step 3.4.4;
step3.4.4, judging whether n is less than q: 1<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed51: "n" is not the same, n is 2, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 2<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed52: "n" is not the same, n is 3, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 3<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed53: "ad" is not the same, n ═ 4, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 4<5, perform step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed54: "d" is not the same, n is 5, step3.4.4 is performed;
step3.4.4, judging whether n is less than q: 5, executing Step3.4.5;
step3.4.5, judgment of speedijWhether or not to harmonize with speedmnThe same is that: speed13: "y" and speed55: "a" is not the same, n is 6, step3.4.4 is executed;
step3.4.4, judging whether n is less than q: 6>5, j ═ 4, step3.4.2 is performed;
step3.4.2, judging whether j is less than or equal to p: 4>3, perform Step3.4.7;
step3.4.7, calculation of comment using equation (3)5And seed1Maximum distance dis _ speech between successfully matched parts of speech51
dis_speechmi=MAX{pos_speech}-MIN{pos_speech} (3)
dis_speech51=4-4=0
Performing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not less than seed _ disi:dis_speech51=0<seed_dis1Calculate comment using equation (4) as 35And seed1Word-part matching value commendstech sim51
commentSpeech_simmi=NUM(pos_speech)/p (4)
commentSpeech_sim51=1/3=0.33
Performing Step3.5;
step3.5, calculate comment using equation (5)5Composite match value commentBoth _ sim51: commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
commentBoth_sim51=0+0.165=0.165
Performing Step3.6;
step3.6, i ═ 2, step3.2 is performed;
step3.2, judging whether i is less than or equal to s: 2>1, performing Step3.7;
step3.7, obtaining comment using equation (6)5With comment seed of all comment seedsg(1< =g<S) maximum integrated match value commentBoth _ sim5g
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1<=g<=s); (6)
commentBoth_sim51=Max{0.165}=0.165 (g=1)
Executing Step3.8;
step3.8, judge commentBoth _ simmiWhether or not to>0.5:0.165<0.5, comment5Failure to match with all review seeds;
comment5If the matching with all comment seeds fails, Step4 is executed;
step4, judgment commentmWhether to match a certain usage quality feature word:
step4.1, initialization variables: f ═ 1;
step4.2, judging whether f' is less than or equal to f: 1<15, perform step4.3;
step4.3, judgment commentmWhether or not to include quality of useFeature wordf':comment5Does not contain the use quality feature word1: "fail/vi", execute step 4.4;
step4.4, comment5And use the quality feature word1Matching fails, f' is 2, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 2<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment5Does not contain the use quality feature word2: "error/vi", perform Step4.4;
step4.4, comment5And use the quality feature word2Matching fails, f' is 3, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 3<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment5Does not contain the use quality feature word3: "Utility/a", perform Step4.4;
step4.4, comment5And use the quality feature word3Matching fails, f' is 4, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 4<15, perform step4.3;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included inf':comment5Does not contain the use quality feature word4: "function/n", perform Step4.4;
step4.4, comment5And use the quality feature word4Matching fails, f' is 5, and step4.2 is executed;
step4.2, judging whether f' is less than or equal to f: 5<15, perform step4.3;
step4.3, judgment commentmWhether or not to include the use quality feature word feature_wordf':comment5Including the use quality feature word5: "memory/n", executing Step4.5;
step4.5, comment5And use the quality feature word5Matching is successful;
comment5And use the quality feature word5Successful match, mode _ quality _ in _ use5Given a comment as efficiency5And (4) judging the result:<memory/n space/n true/ad too/d greater/a, efficiency>(ii) a Comment mode5=<Memory + space + true + too + big, n + n + ad + d + a, efficiency>Entering a candidate comment mode library; and 5, finishing the judgment of the comment.
After the 5 th comment is judged, if no comment which is not judged exists in the comment library, Step5 is executed;
at this time, there are three candidate comment modes:
mode2=<memory + large, n + a, efficiency>;
mode4Memory + is smaller than + before, n + p + f + a, efficiency >;
mode5memory + space + really + too + big, n + n + ad + d + a, efficiency >;
step5, calculating the text similarity of the candidate comment modes:
step5.1, initialization variables: QinU is a quality of use attribute, QinU 1,
wherein QinU ═ 1 represents "satisfaction"; QinU ═ 2 stands for "effectiveness"; QinU ═ 3 stands for "efficiency"; QinU ═ 4 stands for "risk avoidance"; QinU ═ 5 stands for "context coverage";
step5.2, judging whether QinU is less than or equal to 5: 1<5, perform step5.3;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: there is no comment pattern using a quality attribute of 1 in the candidate comment pattern library, modemax1Null, perform step5.10;
step5.10, QinU ═ 2, step5.2 was performed;
step5.2, judging whether QinU is less than or equal to 5: 2<5, perform step5.3;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: there is no comment pattern using a quality attribute of 2 in the candidate comment pattern library, modemax2Null, perform step5.10;
step5.10, QinU ═ 3, step5.2 was performed;
step5.2, judging whether QinU is less than or equal to 5: 3<5, execute step5.3;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: the candidate comment mode library has a comment mode with a use quality attribute of 3, all comment modes with the use quality attribute of 3 in the candidate comment mode library are extracted, and Step5.4 is executed;
step5.4, judging whether the text similarity of all comment modes in QinU is calculated according to the quality attribute: extracting a comment mode with the quality attribute of 3 and the text similarity of all comment modes in the category 3 not calculated2Executing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode2And extracting a mode with the use quality attribute of 3 and the mode with the use quality attribute of 3 without calculating the text similarity of other comment modes with the use quality attribute of 32Comment mode for text similarity calculation4Executing Step5.6;
step5.6, calculate mode using equation (7)2And mode4Word text similarity modelword sim24
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
modeWord_sim24=0.33
Calculate mode using equation (8)2And mode4Part-of-speech text similarity modeSpeech _ sim24
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
modeSpeech_sim24=0.43
Performing Step5.7;
step5.7, calculate mode using equation (9)2And mode4Integrated text similarity modeboyh _ sim24
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
modeBoth_sim24=0.38
Performing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in the category QinU is calculated is finished: mode2Extracting a category 3 un-neutralized mode when the similarity of the text with other comment modes in the category 3 is not calculated2Comment mode for text similarity calculation5Executing Step5.6;
step5.6, calculate mode using equation (7)2And mode5Word text similarity modelword sim25
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
modeWord_sim25=0.38
Calculate mode using equation (8)2And mode5Part-of-speech text similarity modeSpeech _ sim25
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
modeSpeech_sim25=0.3
Performing Step5.7;
step5.7, calculate mode using equation (9)2And mode5Integrated text similarity modeboyh _ sim25
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
modeBoth_sim25=0.34
Performing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in the category QinU is calculated is finished: mode2After the similarity calculation with other comment mode texts in the category 3 is finished, Step5.8 is executed;
step5.8, calculate comment mode using equation (10)2Sum of word text similarity for all other comment modes in its usage quality attribute sum _ mode word _ sim2
sum_modeWord_simm=SUM{modeWord_simmm'}(m'!=m) (10)
sum_modeWord_sim2=modeWord_sim24+modeWord_sim25=0.33+0.38=0.71
Performing Step5.4;
step5.4, judging whether the text similarity of all comment modes in QinU is calculated according to the quality attribute: extracting a comment mode with the quality attribute of 3 and the text similarity of all comment modes in the category 3 not calculated4Executing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode4And extracting a mode with the use quality attribute of 3 and the mode with the use quality attribute of 3 without calculating the text similarity of other comment modes with the use quality attribute of 34Comment mode for text similarity calculation2Executing Step5.6;
step5.6, calculate mode using equation (7)4And mode2Word text similarity modelword sim42
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
modeWord_sim42=0.33
Calculate mode using equation (8)4And mode2Part-of-speech text similarity modeSpeech _ sim42
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
modeSpeech_sim42=0.43
Performing Step5.7;
step5.7, calculate mode using equation (9)4And mode2Integrated text similarity modeboyh _ sim42
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
modeBoth_sim42=0.38
Performing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode4And extracting a mode with the use quality attribute of 3 and the mode with the use quality attribute of 3 without calculating the text similarity of other comment modes with the use quality attribute of 34Comment mode for text similarity calculation5Executing Step5.6;
step5.6, calculate mode using equation (7)4And mode5Word text similarity modelword sim45
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
modeWord_sim45=0.25
Calculate mode using equation (8)4And mode5Part-of-speech text similarity modeSpeech _ sim45
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
modeSpeech_sim45=0.5
Performing Step5.7;
step5.7, calculate mode using equation (9)4And mode5HeddleCombined text similarity modeBoth _ sim45
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
modeBoth_sim45=0.375
Performing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode4And after the similarity of the text of other comment modes with the quality attribute of 3 is calculated, executing Step5.8;
step5.8, calculate comment mode using equation (10)4Sum of word text similarity for all other comment modes in its usage quality attribute sum _ mode word _ sim4
sum_modeWord_simm=SUM{modeWord_simmm'}(m'!=m) (10)
sum_modeWord_sim4=modeWord_sim42+modeWord_sim45=0.33+0.25=0.58
Performing Step5.4;
step5.4, judging whether the text similarity of all comment modes in QinU is calculated according to the quality attribute: extracting the comment mode with the quality attribute of 3 and the text similarity of all the comment modes not calculated5Executing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode5And extracting a mode with the use quality attribute of 3 and the mode with the use quality attribute of 3 without calculating the text similarity of other comment modes with the use quality attribute of 35Comment mode for text similarity calculation2Executing Step5.6;
step5.6, calculate mode using equation (7)5And mode2Word text similarity modelword sim52
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
modeWord_sim52=0.38
Calculate mode using equation (8)5And mode2Part-of-speech text similarity modeSpeech _ sim52
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
modeSpeech_sim52=0.3
Performing Step5.7;
step5.7, calculate mode using equation (9)5And mode2Integrated text similarity modeboyh _ sim52
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
modeBoth_sim52=0.34
Performing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode5And extracting a mode with the use quality attribute of 3 and the mode with the use quality attribute of 3 without calculating the text similarity of other comment modes with the use quality attribute of 35Comment mode for text similarity calculation4Executing Step5.6;
step5.6, calculate mode using equation (7)5And mode4Word text similarity modelword sim54
modeWord_simmm'=1-dis_wordmm'/max(len_wordm,len_wordm') (7)
modeWord_sim54=0.25
Calculate mode using equation (8)5And mode4Part-of-speech text similarity modeSpeech _ sim54
modeSpeech_simmm'=1-dis_speechmm'/max(len_speechm,len_speechm') (8)
modeSpeech_sim54=0.5
Performing Step5.7;
step5.7, calculate mode using equation (9)5And mode4Integrated text similarity modeboyh _ sim54
modeBoth_simmm'=0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
modeBoth_sim54=0.375
Performing Step5.5;
step5.5, judge modemAnd whether the similarity of the text of other comment modes in QinU is calculated by using the quality attribute: mode5And after the similarity of the text of other comment modes with the quality attribute of 3 is calculated, executing Step5.8;
step5.8, calculate comment mode using equation (10)5Sum of word text similarity for all other comment modes in its usage quality attribute sum _ mode word _ sim5
sum_modeWord_simm=SUM{modeWord_simmm'}(m'!=m) (10)
sum_modeWord_sim5=modeWord_sim 52+modeWord_sim 54=0.38+0.25=0.63
Performing Step5.4;
step5.4, judging whether the text similarity of all comment modes in QinU is calculated according to the quality attribute: after the similarity of all comment mode texts with the quality attribute of 3 is calculated, executing Step5.9;
step5.9, obtaining a comment mode with the maximum sum of word text similarity in the quality attribute of 3 by using a formula (11)maxQinU
sum_modeWord_simmaxQinU=MAX{sum_modeWord_simm}(1<=max<=m) (11)
modemax3=MAX{sum_modeWord_sim2,sum_modeWord_sim4, sum_modeWord_sim5}=MAX{0.71,0.58,0.63}=mode2
Performing Step5.10;
step5.10, QinU ═ 4, step5.2 was performed;
step5.2, judging whether QinU is less than or equal to 5: 4<5, perform step5.3;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: there is no comment pattern using a quality attribute of 4 in the candidate comment pattern library, modemax4Null, perform step5.10;
step5.10, QinU ═ 5, step5.2 was performed;
step5.2, judging whether QinU is less than or equal to 5: 5, executing Step5.3;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: there is no comment pattern using a quality attribute of 5 in the candidate comment pattern library, modemax5Null, perform step5.10;
step5.10, QinU ═ 6, step5.2 was performed;
step5.2, judging whether QinU is less than or equal to 5: 6>5, obtaining 5 word text similarity maximum comment modes which respectively belong to 5 different use qualities: { modemax1,…,modemax5}={null,null,mode2Null, null }, Step6 is executed;
step6, selecting comment seeds in the candidate comment mode library to update the comment seed library:
step6.1, choose comment mode null, null, mode2The first 3 comment modes with the largest sum of word text similarities in null, null } are as follows: modenew1=null、modenew2=null、modenew3=mode2Extract its comment seednew1、seednew2、seednew3
Step6.1.1, initializing k to 1, and executing step 6.1.2;
step6.1.2, judging whether k is less than or equal to 3: 1<Extracting comment modenew1Executing Step6.1.3;
step6.1.3, judgment modenew1Whether it is empty: modenew1Is empty, seednew1Null, k 2, step6.1.2;
step6.1.2, judging whether k is less than or equal to 3: 2<Extracting comment modenew2Executing Step6.1.3;
step6.1.3, judgment modenew2Whether it is empty: modenew2Is empty, seednew2Null, k 3, step6.1.2;
step6.1.2, judging whether k is less than or equal to 3: extracting comment mode with 3 ═ 3new3Executing Step6.1.3;
step6.1.3, judgment modenew3Whether it is empty: modenew3Not null, comment modenew3The number of words with the part of speech n, v, d and a is 2, and the comment seed is extractednew3Step6.1.2 is performed, where { memory + is large, n + a, 2, efficiency }, and k is 4;
step6.1.2, judging whether k is less than or equal to 3: 4>3, performing Step6.2;
step6.2 determination of seednewkWhether the distances of the comment seeds which are not empty in the database are all updated is judged: seednewkIf the distances of the comment seeds which are not empty in the comment database are not completely updated, executing Step6.3;
step6.3, extract a distance not empty and not updating the comment seednew3Selecting and commenting seednew3Comment mode ofnew3All comment modes with a combined text similarity greater than 0.35: mode4Where memory + is smaller than + before, n + p + f + a, efficiency > is performed step6.4;
step6.4, calculate all comment modenewk'Distance dis of keywordsnewk'
Step6.4.1, judge all comment mode modesnewk'Whether the extraction of the keyword distance is finished: comment mode4Executing Step6.4.2 if the distance of the key words is not extracted;
step6.4.2, extracting a comment mode with the distance of the unextracted keyword4Initializing the set pos _ mode _ speed to be null;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: mode4After all parts of speech are not judged, executing Step6.4.4;
step6.4.4, extracting an undetermined part of speech mode _ speech41And judging whether the part of speech is: n or v or a or d: speed41For n, add 1 to the set pos _ mode _ speed, perform step 6.4.3;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: mode4After all parts of speech are not judged, executing Step6.4.4;
step6.4.4, extracting an undetermined part of speech mode _ speech42And judging whether the part of speech is: n or v or a or d: speed42Is p, speed42Instead of n or v or a or d, Step6.4.3 is performed;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: mode4After all parts of speech are not judged, executing Step6.4.4;
step6.4.4, extracting an undetermined part of speech mode _ speech43And judging whether the part of speech is: n or v or a or d: speed43Is f, speed43Instead of n or v or a or d, Step6.4.3 is performed;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: mode4After all parts of speech are not judged, executing Step6.4.4;
step6.4.4, extracting an undetermined part of speech mode _ speech44And judging whether the part of speech is: n or v or a or d: speed44To a, add 4 to the set pos _ mode _ speed, perform step 6.4.3;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: mode4After all parts of speech are judged, executing Step6.4.5;
step6.4.5, calculate comment mode Using equation (12)4Distance dis of keywords4
disnewk'=MAX{pos_mode_speech}-MIN{pos_mode_speech} (12)
dis4=4-1=3
Performing Step6.4.1;
step6.4.1, judge all comment mode modesnewk'Whether the extraction of the keyword distance is finished: all comment modenewk'After the keyword distance is extracted, executing Step6.5;
step6.5, retrieve and mode using equation (13)new3All comment mode with integrated text similarity greater than 0.35newk'Dis ofnewk'Maximum value new _ seed _ dis in (1)max
new_seed_dismax=MAX{disnewk'} (13)
new_seed_dismax=MAX{3}=3
Performing Step6.6;
step6.6, judge new _ seed _ dismaxWhether greater than seednewkThe distance of (c): 3>seed_dis new32, seednew3Update the distance to 3, and execute step 6.2;
step6.2 determination of seednewkWhether the distances of the comment seeds which are not empty in the database are all updated is judged: seednewkThe distances of the comment seeds which are not empty in the comment database are all updated, and Step6.7 is executed;
step6.7, seednewkSeed of comments not empty: seednew3The { memory + large, n + a, 3, efficiency } is updated to the review seed repository.
While the present invention has been described in detail with reference to the embodiments shown in the drawings, the present invention is not limited to the embodiments, and various changes can be made without departing from the spirit of the present invention within the knowledge of those skilled in the art.

Claims (5)

1. A user comment mining method aiming at APP software use quality is characterized in that:
firstly, excavating APP software user comments reflecting the use quality by using initial comment seeds; then, for the user comment which is unsuccessfully matched with the comment seed, judging whether the user comment reflects the use quality or not according to the APP software use quality feature word list and extracting a comment mode; finally, extracting new comment seeds based on the candidate comment mode, and further mining user comments related to the use quality;
the method comprises the following specific steps:
step1, initialization data: the comment library has c pieces of user comment after word segmentationmM =1, there are s comment seeds seed in the comment seed library, and there are f use quality feature words feature _ word in the use quality feature word list;
step2, judging whether the undetermined user comments exist in the comment library: judging whether m is less than or equal to c: if yes, taking out an undetermined comment of the usermDrawing commentmComment mode ofmExecuting Step 3; otherwise, Step5 is executed;
wherein comment modem= <mode_wordm1 + … +mode_wordmn +… + mode_wordmq,mode_speechm1 +… + mode_speechmn +…+ mode_speechmq ,mode_quality_in_usem >N is more than or equal to 1 and less than or equal to q; mode _ word represents the word in the user comment, mode _ speech represents the part of speech of the word in the user comment, q represents the number of words/parts of speech in the comment mode, mode _ quality _ in _ usemRepresentative commentmThe reflected use quality is one of 5 use quality attributes in the use quality feature vocabulary, and the comment is not givenmJudging the use quality, wherein the value is unknown;
step3, judgment commentmWhether it matches a certain comment seed:
if comment is commented onmAnd comment seedgSuccessful match, mode _ quality _ in _ usem = seed_quality_in_usegGive commentmAnd (4) judging the result:<commentm,seed_quality_in_useg>(ii) a m + +, execute Step 2; wherein g is more than or equal to 1 and less than or equal to s;
if comment is commented onmIf the matching with all comment seeds fails, Step4 is executed;
step4, judgmentBreak commentmWhether to match a certain usage quality feature word:
if comment is commented onmAnd use the quality feature word f 'Successful match, mode _ quality _ in _ usem= quality_in_use f 'Give commentmAnd (4) judging the result:<commentm,quality_in_use f '>(ii) a Comment modem = < mode_wordm1 + … +mode_wordmn +…+mode_wordmq,mode_speechm1 +… + mode_speechmn +…+ mode_speechmq,mode_quality_in_use f '>N is more than or equal to 1 and less than or equal to q enters a candidate comment mode library, m + +, and Step2 is executed;
if comment is commented onmMode _ quality _ in _ use, failure to match with the usage quality feature vocabularym= null, give commentmAnd (4) judging the result:<commentm,null>(ii) a m + +, execute Step 2;
wherein null represents commentmDoes not reflect the quality of use; f' is more than or equal to 1 and less than or equal to f;
step5, calculating the text similarity of the candidate comment modes to obtain 5 comment modes with maximum word text similarity, wherein the 5 comment modes respectively belong to 5 different use qualities: { modemax1,…,modemax5Execution Step 6;
step6, selecting comment seeds in the candidate comment mode library to update the comment seed library: extraction comment modemax1,…,modemax5Seed of comment ofnewkTo seednewkAnd updating the comment seeds which are not empty in the database to the comment seed database.
2. The user comment mining method for APP software usage quality of claim 1, characterized in that: the specific steps of Step3 are as follows:
step3.1, initialization data: i = 1;
step3.2, judging whether i is less than or equal to s: if yes, extracting the ith comment seediExecuting Step3.3; otherwise, executing Step3.7;
wherein seedi = <seed_wordi1 + … + seed_wordij + … + seed_wordip,seed_speechi1 +… + seed_speechij +… + seed_speechip,seed_disi,seed_quality_in_usei>J is more than or equal to 1 and less than or equal to p, seed _ word represents a word in the comment seed, seed _ speech represents a part of speech of the word in the comment seed, p represents the number of words/parts of speech in the comment seed, and seed _ disiThe distance of the comment seed is the sum of the maximum distance between the evaluation object and the evaluation viewpoint and the number of words/parts of speech in the comment seed, and the value of seed _ quality _ in _ useiThe use quality reflected by the comment seed is represented, and the use quality is one of 5 use quality attributes in the use quality feature vocabulary;
wherein, the evaluation object is also called as an emotion object or a viewpoint object and refers to a subject discussed in a certain text; the evaluation viewpoint refers to words with emotion tendencies capable of expressing the own viewpoint of the user, and is the fundamental basis for judging the emotion of the user on the evaluation object;
step3.3, commentmWord "mode wordm1 + … + mode_wordmn + … + mode_wordmq"and comment seediWord "seed wordi1 + … + seed_wordij + …+seed_wordip"match, calculate word match value commented word _ simmi
Step3.3.1, initialization j =1, and set pos _ word is null;
step3.3.2, judging whether j is less than or equal to p: if so, executing Step3.3.3; otherwise, executing Step3.3.6;
step3.3.3, initialize n =1, execute step3.3.4;
step3.3.4, judging whether n is less than q: if so, executing Step3.3.5; otherwise, j + +, execute Step3.3.2;
step3.3.5, judging seed _ wordijWhether and mode _ wordmnThe same is that: if yes, add n to the set pos _ word, j + +, execute Step3.3.2; otherwise, n + +, execute Step3.3.4;
step3.3.6 calculation of comment using equation (1)mAnd seediMaximum distance between successfully matched words dis wordmi
dis_wordmi = MAX{pos_word} -MIN{pos_word} (1)
In the formula (1), MAX represents the maximum value of elements in the calculation set, and MIN represents the minimum value of elements in the calculation set;
then executing Step3.3.7;
step3.3.7, determine dis _ wordmiWhether or not it is less than or equal to seed _ disi: if so, then calculate comment using equation (2)mAnd seediWord matching value commentWord _ simmi
commentWord_simmi=NUM(pos_word)/p (2)
In the formula (2), NUM represents the number of elements in the calculation set;
otherwise, commenting word _ simmi=0;
Performing Step3.4;
step3.4, commentmPart of speech "mode _ speechm1 + … + mode_speechmn + … + mode_speechmq"and comment seediPart of speech "seed _ speechi1 + … + seed_speechij + … + seed_speechip"match, calculate the part-of-speech match value commendspeech _ simmi
Step3.4.1, initialization j =1, and set pos _ speed is empty;
step3.4.2, judging whether j is less than or equal to p: if so, executing Step3.4.3; otherwise, executing Step3.4.7;
step3.4.3, initialize n =1, execute step3.4.4;
step3.4.4, judging whether n is less than or equal to q: if so, executing Step3.4.5; otherwise, j + +, execute Step3.4.2;
step3.4.5, judging seed _ speedijWhether to sum mode _ speedmnThe same is that: if so, executing Step3.4.6; otherwise, n + +, execute Step3.4.4;
step3.4.6, determine if n is greater than all elements in the set pos _ speed: if yes, add n to the set pos _ speed, j + +, execute Step3.4.2; otherwise, n + +, execute Step3.4.4;
step3.4.7 uses equation (3) to calculate commentmAnd seediMaximum distance dis _ speech between successfully matched parts of speechmi
dis_speechmi = MAX{pos_speech} -MIN{pos_speech} (3)
Then executing Step3.4.8;
step3.4.8, determine dis _ speedmiWhether or not it is less than or equal to seed _ disi: if so, then the comment is calculated using equation (4)mAnd seediWord-part matching value commendstech simmi
commentSpeech_simmi=NUM(pos_speech)/p (4)
Otherwise, commenting Speech _ simmi=0;
Performing Step3.5;
step3.5, calculate comment using equation (5)mAnd comment seediIntegrated match value com _ sim ofmi
commentBoth_simmi=0.5*commentWord_simmi+0.5*commentSpeech_simmi (5)
Performing Step3.6;
step3.6, i + +, execute Step3.2;
step3.7, obtaining comment using equation (6)mWith comment seed of all comment seedsgMaximum integrated match value of (2) commentBoth _ simmg
commentBoth_simmg
=MAX{commentBoth_simm1,…,commentBoth_simmg,…,commentBoth_simms}
(1≤g≤s) ;(6)
Executing Step3.8;
step3.8, judge commentBoth _ simmgWhether or not it is greater than 0.5: if so, commentmAnd comment seedgMatching is successful; otherwise, commentmFailure to match with all review seeds;
if comment is commented onmAnd comment seedgSuccessful match, mode _ quality _ in _ usem = seed_quality_in_usegGive commentmAnd (4) judging the result:<commentm,seed_quality_in_useg>(ii) a m + +, execute Step 2;
if comment is commented onmFailing to match all the review seeds, Step4 is performed.
3. The user comment mining method for APP software usage quality of claim 1, characterized in that: the specific steps of Step4 are as follows:
step4.1, initialization variables: f' = 1;
step4.2, judging whether f' is less than or equal to f: if so, executing Step4.3; otherwise, executing Step4.6;
step4.3, judgment commentmWhether or not the use quality feature word feature _ word is included in f ': if so, executing Step4.5; otherwise, executing Step4.4;
wherein, the f' th use quality feature word f 'The reflected use quality is quality _ in _ use f ',1≤ f '≤ f;
Step4.4, commentmAnd use the quality feature word f 'Matching fails, f' ++, Step4.2 is executed;
step4.5, commentmAnd use the quality feature word f 'Successful match, mode _ quality _ in _ usem = quality_in_use f 'Give commentmAnd (4) judging the result:<commentm,quality_in_use f '>(ii) a Comment modem = < mode_wordm1 + … +mode_wordmn +… + mode_wordmq,mode_speechm1+… + mode_speechmn +…+ mode_speechmq, mode_quality_in_use f '>Entering a candidate comment mode library, m + +, and executing Step 2;
step4.6, commentmMatching with the use quality feature vocabulary fails: mode _ quality _ in _ usem= null, give commentmAnd (4) judging the result:<commentm,null>(ii) a m + +, execute Step 2; wherein null represents commentmDoes not reflect the quality of use.
4. The user comment mining method for APP software usage quality of claim 1, characterized in that: the specific steps of Step5 are as follows:
step5.1, initialization variables: QinU is the quality of use attribute, QinU = 1; wherein QinU =1 represents "satisfaction"; QinU =2 for "effectiveness"; QinU =3 for "efficiency"; QinU =4 represents "risk avoidance"; QinU =5 for "context coverage";
step5.2, judging whether QinU is less than or equal to 5: if so, executing Step5.3; otherwise, obtaining the comment modes with the maximum text similarity of 5 words respectively belonging to 5 different use qualities: { modemax1,…,modemax5Execution Step 6;
step5.3, judging whether a comment mode with a quality attribute of QinU exists in the candidate comment mode library: if yes, extracting all comment modes with the quality attribute of QinU in the candidate comment mode library, and executing Step5.4; otherwise, modemaxQinU= null, perform step5.10;
wherein, modemaxQinU= null to indicate that the comment mode representing a quality of use attribute QinU is null;
step5.4, judging whether the text similarity of all comment modes in QinU is calculated according to the quality attribute: if so, executing Step5.9; otherwise, extracting a comment mode using an uncalculated text similarity in QinU as a quality attributemExecuting Step5.5;
the text similarity calculation comprises word text similarity calculation, part of speech text similarity calculation and comprehensive text similarity calculation;
step5.5, judge modemAnd using the quality attribute in QinUWhether the similarity of the texts in other comment modes is calculated is finished: if so, executing Step5.8; otherwise, extracting a using quality attribute of a non-neutralized mode in QinUmComment mode for text similarity calculationm' M' | = m, execute step5.6;
step5.6, calculate mode using equation (7)mAnd mode m'Word text similarity modelword simmm'
modeWord_simmm'=1 - dis_wordmm' /max(len_wordm,len_wordm') (7)
Wherein, modeWord _ simmm'Represents a modemAnd modem'Word-text similarity of (dis word)mm'Represents a modemAnd modem'Distance between word combinations of (2), lenjwordmAnd len _ wordm'And the lengths of the characters in the two word combinations respectively;
calculate mode using equation (8)mAnd modem'Part-of-speech text similarity modeSpeech _ simmm'
modeSpeech_simmm' =1 - dis_speechmm' /max(len_speechm,len_speechm') (8)
Wherein modeSpeech _ simmm'Represents a modemAnd modem'Part of speech text similarity of (dis _ speech)mm'Represents a modemAnd modem'Distance between parts of speech combinations of (2), len _ speechmAnd len _ speedm'The lengths of the characters in the two part-of-speech combinations are respectively;
then, Step5.7 is executed;
step5.7, calculate mode using equation (9)mAnd modem'Integrated text similarity modeboyh _ simmm'
modeBoth_simmm'= 0.5*modeWord_simmm'+0.5*modeSpeech_simmm' (9)
Then, Step5.5 is executed;
step5.8 calculates the comment mode using equation (10)mAnd all other comment modes in its usage quality attributesm'Sum of word text similarity sum _ model word _ simm
sum_modeWord_simm= SUM{modeWord_simmm'}(m'! = m) (10)
In the formula (10), SUM represents the SUM of elements in the calculation set;
performing Step5.4;
step5.9, obtaining a comment mode with maximum word text similarity sum by using formula (11)maxQinU
sum_modeWord_simmaxQinU= MAX{sum_modeWord_simm}(1≤ max≤ m) (11)
Performing Step5.10;
step5.10, QinU + +, Step5.2 was performed.
5. The user comment mining method for APP software usage quality of claim 1, characterized in that: the specific steps of Step6 are as follows:
step6.1, choose comment mode { modemax1,…,modemax5The first 3 comment modes with the maximum sum of word text similarity: modenewk(k is more than or equal to 1 and less than or equal to 3), and extracting comment seed thereofnewk
Step6.1.1, initialize k =1, execute step6.1.2;
step6.1.2, judging whether k is less than or equal to 3: if so, extracting the comment modenewkExecuting Step6.1.3; otherwise, executing Step6.2;
step6.1.3, judgment modenewkWhether it is empty: if so, seednewk= null, k + +, execute step6.1.2; otherwise, extract its comment seednewk={ seed_wordnewk1 + … + seed_wordnewkj + … + seed_wordnewkp,seed_speechnewk1 +… + seed_speechnewkj +… + speechnewkp,seed_disnewk,seed_quality_in_usenewk}, k + +, perform Step6.1.2;
wherein seed _ disnewkIs a comment modenewkNumber of words with middle part of speech n, v, d, and a, seed _ quality _ in _ usenewkTo commentnewkReflected quality of use attributes;
step6.2 determination of seednewkWhether the distances of the comment seeds which are not empty in the database are all updated is judged: if so, executing Step6.7; otherwise, executing Step6.3;
step6.3, extract a distance not empty and not updating the comment seednewkSelecting and commenting seednewkComment mode ofnewkAll comment mode modes with a combined text similarity greater than 0.35newk'Executing Step6.4;
step6.4, calculate all comment modenewk'Distance dis of keywordsnewk'
The keywords are words with parts of speech n, v, d and a in the comment mode;
step6.4.1, judge all comment mode modesnewk'Whether the extraction of the keyword distance is finished: if so, executing Step6.5; otherwise, executing Step6.4.2;
step6.4.2 extracting a comment mode with an unextracted keyword distancenewk'Initializing the set pos _ mode _ speed to be empty, and then executing step 6.4.3;
step6.4.3, judgment modenewk'Whether all parts of speech are judged is finished: if so, executing Step6.4.5; otherwise, executing Step6.4.4;
step6.4.4, extracting an undetermined part-of-speechnewk'jJudging whether the part of speech is n or v or a or d: if yes, add j to the set pos _ mode _ speed, execute Step6.4.3; otherwise, executing Step6.4.3;
step6.4.5, calculate comment mode Using equation (12)maxk'Distance dis of keywordsnewk'
disnewk'=MAX{ pos_mode_speech}-MIN{pos_mode_speech} (12)
Performing Step6.4.1;
step6.5, using equation (13)) Acquisition and modenewkAll comment mode with integrated text similarity greater than 0.35newk'Dis ofnewk'Maximum value new _ seed _ dis in (1)max
new_seed_dismax = MAX{disnewk'} (13)
Performing Step6.6;
step6.6, judge new _ seed _ dismaxWhether greater than seednewkThe distance of (c): if so, seed will benewkIs updated to new _ seed _ dismaxExecuting Step6.2; otherwise, executing Step6.2;
step6.7, seednewkAnd updating the comment seeds which are not empty in the database to the comment seed database.
CN201710890944.4A 2017-09-27 2017-09-27 User comment mining method for APP software use quality Active CN107885768B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710890944.4A CN107885768B (en) 2017-09-27 2017-09-27 User comment mining method for APP software use quality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710890944.4A CN107885768B (en) 2017-09-27 2017-09-27 User comment mining method for APP software use quality

Publications (2)

Publication Number Publication Date
CN107885768A CN107885768A (en) 2018-04-06
CN107885768B true CN107885768B (en) 2021-08-20

Family

ID=61780889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710890944.4A Active CN107885768B (en) 2017-09-27 2017-09-27 User comment mining method for APP software use quality

Country Status (1)

Country Link
CN (1) CN107885768B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408702B (en) * 2018-08-29 2021-07-16 昆明理工大学 Mixed recommendation method based on sparse edge noise reduction automatic coding
CN109753651B (en) * 2018-12-14 2022-05-17 昆明理工大学 APP software user comment mining method for embodying user intention
CN109783807B (en) * 2018-12-21 2022-10-28 昆明理工大学 User comment mining method for APP software defects
CN109857838B (en) * 2019-02-12 2021-01-26 北京字节跳动网络技术有限公司 Method and apparatus for generating information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778109A (en) * 2014-02-13 2014-05-07 北京奇艺世纪科技有限公司 Method and device for identifying user comments
CN103886053A (en) * 2014-03-13 2014-06-25 电子科技大学 Knowledge base construction method based on short text comments
CN104462509A (en) * 2014-12-22 2015-03-25 北京奇虎科技有限公司 Review spam detection method and device
CN104731874A (en) * 2015-03-05 2015-06-24 北京汇行科技有限公司 Evaluation information generation method and device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020190B2 (en) * 2005-10-14 2011-09-13 Sdc Software, Inc. Enhanced browser security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778109A (en) * 2014-02-13 2014-05-07 北京奇艺世纪科技有限公司 Method and device for identifying user comments
CN103886053A (en) * 2014-03-13 2014-06-25 电子科技大学 Knowledge base construction method based on short text comments
CN104462509A (en) * 2014-12-22 2015-03-25 北京奇虎科技有限公司 Review spam detection method and device
CN104731874A (en) * 2015-03-05 2015-06-24 北京汇行科技有限公司 Evaluation information generation method and device

Also Published As

Publication number Publication date
CN107885768A (en) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107885768B (en) User comment mining method for APP software use quality
US10347019B2 (en) Intelligent data munging
CN110348214B (en) Method and system for detecting malicious codes
CN103064838B (en) Data search method and device
CN110175236B (en) Training sample generation method and device for text classification and computer equipment
WO2020108063A1 (en) Feature word determining method, apparatus, and server
CN106919575B (en) Application program searching method and device
CN107102993B (en) User appeal analysis method and device
CN101454826A (en) Speech recognition word dictionary/language model making system, method, and program, and speech recognition system
CN111159404B (en) Text classification method and device
CN112380349A (en) Commodity gender classification method and device and electronic equipment
CN110414005B (en) Intention recognition method, electronic device and storage medium
US20140324908A1 (en) Method and system for increasing accuracy and completeness of acquired data
CN109871437B (en) Method and device for processing user problem statement
CN111309910A (en) Text information mining method and device
CN110633464A (en) Semantic recognition method, device, medium and electronic equipment
KR20190128246A (en) Searching methods and apparatus and non-transitory computer-readable storage media
CN114970560A (en) Dialog intention recognition method and device, storage medium and intelligent device
CN108664237B (en) It is a kind of based on heuristic and neural network non-API member&#39;s recommended method
CN101388019A (en) A method of bibliographic field normalization
CN106202440B (en) Data processing method, device and equipment
CN110457707B (en) Method and device for extracting real word keywords, electronic equipment and readable storage medium
CN111400340A (en) Natural language processing method and device, computer equipment and storage medium
CN109446318A (en) A kind of method and relevant device of determining auto repair document subject matter
CN104268069A (en) Computer performance assessment method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant