手机用户提交的App评论为开发者提供了一个了解用户满意度的沟通渠道. 许多用户通常使用“send a video”和“crash”等关键短语来描述有缺陷的功能(即用户操作)和App的异常行为(即异常行为), 而这些短语可能会与其他琐碎信息(如用户的抱怨)一起交杂在评论文本中. 掌握这些细粒度信息可以帮助开发者理解来自用户的功能需求或缺陷报告, 进而有利于提升App的质量. 现有的基于模式的目标短语提取方法只能对评论的高层主题/方面进行总结, 并且由于对评论的语义理解不足, 短语提取的性能较差. 提出了一种语义感知的细粒度App评论缺陷挖掘方法(Arab), 来提取用户操作和异常行为, 并挖掘两者之间的关联关系. 设计了一种新颖的用于提取细粒度目标短语的神经网络模型, 该模型将文本描述和评论属性相结合, 能更好地建模评论的语义. Arab还根据语义关系对提取的短语进行聚类, 并将用户操作和异常行为之间的关联关系进行了可视化. 使用6个App的3 426条评论进行评估实验, 实验结果证实了Arab在短语提取方面的有效性. 进一步使用Arab对15个热门App的301 415条评论进行了案例研究, 以探索其潜在的应用, 并验证其在大规模数据上的实用性.
App reviews are considered as a communication channel between users and developers to perceive user's satisfaction. Users usually describe buggy features (i.e., user actions) and App abnormal behaviors (i.e., abnormal behaviors) in forms of key phrases (e.g., "send a video" and "crash"), which could be buried with other trivial information (e.g., complaints) in the review texts. A fine-grained view about this information could facilitate the developers' understanding of feature requests or bug reports from users, and improve the quality of Apps. Existing pattern-based approaches to extract target phrases can only summarize the high-level topics/aspects of reviews, and suffer from low performance due to insufficient semantic understanding of reviews. This study proposes a semantic-aware and fine-grained App review bug mining approach (Arab) to extract user actions and abnormal behaviors, and mine the correlations between them. A novel neural network model is designed for extracting fine-grained target phrases, which combines textual descriptions and review attributes to better represent the semantics of reviews. Arab also clusters the extracted phrases based on their semantic relations and provides a visualization of correlations between User Actions and Abnormal Behaviors. 3, 426 reviews from six Apps are used to carry out evaluation test, and the results confirm the effectiveness of Arab in phrase extraction. A case study is further conducted with Arab on 301, 415 reviews of 15 popular Apps to explore its potential application and examine its usefulness on large-scale data.
移动应用(App)经过十几年的发展, 在我们的日常生活中变得越来越不可或缺. 开发者开发了数以百万计的可用App, 用于处理各种各样的任务(如购物、银行和社交互动). App的重要性促使开发团队竭尽全力地理解用户反馈的功能需求和缺陷报告, 并开展质量保证和软件维护活动. App用户通常会在苹果应用商店和谷歌Play商店等平台上为他们所使用的App撰写评论. 这些用户评论通常是一些简短的文本, 可以为App开发人员提供有价值的信息, 如用户体验、缺陷报告和对新功能的需求[
近年来, 用于挖掘App评论中有用信息的自动化技术引起了广泛关注[
App评论中的用户操作及对应的App异常行为
相比之下, 本文的目标是提取App评论中细粒度的信息, 这些信息通常以短语的形式存在于用户评论之中[
为了克服现有研究中信息提取粒度粗, 语义理解能力不足等缺点, 本文提出了一种语义感知的细粒度App评论缺陷挖掘方法Arab (app review user action and abnormal behavior miner). 该方法可以分别提取用户操作和App的异常行为, 并通过聚类和可视化挖掘两者之间的关联关系. 更具体地说, 我们设计了一种新颖的神经网络模型, 可以自动提取细粒度的目标短语(即用户操作和异常行为). 该模型结合了评论文本描述和额外的评论属性(如App类别和评论描述情感), 能更好地建模评论的语义. 之后, 利用提取的短语, 我们设计了一种基于图的聚类方法分别对用户操作和异常行为进行聚类和关联关系挖掘. 最后, Arab对聚类后的两类短语和两者之间的关联关系进行可视化处理.
我们使用3 426条经过人工标注的App评论对Arab短语提取的性能进行了评估, 这些评论数据涉及3个类别的6个App, 总共包含8 788个文本句子. Arab短语提取的总体性能准确率、召回率和
本文第1节介绍与本文相关的方法和研究现状. 第2节介绍本文使用到的相关技术的基础知识, 包括命名实体识别技术和语言模型预训练技术. 第3节介绍本文构建的语义感知的细粒度App评论缺陷挖掘方法. 第4节通过对比实验验证所提模型的有效性. 最后总结全文.
Harman等人[
现有的挖掘用户评论的研究[
现有的几种主题发现的方法[
现有的研究提出了多种方法理解缺陷报告, 例如, 重复报告检测[
近年来越来越多的研究人员利用深度学习技术来理解软件制品的语义, 并服务于后续的软件工程任务. 这类研究包括使用注意力编码器-解码器模型对代码片段进行代码摘要[
本文所提方法主要基于命名实体识别技术和语言模型预训练技术, 下面介绍相关概念和基本知识.
命名实体识别(named entity recognition, NER)是自然语言处理(natural language processing, NLP)中一类经典的序列标注任务(sequence tagging)[
语言模型预训练技术已被证明可以有效地提高许多NLP任务的性能[
为了克服现有App评论挖掘技术的缺点并更好地利用App评论的语义, 本文提出的语义感知的细粒度App评论缺陷挖掘方法Arab, 能够提取用户在App评论中描述的存在缺陷的功能(即用户操作)以及用户在使用这些功能时所导致的App异常行为(即异常行为), 并挖掘两者之间的关联关系. 该方法的整体架构如
方法架构图
(1) 数据预处理: 从线上应用商店中爬取App用户评论数据, 之后进行文本数据清洗以及获取评论属性(即App类别𝑐和评论描述的情感倾向𝑠).
(2) 用户操作和异常行为提取: 构建并训练了一个基于BERT的神经网络模型, 以自动提取App评论中与用户操作和异常行为相关的短语. 该模型使用数据预处理中获取的评论文本和两个评论属性(即𝑐和𝑠)作为输入, 能更好地对评论的语义进行建模, 提升了传统BERT-CRF模型短语提取的性能.
(3) 用户操作和异常行为关系挖掘: 设计了一个基于图的聚类方法, 能够根据短语之间的语义关系分别对提取的用户操作和异常行为进行聚类. 使用聚类后的结果将〈用户操作, 异常行为〉对转换为各自的聚类标签〈
数据预处理主要包含两步: 文本数据清洗和评论属性获取, 下面分别对这两步进行详细介绍.
未经处理的App评论通常是由用户通过移动设备提交的, 这些提交的文本由于受限于手机键盘, 通常包含大量的噪声词, 如重复词、拼错词、缩写语等[
● 小写化: 将评论文本中的所有单词转换为小写.
● 词根化: 使用Spacy (
● 拼写纠正: 使用Ekphras (
● 格式化: 用特殊符号“〈number〉”替换所有的数字, 此外, 我们构建了一个从谷歌Play商店抓取的所有App名称的列表, 并将它们替换为统一的特殊符号“〈appname〉”, 以帮助BERT模型简化理解.
一些与评论和App类别相关的属性有助于提取用户操作和异常行为, 我们在数据预处理阶段对这些属性进行获取. 本方法使用了两个属性, 即App类别𝑐和评论描述情感𝑠. 将App类别作为一个属性, 是因为不同类别下的App评论所涉及的功能和主题存在差异[
对于App类别, 我们可以直接从谷歌Play商店中检索并获取它们, 而对于情感倾向, 使用工具SentiStrength-SE[
本文将用户操作和异常行为提取任务建模为命名实体识别(NER)任务, 即将用户操作和异常行为分别视作两类命名实体, 并设计了一个短语提取的神经网络模型来解决该问题. 为了更好地捕获App评论的语义, 我们使用BERT模型对评论的文本描述进行编码, 之后使用CRF模型来识别两种类型的短语. 特别地, 我们在CRF模型中引入了额外的评论属性(即App类别𝑐和评论描述的情感倾向𝑠)以进一步提高两类短语识别的准确性. 参照其他NER任务的设置, 我们使用BIO标签格式[
● B标签(beginning): 表示该单词是目标短语的开始.
● I标签(inside): 表示该单词在目标短语中, 但不是短语的开头.
● O标签(outside): 表示该单词在目标短语之外.
被BIO标记的评论语句将被输入到短语提取模型中进行进一步处理.
短语提取模型结构
其中,
模型的损失函数应该度量整个输入句子的真实标签序列的可能性, 而不是序列中每个单词的真实标签的可能性, 因此常用的交叉熵损失不适合这种情况. 本方法使用的损失函数包括两部分: 发射分数(emission score)和转移分数(transition score), 其计算方法为
其中,
在训练该模型时, 我们使用贪婪策略来调整模型中的超参数以获得最佳性能. 具体做法为给定一个超参数
通过第3.2节中的短语提取模型, 我们能够逐句提取评论句子中的用户操作和异常行为, 并形成〈用户操作, 异常行为〉对. 我们能够采用这种方式构建短语对, 是因为我们观察到用户在反馈使用App某个功能所遇到的问题时, 通常会在同一句子中描述自己的操作以及该操作所导致的App异常行为. 该短语对展示了两者之间的关联关系, 例如, 某一类用户操作最可能导致哪类异常行为, 或者某一类异常行为最可能由哪类用户操作所引发. 对于评论中只涉及一类短语的情况, Arab只会提取相应类别的短语, 并且在挖掘关联关系时只分析能构成短语对的数据. 由于多个短语在表达上可能不同但在语义上相似, 我们需要合并具有相似语义的短语, 为此我们设计了一个基于图的聚类方法对提取的用户操作和异常行为分别进行聚类. 之后使用热力图对聚类后的用户操作、异常行为以及两者之间的关联关系进行可视化.
传统的主题模型使用的是基于单词共现模式的统计技术(例如Gibbs采样)[
聚类的具体流程如
聚类流程
(1) 向量化: 使用通用句子编码器(universal sentence encode, USE)[
(2) 图构建: 构建一个加权的无向图, 其中每个短语作为图的一个节点, 两个短语的USE向量之间的余弦相似度得分作为两节点之间的权重, 如果相似度得分超过某个阈值, 则在两个节点之间添加一条边, 否则不添加边. 该阈值是一个需要事先给定的超参数, 它衡量了短语之间的语义相似性, 较高的阈值会导致聚类的集群具有较高的内聚度(cohesion).
(3) 图聚类: 在上述构建的无向图上执行算法Chinese Whispers (CW)[
我们设计的这种基于图的聚类方法可以将语义相似的用户操作短语或异常行为短语聚类到同一主题中. 我们基于USE (
为了可视化用户操作和异常行为两者之间的关联关系, 我们采取以下步骤.
(1) 使用第3.3.1节中的聚类算法, 分别对提取的用户操作短语和异常行为短语进行聚类. 经过超参数的调节, 两个聚类的阈值均被设置为0.6.
(2) 使用步骤(1)中的聚类结果分别将〈用户操作, 异常行为〉对中的用户操作和异常行为转换为对应短语所属的聚类标签〈
(3) 统计所有〈
(4) 特殊地, 热力图中的第0列表示用户操作短语聚类后的分布, 第0行表示异常行为短语聚类后的分布.
通过可视化, 开发者能够清晰地理解用户认为有缺陷的功能有哪些, 这些缺陷会导致App的哪些异常行为, 以及哪类用户操作与哪类异常行为关系密切, 从而指导App新功能的开发、缺陷的修复和复现等活动.
我们在实验中使用了3个数据集
标注数据集
App类别 | App名 | 评论数量 | 句子数量 | 用户操作数量 | 异常行为数量 |
社交 | 582 | 1 402 | 481 | 194 | |
Snapchat | 585 | 1 388 | 427 | 175 | |
通信 | Gmail | 586 | 1 525 | 663 | 232 |
Yahoo Mail | 542 | 1 511 | 460 | 215 | |
金融 | BPI Mobile | 588 | 579 | 579 | 256 |
Chase Mobile | 543 | 480 | 480 | 208 | |
汇总 | 3 426 | 8 788 | 3 090 | 1 280 |
数据集
未标注数据集
App类别 | App名 | 评论数量 | 句子数量 |
社交 | 64 559 | 147 156 | |
63 124 | 153 852 | ||
TikTok | 61 178 | 104 094 | |
Snapchat | 18 268 | 41 278 | |
15 583 | 36 386 | ||
通信 | Facebook-Messenger | 27 121 | 59 303 |
Gmail | 9 655 | 24 520 | |
Telegram | 7 704 | 17 672 | |
Yahoo Mail | 7 090 | 20 124 | |
Skype | 3 266 | 8 139 | |
金融 | Paytm | 18 316 | 47 836 |
Chase Mobile | 3 732 | 9 952 | |
BPI Mobile | 1 375 | 3 638 | |
BCA Mobile | 386 | 960 | |
WavePay | 58 | 124 | |
汇总 | 301 415 | 675 034 |
评价指标分为两部分, 一部分是评价目标短语提取的指标, 另一部分是评价聚类的指标.
我们使用准确率(precision)、召回率(recall)和
● 准确率是正确提取的短语数与提取短语的总数的比值.
● 召回率是正确提取的短语数与实际短语的总数的比值.
●
参照之前工作[
● adjusted rand index (ARI): ARI取值为[−1, 1], 反映了两个聚类之间的重叠程度. 原始的rand index (RI)的计算方法为
其中,
● normalized mutual information (NMI): NMI反映了两组聚类结果的相似度, 取值为0(无互信息)到1(完全相关).
其中,
基准模型也分为评估短语提取性能的基准模型和聚类性能基准模型两部分.
为了评估Arab短语提取的性能, 我们使用以下几个基准模型作为比较.
● KEFE[
● Caspar[
● BiLSTM-CRF[
为了评估Arab聚类的性能, 我们使用scikit-learn (
●
● DBSCAN[
为了评估Arab提取用户操作和异常行为的性能, 我们在标注数据集
为了验证在Arab中引入的两个评论属性在短语提取性能提升上的贡献, 我们设计了3个Arab中短语提取模型的变体, 即Arab-cs、Arab-s和Arab-c, 分别表示不使用评论属性的模型(即只使用文本描述)、不使用评论描述情感的模型(即包含文本描述和App类别)和不使用App类别的模型(即包含文本描述和评论描述情感). 实验数据同样为标注数据集
为了评估Arab聚类用户操作和异常行为的性能, 我们在数据集
为了探究用户操作和异常行为之间的关联关系, 我们在未标注数据集
本方法的实验环境是一台配备NVIDIA GeForce RTX 2060 GPU、intel core i7 CPU和16 GB RAM, 运行在Windows 10上的台式计算机, 模型训练时每折嵌套交叉验证大约耗费2.5 h.
为了评估提出的App评论缺陷挖掘方法Arab的有效性, 我们研究了以下3个问题.
● RQ1: Arab在提取用户操作和异常行为时的性能如何?
● RQ2: Arab中加入的两个评论属性是否对短语提取的性能提升有贡献?
● RQ3: Arab在聚类用户操作和异常行为时的性能如何?
● RQ4: Arab在大规模未标注数据集
RQ1: Arab在提取用户操作和异常行为时的性能如何?
为了验证这个问题的结果, 我们将Arab模型与第4.3.1节中的基准模型进行了对比实验, 实验的结果见
Arab与基准模型短语提取性能比较(%)
用户操作 | 异常行为 | 总体性能 | ||||||||
KEFE | 38.91 | 58.34 | 46.68 | 20.04 | 37.17 | 26.04 | 33.53 | 52.15 | 40.82 | |
Caspar | 24.76 | 9.97 | 14.19 | 32.64 | 11.07 | 16.45 | 26.82 | 10.28 | 14.84 | |
BiLSTM-CRF | 81.82 | 72.47 | 76.78 | 75.76 | 52.56 | 61.92 | 80.27 | 66.66 | 72.79 | |
Arab |
具体地, KEFE的准确率、召回率和
我们提出的方法Arab总体性能的准确率、召回率和
Arab各App上短语提取性能比较(%)
App | 指标 | ||
Precision | Recall | ||
81.06 | 81.74 | 81.34 | |
Snapchat | 79.28 | 84.61 | 81.65 |
Gmail | 88.43 | 82.56 | 85.35 |
Yahoo Mail | 77.66 | 86.16 | 81.60 |
BPI Mobile | 84.75 | 83.99 | 84.23 |
Chase Mobile | 78.66 | 79.68 | 79.02 |
总体性能 | 81.78 | 82.99 | 82.37 |
另外, 我们详细检查了两类目标短语的提取结果, 并且确实观察到一些与目标短语相关的模式. 例如, 用户习惯于在提及用户操作之前使用一些否定词(如“can’t”“hardly”)或时间连词(如“as soon as”“when”). 这也许可以解释为什么基于模式的技术(如KEFE和Caspar)有时可以工作. 然而基于模式的技术高度依赖于手工定义的模式, 并且在不同的数据集中可扩展性较差. 此外, 由于很难总结出较为通用的模式, 基于模式的方法在许多情况下很难工作, 例如很难针对评论句子“this update take away my ability to view transactions”总结出较为通用的模式. 这些情况进一步证明了我们方法的优点和灵活性. 我们还研究了一些Arab不工作的失败案例, 比较典型的案例是在某些情况下, Arab可以提取目标短语的核心名词和动词, 但遗漏或额外提取了一些不重要的单词, 特别是核心短语前后的一些副词或状语. 例如, Arab可能错误地从“I have not receive emails for 10 days”中提取“receive emails for 10 days”, 而实际的用户操作是“receive emails”, 这样的结果降低了Arab的性能.
RQ2: Arab中加入的两个评论属性是否对短语提取的性能提升有贡献?
为了验证这个问题的结果, 我们将Arab与3种短语提取模型的变体进行了对比实验.
消融实验-评论属性对性能的影响(%)
用户操作 | 异常行为 | 总体性能 | ||||||||
Arab-cs | 83.49 | 77.80 | 80.52 | 73.47 | 56.64 | 63.76 | 80.90 | 71.60 | 75.91 | |
Arab-s | 83.06 | 84.31 | 83.64 | 73.24 | 72.61 | 72.85 | 80.23 | 80.87 | 80.51 | |
Arab-c | 84.20 | 84.06 | 73.31 | 71.51 | 72.31 | 80.94 | 80.47 | 80.67 | ||
Arab | 83.21 |
在增加的两个评论属性中, 评论描述情感属性对
RQ3: Arab在聚类用户操作和异常行为时的性能如何?
Arab与基准模型聚类性能比较
用户操作 | 异常行为 | 总体性能 | ||||
NMI | ARI | NMI | ARI | NMI | ||
0.51 | 0.92 | 0.67 | 0.90 | 0.38 | 0.80 | |
DBSCAN | 0.53 | 0.93 | 0.74 | 0.92 | 0.45 | 0.83 |
Arab |
此外, 我们注意到Arab对ARI的改进要大于对NMI的改进. 这是因为ARI是一种对感知的度量指标, 当本应属于同一聚类的两个短语被错误地分配到不同聚类时, 或者当本应属于不同聚类的两个短语被错误地放置到同一聚类时, 这种度量十分敏感. ARI的结果表明Arab可以有效地避免生成新的聚类或破坏原有的聚类. 而NMI是一种基于熵的度量指标, 基于信息熵理论, 主要关注两个聚类分布的差异. NMI的结果表明, 由Arab得到的聚类分布(例如每个聚类中目标短语的数量)更接近实际的聚类分布, 但各方法差别不像ARI那么大. 另外, 我们观察到每中方法异常行为的ARI均比用户操作高, 而NMI差异不大, 这是因为异常行为短语更短, 聚类更少, 不同聚类容易区分. 但即使这样, Arab在两者均取得最好的性能.
基准模型方法主要利用单词统计或共现关系来聚类目标短语, Arab取得更好的聚类性能表明我们提出的基于图的聚类方法可以更好地理解短语之间的语义关系, 因而能够更有效地聚类两种类型的短语.
RQ4: Arab在大规模未标注数据集D3上对App评论缺陷挖掘的效果如何?
在使用第3.3.1节中的聚类算法在数据集D3上分别对提取的用户操作和异常行为进行聚类后, 我们共获得1 419个用户操作的聚类和460个异常行为的聚类. 由于许多聚类中包含的短语数量较少, 我们过滤掉那些短语数量少于500的聚类, 最终我们保留了33个用户操作聚类以及19个异常行为聚类.
用户操作和异常行为聚类词频Top 3
# | 用户操作 |
# | 用户操作 |
# | 异常行为 |
||
account, log, login | live, option, stream | not, work, stop | |||||
send, email, mail | download, file, save | take, time, forever | |||||
story, post, share | update, download, version | delete, cancel, remove | |||||
picture, photo, upload | call, make, incoming | fail, mess, get | |||||
video, call, watch | payment, pay, bill | disappear, vanish, reappear | |||||
verification, code, get | code, receive, activation | block, action, account | |||||
message, receive, see | fingerprint, login, finger | stick, get, stop | |||||
notification, get, receive | sync, email, contact | lock, account, close | |||||
see, view, comment | tweet, retrieve, like | go, back, come | |||||
load, message, page | messenger, open, use | freeze, freezing, frozen | |||||
open, app, 〈appname〉 | otp, receive, send | error, say, message | |||||
datum, count, data | money, transfer, wallet | available, not, unavailable | |||||
dark, mode, night | transaction, do, history | no, longer, happen | |||||
click, button, skip | deposit, check, mobile | option, no, button | |||||
number, phone, change | break, shut, pause | ||||||
delete, email, spam | say, invalid, exist | ||||||
chat, group, friend | crash, crashing, freeze | ||||||
password, reset, change | close, down, not | ||||||
press, back, next | slow, down, fast |
不同类别App用户操作和异常行为关系可视化
首先, 我们关注各类App中用户操作(即第0列)和异常行为(即第0行)在各自聚类中的分布, 可以观察到不同类App的用户操作在某些聚类上存在共性, 而在另外一些聚类上存在差异, 例如登录相关的缺陷(
其次, 我们对用户操作和异常行为的关联关系进行分析, 根据热力图(
为了帮助App开发者更有效地理解用户认为App中哪些特定的功能存在缺陷, 以及该缺陷会导致App什么样的异常行为, 本文提出了一种语义感知的细粒度App评论缺陷挖掘方法Arab. 该方法可以分别提取用户操作和异常行为, 并通过聚类和可视化挖掘两者之间的关联关系. 我们设计了一种新颖的神经网络模型来提取细粒度的目标短语, 并设计了一种基于图的聚类方法对两类短语进行聚类, 最后对两者之间的关联关系进行可视化. 我们使用来自6个App的3 426条评论对Arab短语提取的性能进行了评估, 结果证实了所提出方法的有效性. 我们进一步对15个热门App的301 415条评论进行了案例研究, 以探索Arab的潜在应用和在大规模数据上的实用性.
Guo H, Singh MP. Caspar: Extracting and synthesizing user stories of problems from app reviews. In: Proc. of the 42nd Int'l Conf. on Software Engineering (ICSE 2020). 2020. 628–640.
Johann T, Stanik C, Alizadeh BAM,
Di Sorbo A, Panichella S, Alexandru CV,
Gu XD, Kim S. What parts of your Apps are loved by users? In: Proc. of the 30th IEEE/ACM Int'l Conf. on Automated Software Engineering (ASE 2015). 2015. 760–770.
Khalid H, Shihab E, Nagappan M,
Panichella S, Di Sorbo A, Guzman E,
Lu Z, Yang D, Li J. A software evaluation system based on reviews mining. Computer Applications and Software, 2014, 31(7): 1–4 (in Chinese with English abstract).
卢忠浩, 杨达, 李娟. 基于评论挖掘的软件评价系统. 计算机应用与软件, 2014, 31(7): 1−4.
Harman M, Jia Y, Zhang YY. App store mining and analysis: MSR for app stores. In: Proc. of the 9th IEEE Working Conf. of Mining Software Repositories (MSR 2012). 2012. 108–111.
Noei E, da Cost DA, Zou Y. Winning the App production rally. In: Proc. of the 2018 ACM Joint Meeting on European Software Engineering Conf. and Symp. on the Foundations of Software Engineering (ESEC/SIGSOFT FSE 2018). 2018. 283–294.
Palomba F, Vásquez ML, Bavota G,
Chen N, Lin JL, Hoi SCH,
MaalejW, Nabil H. Bug report, feature request, or simply praise? On automatically classifying App reviews. In: Proc. of the 23rd IEEE Int'l Requirements Engineering Conf. (RE 2015). 2015. 116–125.
Gao CY, Zeng JC, Lo D,
Vu PM, Nguyen TT, Pham HV,
Jiang W, Zhang L, Dai Y,
姜巍, 张莉, 戴翼, 蒋竞, 王刚. 面向用户需求获取的在线评论有用性分析. 计算机学报, 2013, 36(1): 119−131.
Hu TY, Jiang Y. Mining of user's comments reflecting usage feedback for APP software. Ruan Jian Xue Bao/Journal of Software, 2019, 30(10): 3168–3185 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5794.htm [doi: 10.13328/j.cnki.jos.005794]
胡甜媛, 姜瑛. 体现使用反馈的APP软件用户评论挖掘. 软件学报, 2019, 30(10): 3168−3185. http://www.jos.org.cn/1000- 9825/5794.htm [doi: 10.13328/j.cnki.jos.005794].
Martin WJ, Sarro F, Jia Y,
Cui J, Yang D, Li J. RERM: A requirement elicitation method based on review mining. Computer Applications and Software, 2015, 32(8): 28–33 (in Chinese with English abstract).
崔建苓, 杨达, 李娟. RERM: 一种基于评论挖掘的需求获取方法. 计算机应用与软件, 2015, 32(8): 28−33.
Villarroel L, Bavota G, Russo B,
Vu PM, Pham HV, Nguyen TT,
Cooper N, Bernal-Cárdenas C, Chaparro O,
Wang JJ, Li MY, Wang S,
Hao R, Feng Y, Jones J,
Wang JJ, Cui Q, Wang S,
Liu H, Shen MZ, Jin JH,
Zhang J, Wang X, Zhang HY,
Guo J, Cheng JH, Cleland-Huang J. Semantically enhanced software traceability using deep learning techniques. In: Proc. of the 39th Int'l Conf. on Software Engineering, ICSE 2017. 2017. 3–14.
Wang H, Chen CY, Xing ZC,
Huang ZH, Xu W, Yu K. Bidirectional LSTM-CRF models for sequence tagging. CoRR abs/1508.01991, 2015.
Zhang Y, Chen HS, Zhao YH,
McCallum A, Freitag D, Pereira FCN. Maximum entropy Markov models for information extraction and segmentation. In: Proc. of the 17th Int'l Conf. on Machine Learning (ICML 2000). Stanford: Morgan Kaufmann Publishers, 2000. 591–598.
Tang A, Jackson D, Hobbs J,
Felsenstein J, Churchill GA. A hidden Markov model approach to variation among sites in rate of evolution. Molecular Biology and Evolution, 1996, 13(1): 93–104.
Lafferty JD, McCallum A, Pereira FCN. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. In: Proc. of the 18th Int'l Conf. on Machine Learning (ICML 2001). Williams College: Morgan Kaufmann Publishers, 2001. 282–289.
Collobert R, Weston J, Bottou L,
Devlin J, Chang MW, Lee K,
Howard J, Ruder S. Universal language model finetuning for text classification. In: Proc. of the 56th Annual Meeting of the Association for Computational Linguistics, ACL 2018, Volume 1: Long Papers. Melbourne: Association for Computational Linguistics, 2018. 328–339.
Vaswani A, Shazeer N, Parmar N,
Xu L, Dong QQ, Yu C,
Gao CY, Zeng JC, Lyu MR,
Gao CY, Zeng JC, Xia X,
Islam MR, Zibran MF. SentiStrength-SE: Exploiting domain specificity for improved sentiment analysis in software engineering text. The Journal of Systems & Software, 2018, 145: 125–146.
Dai HJ, Lai PT, Chang YC,
Ratinov LA, Roth D. Design challenges and misconceptions in named entity recognition. In: Proc. of the 13th Conf. on Computational Natural Language Learning, CoNLL 2009. Boulder: ACL, 2009. 147–155.
Kingma DP, Ba J. ADAM: A Method for stochastic optimization. In: Proc. of the 3rd Int'l Conf. on Learning Representations, ICLR 2015. San Diego, 2015.
Porteous I, Newman D, Ihler AT,
Cer D, Yang YF, Kong SY,
Biemann C. Chinese whispers - an efficient graph clustering algorithm and its application to natural language processing problems. In: Workshop on TextGraphs, at HLT-NAACL, Association for Computational Linguistics, 2006. 73–80.
Huang Y, Chen CY, Xing ZC,
Wu HY, Deng WJ, Niu XT,
Ester M, Kriegel H, Sander J,
Kohavi R. A study of cross-validation and bootstrap for accuracy estimation and model selection. In: Proc. of the 14th Int'l Joint Conf. on Artificial Intelligence (IJCAI 1995). 1995. 1137–1145.