CN111783441B - 一种基于支持向量机的对话语句正确性评价方法 - Google Patents
一种基于支持向量机的对话语句正确性评价方法 Download PDFInfo
- Publication number
- CN111783441B CN111783441B CN202010792210.4A CN202010792210A CN111783441B CN 111783441 B CN111783441 B CN 111783441B CN 202010792210 A CN202010792210 A CN 202010792210A CN 111783441 B CN111783441 B CN 111783441B
- Authority
- CN
- China
- Prior art keywords
- sentence
- sentences
- evaluation
- dialogue
- statement
- 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
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 91
- 238000012706 support-vector machine Methods 0.000 title claims abstract description 46
- 238000012549 training Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 42
- 238000002372 labelling Methods 0.000 claims description 9
- 238000013459 approach Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 3
- 230000007935 neutral effect Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 claims 1
- 238000010606 normalization Methods 0.000 claims 1
- 230000018109 developmental process Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000011425 standardization method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Machine Translation (AREA)
Abstract
本发明公布了一种基于支持向量机的对话语句正确性评价方法,包括以下步骤:步骤一、获取训练数据;步骤二、从待标注数据进行人工标注;步骤三、对训练数据进行标准化,构建支持向量机的训练集;步骤四、通过调节参数和利用所获得的训练数据,训练支持向量机;步骤五、根据对话中明确的引用关系和关键词共享,获取对话历史中的评价关系,明确评论者语句和被评价语句;步骤六、根据评价者语句的观点分数,以及评价者语句的正确性得分,对被评价的语句正确性进行评估。本发明充分挖掘对话历史中的结构特点和语义关系在保证准确度的前提下尽可能完整的获得了对话中的评论关系;通过设定递归的评价方法,鲁棒性更强。
Description
技术领域
本发明涉及开发者对话内容中语句正确性的评价方法,尤其针对大型软件在演化过程中,开发者的讨论与交流历史中语句的正确性,提出的一种基于支持向量机的对话语句正确性评价方法。
背景技术
随着当今信息技术的不断发展,软件的规模在不断扩大,软件的演化需求也在不断提速。大规模软件的频繁演化使得协同开发成为了当前软件开发的主要形式。开发人员需要经常通过频繁的沟通和讨论来完成协同开发,长期运营的软件团队会将这些沟通和讨论进行记录,从而为之后软件的维护和开发提供参考。Ubuntu开发者经常使用的Lanuchpad网站,Apache相关软件团队维护的错误报告管理网站Jira,以及大多数软件开发团队维护的MailList,都记录了开发人员在软件演化过程中,以对话形式开展的,针对各种问题的讨论。这些开发者的对话历史可以帮助开发人员减少在处理类似问题时的时间与开销,同时也可以作为大量学术科研领域的数据资料。Raymond PL Buse等人的工作《Automaticallydocumenting program changes》以及Eirini Kalliamvakou等人的工作《Open source-style collaborative development practices in commercial projects usingGitHub》指出,诸如错误报告管理***,以及MailList这样的开发者对话历史做为软件的重要数据资料之一,为软件的开发维护,开发人员的协同和调度提供了非常大的帮助。但是,由于这些对话历史存在着数量众多,并且结构复杂的特点,开发者在如何准确高效的利用这些对话历史上,面临着极大的挑战。
开发者的对话历史的数量众多。在大规模软件频繁演化的背景下,开发人员需要频繁的进行对话讨论,从而适应软件演化的需求,这样的过程中产生了大量的对话历史。根据Launchpad网站上的统计,在过去的三年里,网站中的新增的对话讨论内容达到了上百万,包括了数十亿的对话语句。每个对话历史中都平均包含超过50条语句。同时,每个对话历史涉及的主题,都会有数十条与之类似或者相关的对话历史。这使得开发者在搜索一个主题内容时,都被迫需要去浏览大量的对话历史。这为开发者带来了极大的时间损耗。
开发者的对话结构十分复杂。由于开发者的讨论过程是一个信息被提出和验证的过程,一个信息被某位开发者提出后,会被后继的开发者讨论和评价。而这些信息中,一些信息经过一系列的讨论后,被证明是错误的。这些错误的语句很容易为读者带来误导。同时,对话历史中,信息的讨论和评价并不是连续的,而是相互穿插,互相评价的。一个语句在评价其他语句的同时,可能也被其他语句评价。这样多层且复杂的结构使得人工判断语句的正确性不仅耗时巨大,同时容易产生遗漏甚至错误。在浏览过程中,为了判断一个语句的正确性,读者需要人工的浏览和阅读几乎全部的上下文,来推断某个语句的正确性。开发者对话历史庞大的数量以及其复杂的结构使得语句正确性的判断面临严峻的挑战。与被被否定的信息相关的对话语句往往会为开发者带来误导,导致时间的浪费甚至错误,进而降低对话历史对软件维护的帮助。
很多开发者都被对话历史庞大的数量以及其复杂的结构所困扰,比如浏览这些对话历史所带来的时间损耗,以及由于复杂的对话结构,导致对对话内容正确性的错误判断而尝试错误的方法,进而造成更多的时间开销甚至错误。开发者对话历史的的这些特点引起了人们的广泛关注。一些维护网站比如Debian,呼吁其使用者在完成讨论后对对话内容书写摘要,读者直接从摘要中获得正确的内容,从而降低时间损耗。这样的方法由于其为摘要书写者带来的时间损耗,很多开发者不愿意进行摘要书写。同时,由于不同开发者的语言表达习惯不同,这些摘要往往非常简短甚至包含错误,往往不能起到代替阅读的作用。
为了更高效准确的获取对话中的关键内容,很多工作尝试通过多种不同的方式来评价对话历史中的语句,从而来降低浏览的时间开销。Deeksha Arya等人在其工作《Analysis and detection of information types of open source software issuediscussions》中,对语句的类型进行判断,比如是新增功能还是错误复现,通过为每个句子打标签的方式,令用户根据所需来浏览包含对应标签的语句。Jiang He等人的工作《Unsupervised deep bug report summarization》中,通过对单词的重要性进行评价,从而进一步给予包含更多重要的单词的语句以更高的评价。这些工作的方法可以在一定程度上降低开发者的时间,但是这些工作更多的关注在语句的重要性以及其信息量上,而没有关注语句的重要性,这使得一些包含被否定信息的语句也被筛选出来,从而导致对开发人员的误导,造成时间的浪费甚至导致错误。
综上所述,如何克服对话历史多层复杂的结构,准确的对开发者对话历史中的语句进行准确的评价,是降低软件演化开销的一个关键问题。目前的评价方法由于忽略了语句本身的正确性,使其应用的效果受到限制。因此,研究准确可靠的对话语句正确性评价方法,是本领域技术人员极为关注的技术问题和难点。现有的相关研究中没有利用对话结构特点,以及支持向量机(SVM)来对开发者对话内容评价的方法。
发明内容
本发明要解决的技术问题是:如何对开发者的对话语句的正确性进行预测。本发明提供了一种基于支持向量机的对话语句正确性评价方法,基于名对话结构和支持向量机的对话语句评价,充分挖掘对话历史中的结构特点和语义关系,实现自动化的对语句正确性进行评价的目的。
具体技术方案如下:
一种基于支持向量机的对话语句正确性评价方法,包括以下步骤:
步骤一、从错误报告或邮件列表管理网站上获取包含完整讨论过程的错误报告(bug report)或邮件列表(mail list),并根据标点符号队所获得的数据进行分句,来作为待标注数据;
步骤二、从待标注数据进行语气标注(肯定/否定),并获得肯定语气标注和否定语气标注两类数据各至少5000个,作为下一步处理的数据;
步骤三、通过统一大小写、标点符号,停用词去除和单词词根提取对数据进行标准化,构建支持向量机的训练集;
步骤四、通过调节参数,以及利用所获得的训练数据,训练支持向量机;
步骤五、根据对话中明确的引用关系和关键词共享,获取对话历史中的评价关系,明确评论者语句和被评价语句;
步骤六、根据评价者语句的观点分数,以及评价者语句的正确性得分,对被评价的语句正确性进行评估。
作为本发明技术方案的进一步改进,所述获取步骤一中待标注数据方法为:
(1)从错误报告管理网站https://issues.apache.org/jira/secure/Dashboard.jspa上获取关于bug的讨论过程作为待标注数据,需要获取至少10000个错误报告中的讨论内容,讨论内容包括全部的错误描述和讨论内容;
(2)对所获取讨论历史进行筛选,只保留状态为“Closed”的错误报告;
(3)根据符号‘,’,‘.’,‘?’,‘!’对语句进行分句,其中,当‘.’作为单词的一部分出现时,不作为划分单元。
所述获取步骤二中人工打标数据方法为:
(1)对同一组数据进行标注,标注内容为肯定或者否定,标注依据为句子中包含明确的肯定或者否定词语,不能明确判断语气的语句不作标注并舍弃;
(2)根据所有标注人员的标注获得语句的标签;语句被任一人员舍弃,则舍弃该语句;语句被所有人员同时认定为肯定,则语句标签为肯定;被同时认定为否定,则标签为否定,标注人员出现意见不同的语句舍弃;
(3)具有肯定与否定标签的语句,应分别不少于5000个;如果少于,则转步骤(1),直至肯定与否定标签分别达到5000个;
(4)取肯定标签与否定标签的语句各5000个作为训练数据。
所述步骤三中数据标准化方法为:
(1)将训练数据中所有单词统一为小写;
(2)去除标点符号,保留单词内部连接号、函数调用关系符号“.”;
(3)去除停用词,停用词列表使用RankNL提供的常用英文停用词列表
(3)统一单词时态,保持单词词根,单词时态统一采用python中,nltk扩展包中,stem函数实现。
所述步骤四中对支持向量机(SVM)的参数设置与训练包括以下步骤:
(1)支持向量机使用python数据库中,sklearn扩展包中的svm组件来实现,Python版本取3.5及以上;
(2)支持向量机的参数设置如下:
C=10.0,cache_size=200,class_weight=None,coef0=0.0,decision_function_shape=None,degree=3,gamma='auto',kernel='rbf',max_iter=-1,probability=True,random_state=None,shrinking=True,tol=0.001,verbose=False;
(3)将包含肯定标签与否定标签的语句各不少于5000个的训练数据输入到支持向量机中,完成模型训练,并保存模型用作语句观点评价。
所述步骤五中获取对话历史中的评价关系的方法为:
(1)获取对话中的关键词;关键词的选择根据其词频-逆文本频率指数来确定,我们将词频-逆文本频率指数简称为TF-IDF。TF-IDF由对应词在该对话中的词频,以及其在总文件中存在的词频计算得到;
TF代表单词的词频,它表示单词在一个文件中的重要性,其计算方法如下:
假设共计有|D|个文件,j≤|D|。ni,j代表单词i在文件j中的词频,dj代表文件j中的所有单词;
ni,j表示单词j在当前文件中的词频,代表该文件中包含的所有单词的总词频;
IDF代表单词的逆文本频率,它表示该单词在总文件中的普遍性,其计算方法如下:
|D|代表全部的文件数,{j:i∈dj}代表包含单词的文件数;
TF-IDF计算如下:
TF-IDFi=TFi,j×IDFi
选择TF-IDF高于0.1的单词作为对话中的关键词;
(2)获取对话间的明确评价关系;
获取对话间,通过直接引用语句的评价关系;直接引用语句的对话,可以通过明显的引用标识来判断:‘>’、“”或者“[]-”,以‘>’后紧跟的第一句,或者“”,“[]-”中的语句作为被评价语句内容,并取被评价语句内容后的第一句作为“评价语句”;搜索离当前对话语句最近的,包含被评价语句内容的语句,作为“被评价语句”;如果无法搜索到对应对话,则舍弃;
获取对话间,通过直接引用所评价对话的作者姓名的评价关系;预先保留所有作者的姓名,遍历所有讨论中;包含作者姓名的语句作为“评价语句”,将距离“评价语句”最近,且先于评价语句的,对应作者的对话中的全部语句看作为“被评价语句”,如果无法搜索到对应对话,则舍弃;
获取对话间,通过直接引用所评价对话的编号的评价关系;所评价对话的编号,包括错误报告中的评论号和MailList中的邮件编号。;这些编号可以以明显的形式,形如“comment#”或“mail/email#”;将包含该内容的语句作为“评价语句”,对应编号的对话中,所有语句作为“被评价语句”;如果编号数大于“评价语句”编号,则舍弃;
(3)获得对话与描述中的评价关系;若对话不包含标题/描述/主题,则跳过此步骤;若同时存在其中的多个内容,将这些内容用“.”拼接,根据共享关键词,描述中的句子作为“被评价语句”,与之共享关键词的语句作为“评价语句”。
所述获取步骤六中语句正确性评价的方法为:
(1)当语句没有被任何语句评价,则语句的正确性得分为1;
(2)评价语句观点分数;作为评价语句,语句对其所评价的语句具有肯定,否定或者中立的三种态度;利用训练后的支持向量机,对语句是否表达肯定观点进行评价;其预测的概率为x,x的取值大于0小于1;通过运算:
x=x*2-1
将x的取值范围转变为-1到1,当x趋近于-1代表x表达否定观点,反之则表达肯定观点;
(3)评价语句的正确性得分;当语句被评价时,语句的正确性得分需要加上所有:“评价语句观点分数*评价语句正确性得分”,高正确性的评价语句具有否定的观点,评价语句观点分数<0,则被评价语句的正确性得分被降低;评价性语句的得分不低于0;若其中某个评价语句的正确性得分未知,则递归的回到步骤(1),计算该语句的正确性;
(4)获得语句的正确性得分,得分大于1的语句更可能是正确的,且大于1越多,则其越可能正确,得分小于1的语句则更可能是错误的,且越接近于0,越可能是错误的。
与现有技术相比,采用本发明能达到以下有益效果:
·本发明通过语句间的评价关系,对语句从准确性的角度进行评价,该评价得分可以与人工结合,用于更好的对开发者对话历史中的语句进行评估;
·本发明充分挖掘了开发者对话历史中的结构关系,通过挖掘明确的引用评价关系,以及关键词共享的方法,在保证准确度的前提下尽可能完整的获得了对话中的评论关系;
·本发明通过设定递归的评价方法,能够应对语句之间连续判断的情况,更符合软件开发者对话的实际场景,发明的鲁棒性更强。
附图说明
图1是本发明的流程示意图;
图2是本发明对话历史示例;
图3是本发明语句评价关系示例。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明基于一种基于支持向量机的对话语句正确性评价方法,包括以下步骤:
步骤一、从错误报告或邮件列表管理网站上获取包含完整讨论过程的bug report或mail list,并根据标点符号队所获得的数据进行分句,来作为待标注数据:
(1.1)从错误报告管理网站Jira上获取关于bug的讨论过程作为待标注数据:(https://issues.apache.org/jira/secure/Dashboard.jspa),需要获取至少10000个错误报告中的讨论内容。讨论内容包括全部的错误描述(Description)和讨论内容(comment)。
(1.2)对所获取讨论历史进行筛选,只保留状态为“Closed”的错误报告。
(1.3)根据符号‘,’,‘.’,‘?’,‘!’对语句进行分句。其中,当‘.’作为单词的一部分出现时,不作为划分单元。
步骤二、由多名具有编程经验的人员为步骤一中收集到的待标注数据进行语气标注(肯定/否定),并获得两类数据各至少5000个,作为下一步处理的数据,具体方法如下:
(2.1)选定五名及以上人员为数据进行标注,被选人员需具备至少计算机专业本科及以上学历,并且拥有4年及以上编程经验。
(2.2)所有标注人员同时对同一组数据进行标注,标注内容为“肯定”或者“否定”,标注依据为句子中包含明确的肯定或者否定词语。不能明确判断语气的语句不作标注并舍弃。
(2.3)根据所有标注人员的标注获得语句的标签。语句被任一人员舍弃,则舍弃该语句。语句被所有人员同时认定为肯定,则语句标签为肯定。被同时认定为否定,则标签为否定。标注人员出现意见不同的语句舍弃。
(2.4)具有肯定与否定标签的语句,应分别不少于5000个。如果少于,则转步骤(1),直至肯定与否定标签分别达到5000个。
(2.5)取肯定,否定标签的语句各5000个作为训练数据。
步骤三、通过统一大小写、标点符号,停用词去除和单词词根提取对数据进行标准化,构建支持向量机的训练集,具体方法如下:
(3.1)将训练数据中所有单词统一为小写;
(3.2)去除标点符号,保留单词内部连接号、函数调用关系符号(“.”);
(3.3)去除停用词,停用词列表使用RankNL提供的常用英文停用词列表;
(3.3)统一单词时态,保持单词词根,单词时态统一采用python中,nltk扩展包中,stem函数实现。
步骤四、通过调节参数,以及利用所获得的训练数据,训练支持向量机,具体包括以下内容:
(4.1)支持向量机使用python数据库中,sklearn扩展包中的svm组件来实现。Python版本取3.5及以上。
(4.2)支持向量机的参数设置如下:
C=10.0,cache_size=200,class_weight=None,coef0=0.0,decision_function_shape=None,degree=3,gamma='auto',kernel='rbf',max_iter=-1,probability=True,random_state=None,shrinking=True,tol=0.001,verbose=False;
(4.3)将包含肯定,否定标签的语句各至少5000个的训练数据输入到支持向量机中,完成模型训练,并保存模型用作语句观点评价。
步骤五、根据对话中明确的引用关系和关键词共享,获取对话历史中的评价关系,明确评论者语句和被评价语句,具体包括以下内容:
(5.1)获取对话中的关键词。关键词的选择根据其词频-逆文本频率指数来确定,我们将词频-逆文本频率指数简称为TF-IDF。TF-IDF由对应词在该对话中的词频,以及其在总文件中存在的词频计算得到;
TF代表单词的词频,它表示单词在一个文件中的重要性,其计算方法如下:
假设共计有|D|个文件,j≤|D|。ni,j代表单词i在文件j中的词频,dj代表文件j中的所有单词;
ni,j表示单词j在当前文件中的词频,代表该文件中包含的所有单词的总词频;
IDF代表单词的逆文本频率,它表示该单词在总文件中的普遍性,其计算方法如下:
|D|代表全部的文件数,{j:i∈dj}代表包含单词的文件数;
TF-IDF计算如下:
TF-IDFi=TFi,j×IDFi
选择TF-IDF高于0.1的单词作为对话中的关键词;
(5.2)获取对话间的明确评价关系。
获取对话间,通过直接引用语句的评价关系。直接引用语句的对话,可以通过明显的引用标识来判断:‘>’、“”或者“[]-”。以‘>’后紧跟的第一句,或者“”,“[]-”中的语句作为被评价语句内容,并取被评价语句内容后的第一句作为“评价语句”。搜索离当前对话语句最近的,包含被评价语句内容的语句,作为“被评价语句”。如果无法搜索到对应对话,则舍弃;
获取对话间,通过直接引用所评价对话的作者姓名的评价关系。预先保留所有作者的姓名,遍历所有讨论中。包含作者姓名的语句作为“评价语句”,将距离“评价语句”最近,且先于评价语句的,对应作者的对话中的全部语句看作为“被评价语句”。如果无法搜索到对应对话,则舍弃;
获取对话间,通过直接引用所评价对话的编号的评价关系。所评价对话的编号,包括错误报告中的评论号和MailList中的邮件编号。这些编号可以以明显的形式,形如“comment#”或“mail/email#”。将包含该内容的语句作为“评价语句”,对应编号的对话中,所有语句作为“被评价语句”。如果编号数大于“评价语句”编号,则舍弃。
(5.3)获得对话与描述中的评价关系。若对话不包含标题/描述/主题,则跳过此步骤。若同时存在其中的多个内容,将这些内容用“.”拼接。根据从5.1中所得的共享关键词,描述中的句子作为“被评价语句”,与之共享关键词的语句作为“评价语句”;
步骤六、根据评价者语句的观点分数,以及评价者语句的正确性得分,对被评价的语句正确性进行评估,具体包括以下内容:
(6.1)当语句没有被任何语句评价,则语句的正确性得分为1;
(6.2)评价语句观点分数;作为评价语句,语句对其所评价的语句具有肯定,否定或者中立的三种态度。利用训练后的支持向量机(4.3),对语句是否表达肯定观点进行评价。其预测的概率为x,x的取值范围为(0,1),通过运算:
x=x*2-1
将x的取值范围转变为(-1,1),当x趋近于-1代表x表达否定观点,反之则表达肯定观点。
(6.3)评价语句的正确性得分。当语句被评价时,语句的正确性得分需要加上所有:“评价语句观点分数*评价语句正确性得分”。高正确性的评价语句具有否定的观点(评价语句观点分数<0),则被评价语句的正确性得分被降低,评价性语句的得分不低于0,若其中某个评价语句的正确性得分未知,则递归的回到步骤6.1,计算该语句的正确性。
(6.4)获得语句的正确性得分。得分大于1的语句更可能是正确的,且大于1越多,则其越可能正确。得分小于1的语句则更可能是错误的,且越接近于0,越可能是错误的。
本发明实施方式的关键在于如何利用对话历史中的明确的引用关系和关键词共享来建立对话语句中的评价关系,以及如何通过迭代的方式对具有多层复杂评论关系的语句进行正确性评价。下面结合具体实施例对这两个部分内容的实施进行阐述。
第一步,根据对话中明确的引用关系和关键词共享,以附图2中的对话历史为例来获取对话历史中的评价关系。
通过具体实施方式中的步骤五,获取对话中明确的引用关系,具体过程为:
(1.1)首先通过直接引用对应对话的序号或者对话作者名,建立#3与#4,#4与#5,#25与#26之间的评价关系;
(1.2)通过具体实施方式5.1中方法获得关键词,构建#3与#25之间的评价关系。
第二步,根据具体实施方式步骤三中的方法对话进行分句和标准化,得到对话中的语句。4_1代表标号为#4的对话中的第一个句子。所得标准化后的语句评价关系如附图3。
第三步,利用递归的方法对语句的正确性进行打分,具体方法如下:
(3.1)对3_1进行评价,3_1被4_1-4_4和25_1-25_2评价,4_1-4_4和25_1-25_2得分未知,则递归先计算4_1-4_4和25_1-25_2的得分;
(3.2)对4_1-4_4打分,4_1-4_4被5_1评价,5_1得分未知,则递归计算5_1得分;
(3.3)对5_1打分,5_1未被评价,5_1正确性得分为1;
(3.4)对5_1使用训练好的SVM进行打分,因为包含较为明显的肯定语气,“It ispossible”,其观点的分倾向于为1,通过计算其值为0.824。由此得到4_1-4_4中句子的准确性为1+1*0.824=1.824;
(3.5)对4_1-4_4使用训练好的SVM进行打分,4_1包含明确肯定语气“Yes...”,其观点的分倾向于为1,通过计算其值为0.745,4_2-4_4不包含语气词,通过计算其值分别为0.143,0.086,0.127;
(3.6)对25_1-25_2打分,25_1-25_2被26_1-26_3评价,26_1-26_3得分未知,则递归计算26_1-26_3得分;
(3.7)对26_1-26_3打分,26_1-26_3没有被评价,其正确性得分为1;
(3.8)对26_1-26_3使用训练好的SVM进行打分,因为包含较为明显的否定语气,“unfortunately this wont work”,其观点的分倾向于为-1,通过计算其值为-0.796。由此得到25_1-25_2中句子的准确性为1-1*0.796=0.204;
(3.9)25_1-25_2中不包含明确的语气,经过计算,其SVM得分为0.132和0.096。
(3.10)已经获得了4_1-4_4和25_1-25_2的准确性评分,据此对3_1的准确性进行评分。即为:1+1.824*(0.745+0.143+0.086+0.127)+0.204*(0.132+0.096)=3.055;
(3.11)继续检索未被评分的语句,发现所有语句都被评分,结束过程。否则,继续执行上述迭代过程。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明保护范围。
Claims (7)
1.一种基于支持向量机的对话语句正确性评价方法,其特征在于,包括以下步骤:
步骤一、从错误报告或邮件列表管理网站上获取包含完整讨论过程的错误报告或邮件列表,并根据标点符号队所获得的数据进行分句,得到待标注数据;
步骤二、从待标注数据进行语气标注肯定或者否定,并获得肯定语气标注和否定语气标注两类数据各至少5000个进行人工打标数据;
步骤三、通过统一大小写、标点符号,停用词去除和单词词根提取对数据进行标准化,构建支持向量机的训练集;
步骤四、通过调节参数和利用所获得的训练数据,训练支持向量机;
步骤五、根据对话中明确的引用关系和关键词共享,获取对话历史中的评价关系,明确评论者语句和被评价语句;
步骤六、根据评价者语句的观点分数,以及评价者语句的正确性得分,对被评价的语句正确性进行评估。
2.根据权利要求1所述的基于支持向量机的对话语句正确性评价方法,其特征在于,所述获取步骤一中待标注数据方法为:
(1)从错误报告管理网站上获取关于bug的讨论过程作为待标注数据,需要获取至少10000个错误报告中的讨论内容,讨论内容包括全部的错误描述和讨论内容;
(2)对所获取讨论历史进行筛选,只保留状态为“Closed”的错误报告;
(3)根据符号‘,’,‘.’,‘?’,‘!’对语句进行分句,其中,当‘.’作为单词的一部分出现时,不作为划分单元。
3.权利要求1或2所述的一种基于支持向量机的对话语句正确性评价方法,其特征在于,所述获取步骤二中人工打标数据方法为:
(1)对同一组数据进行标注,标注内容为肯定或者否定,标注依据为句子中包含明确的肯定或者否定词语,不能明确判断语气的语句不作标注并舍弃;
(2)根据所有标注人员的标注获得语句的标签;语句被任一人员舍弃,则舍弃该语句;语句被所有人员同时认定为肯定,则语句标签为肯定;被同时认定为否定,则标签为否定,标注人员出现意见不同的语句舍弃;
(3)具有肯定与否定标签的语句,应分别不少于5000个;如果少于,则转步骤(1),直至肯定与否定标签分别达到5000个;
(4)取肯定标签与否定标签的语句各5000个作为训练数据。
4.权利要求1至3任一所述的一种基于支持向量机的对话语句正确性评价方法,其特征在于,所述步骤三中数据标准化方法为:
(1)将训练数据中所有单词统一为小写;
(2)去除标点符号,保留单词内部连接号、函数调用关系符号“.”;
(3)去除停用词,停用词列表使用RankNL提供的常用英文停用词列表
(3)统一单词时态,保持单词词根,单词时态统一采用python中,nltk扩展包中,stem函数实现。
5.权利要求1所述的一种基于支持向量机的对话语句正确性评价方法,其特征在于,所述步骤四中对支持向量机(SVM)的参数设置与训练包括以下步骤:
(1)支持向量机使用python数据库中,sklearn扩展包中的svm组件来实现,Python版本取3.5及以上;
(2)支持向量机的参数设置如下:
C=10.0,cache_size=200,class_weight=None,coef0=0.0,decision_function_shape=None,degree=3,gamma='auto',kernel='rbf',max_iter=-1,probability=True,random_state=None,shrinking=True,tol=0.001,verbose=False;
(3)将包含肯定标签与否定标签的语句各不少于5000个的训练数据输入到支持向量机中,完成模型训练,并保存模型用作语句观点评价。
6.权利要求1至5任一种基于支持向量机的对话语句正确性评价方法,其特征在于,所述步骤五中获取对话历史中的评价关系的方法为:
(1)获取对话中的关键词;关键词的选择根据其词频-逆文本频率指数来确定,将词频-逆文本频率指数简称为TF-IDF;TF-IDF由对应词在该对话中的词频,以及其在总文件中存在的词频计算得到;
TF代表单词的词频,表示单词在一个文件中的重要性,其计算方法如下:
假设共计有|D|个文件,j≤|D|;ni,j代表单词i在文件j中的词频,dj代表文件j中的所有单词;
ni,j表示单词j在当前文件中的词频,代表该文件中包含的所有单词的总词频;
IDF代表单词的逆文本频率,表示该单词在总文件中的普遍性,其计算方法如下:
|D|代表全部的文件数,{j:i∈dj}代表包含单词的文件数;
TF-IDF计算如下:
TF-IDFi=TFi,j×IDFi
选择TF-IDF高于0.1的单词作为对话中的关键词;
(2)获取对话间的明确评价关系;
获取对话间,通过直接引用语句的评价关系;直接引用语句的对话,可以通过明显的引用标识来判断:‘>’、“”或者“[]-”,以‘>’后紧跟的第一句,或者“”,“[]-”中的语句作为被评价语句内容,并取被评价语句内容后的第一句作为“评价语句”;搜索离当前对话语句最近的,包含被评价语句内容的语句,作为“被评价语句”;如果无法搜索到对应对话,则舍弃;
获取对话间,通过直接引用所评价对话的作者姓名的评价关系;预先保留所有作者的姓名,遍历所有讨论中;包含作者姓名的语句作为“评价语句”,将距离“评价语句”最近,且先于评价语句的,对应作者的对话中的全部语句看作为“被评价语句”,如果无法搜索到对应对话,则舍弃;
获取对话间,通过直接引用所评价对话的编号的评价关系;所评价对话的编号,包括错误报告中的评论号和MailList中的邮件编号;将包含该内容的语句作为“评价语句”,对应编号的对话中,所有语句作为“被评价语句”;如果编号数大于“评价语句”编号,则舍弃;
(3)获得对话与描述中的评价关系;若对话不包含标题/描述/主题,则跳过此步骤;若同时存在其中的多个内容,将这些内容用“.”拼接,根据共享关键词,描述中的句子作为“被评价语句”,与之共享关键词的语句作为“评价语句”。
7.权利要求1至6任一种基于支持向量机的对话语句正确性评价方法,其特征在于,所述获取步骤六中语句正确性评价的方法为:
(1)当语句没有被任何语句评价,则语句的正确性得分为1;
(2)评价语句观点分数;作为评价语句,语句对其所评价的语句具有肯定,否定或者中立的三种态度;利用训练后的支持向量机,对语句是否表达肯定观点进行评价;其预测的概率为x,x的取值大于0小于1;通过运算:
x=x*2-1
将x的取值范围转变为-1到1,当x趋近于-1代表x表达否定观点,反之则表达肯定观点;
(3)评价语句的正确性得分;当语句被评价时,语句的正确性得分需要加上所有:“评价语句观点分数*评价语句正确性得分”,高正确性的评价语句具有否定的观点,评价语句观点分数<0,则被评价语句的正确性得分被降低;评价性语句的得分不低于0;若其中某个评价语句的正确性得分未知,则递归的回到步骤(1),计算该语句的正确性;
(4)获得语句的正确性得分,得分大于1的语句更可能是正确的,且大于1越多,则其越可能正确,得分小于1的语句则更可能是错误的,且越接近于0,越可能是错误的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010792210.4A CN111783441B (zh) | 2020-08-08 | 2020-08-08 | 一种基于支持向量机的对话语句正确性评价方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010792210.4A CN111783441B (zh) | 2020-08-08 | 2020-08-08 | 一种基于支持向量机的对话语句正确性评价方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111783441A CN111783441A (zh) | 2020-10-16 |
CN111783441B true CN111783441B (zh) | 2024-05-24 |
Family
ID=72762748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010792210.4A Active CN111783441B (zh) | 2020-08-08 | 2020-08-08 | 一种基于支持向量机的对话语句正确性评价方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111783441B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271290B (zh) * | 2023-11-20 | 2024-02-20 | 北京智谱华章科技有限公司 | 一种公平高效的多对话***测评***及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104217226A (zh) * | 2014-09-09 | 2014-12-17 | 天津大学 | 基于深度神经网络与条件随机场的对话行为识别方法 |
CN105159972A (zh) * | 2015-08-26 | 2015-12-16 | 苏州大学张家港工业技术研究院 | 一种评价类型分类方法与*** |
CN105488037A (zh) * | 2014-10-13 | 2016-04-13 | 萧瑞祥 | 文章的主观意见管理方法及其相关装置与计算机程序产品 |
WO2016067334A1 (ja) * | 2014-10-27 | 2016-05-06 | 株式会社日立製作所 | 文書検索システム、ディベートシステム、文書検索方法 |
CN106847305A (zh) * | 2015-12-04 | 2017-06-13 | ***通信集团公司 | 一种处理客服电话的录音数据的方法及装置 |
JP2019083040A (ja) * | 2019-01-10 | 2019-05-30 | 株式会社日立製作所 | 文章生成のためのデータを生成するシステム及び方法 |
CN111368540A (zh) * | 2020-03-05 | 2020-07-03 | 国网安徽省电力有限公司 | 一种基于语义角色分析的关键词信息抽取方法 |
-
2020
- 2020-08-08 CN CN202010792210.4A patent/CN111783441B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104217226A (zh) * | 2014-09-09 | 2014-12-17 | 天津大学 | 基于深度神经网络与条件随机场的对话行为识别方法 |
CN105488037A (zh) * | 2014-10-13 | 2016-04-13 | 萧瑞祥 | 文章的主观意见管理方法及其相关装置与计算机程序产品 |
WO2016067334A1 (ja) * | 2014-10-27 | 2016-05-06 | 株式会社日立製作所 | 文書検索システム、ディベートシステム、文書検索方法 |
CN105159972A (zh) * | 2015-08-26 | 2015-12-16 | 苏州大学张家港工业技术研究院 | 一种评价类型分类方法与*** |
CN106847305A (zh) * | 2015-12-04 | 2017-06-13 | ***通信集团公司 | 一种处理客服电话的录音数据的方法及装置 |
JP2019083040A (ja) * | 2019-01-10 | 2019-05-30 | 株式会社日立製作所 | 文章生成のためのデータを生成するシステム及び方法 |
CN111368540A (zh) * | 2020-03-05 | 2020-07-03 | 国网安徽省电力有限公司 | 一种基于语义角色分析的关键词信息抽取方法 |
Non-Patent Citations (2)
Title |
---|
基于Sword2vect的中文在线商品评价情感分析;厍向阳;杨瑞丽;董立红;;西安科技大学学报;20200531(03);全文 * |
基于TF-IDF文本向量化的SQL注入攻击检测;徐冬冬;谢统义;万卓昊;黄保华;;广西大学学报(自然科学版);20181025(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111783441A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019263758B2 (en) | Systems and methods for generating a contextually and conversationally correct response to a query | |
CN111460787B (zh) | 一种话题提取方法、装置、终端设备及存储介质 | |
CN109472033B (zh) | 文本中的实体关系抽取方法及***、存储介质、电子设备 | |
US11030199B2 (en) | Systems and methods for contextual retrieval and contextual display of records | |
US20160196336A1 (en) | Cognitive Interactive Search Based on Personalized User Model and Context | |
US9934220B2 (en) | Content revision using question and answer generation | |
US9390161B2 (en) | Methods and systems for extracting keyphrases from natural text for search engine indexing | |
US20160196313A1 (en) | Personalized Question and Answer System Output Based on Personality Traits | |
US10592236B2 (en) | Documentation for version history | |
WO2022226716A1 (zh) | 基于深度学习的Java程序内部注释的生成方法及*** | |
CN110991163A (zh) | 一种文档比对分析方法、装置、电子设备及存储介质 | |
CN113360582A (zh) | 基于bert模型融合多元实体信息的关系分类方法及*** | |
Green et al. | Development of a benchmark corpus to support entity recognition in job descriptions | |
CN111708870A (zh) | 基于深度神经网络的问答方法、装置及存储介质 | |
CN111783441B (zh) | 一种基于支持向量机的对话语句正确性评价方法 | |
CN115858807A (zh) | 一种基于航空装备故障知识图谱的问答*** | |
CN111949781B (zh) | 一种基于自然语句句法分析的智能交互方法及装置 | |
CN108595434A (zh) | 一种基于条件随机场和规则调整的句法依存方法 | |
CN117291192B (zh) | 一种政务文本语义理解分析方法及*** | |
Madaan et al. | Neev: A cognitive support agent for content improvement in hardware tickets | |
Lou et al. | Research on micro-blog sentiment analysis | |
CN114490937A (zh) | 基于语义感知的评论分析方法及装置 | |
Chen et al. | Practice on Framework for Product Quality Analysis Based on User Feedback Data | |
CN117828007A (zh) | 基于自然语言处理的建设征地移民档案管理方法及*** | |
CN114138955A (zh) | 引导词挖掘方法、装置、服务器及存储介质 |
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 |