CN110705249A - 一种基于重叠度计算的nlp库组合使用方法 - Google Patents

一种基于重叠度计算的nlp库组合使用方法 Download PDF

Info

Publication number
CN110705249A
CN110705249A CN201910829315.XA CN201910829315A CN110705249A CN 110705249 A CN110705249 A CN 110705249A CN 201910829315 A CN201910829315 A CN 201910829315A CN 110705249 A CN110705249 A CN 110705249A
Authority
CN
China
Prior art keywords
nlp
library
document
level
nlp library
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.)
Granted
Application number
CN201910829315.XA
Other languages
English (en)
Other versions
CN110705249B (zh
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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN201910829315.XA priority Critical patent/CN110705249B/zh
Publication of CN110705249A publication Critical patent/CN110705249A/zh
Application granted granted Critical
Publication of CN110705249B publication Critical patent/CN110705249B/zh
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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于重叠度计算的NLP(Natural Language Processing,自然语言处理)库组合使用方法,针对软件文档中的自然语言,组合使用多种不同的NLP库对自然语言进行分析,NLP库组合使用技术通过单个NLP库分析、文档级别NLP库选取和语句级别优化三个步骤来结合不同NLP库的优势,从而使得NLP库的分析效果更准确,利于软件开发人员理解软件文档。

Description

一种基于重叠度计算的NLP库组合使用方法
技术领域
本发明涉及一种使用方法,具体涉及一种基于重叠度计算的NLP库组合使用方法,属于文本分析工具的优化技术领域。
背景技术
NLP(Natural Language Processing,即自然语言处理)是API推荐中的一个重要部分,其情境是分析API推荐场景中的自然语言。在API推荐的场景中,各类软件制品都很常见,例如API文档、开发文档等等,软件制品是帮助研究人员理解软件及程序的重要信息来源。因为软件制品大多由自然语言编写,机器无法自动理解自然语言,所以,为了帮助机器理解软件制品,NLP库被广泛用于分析软件制品中的自然语言。研究表明,NLP库在分析一般文档方面取得了优异的效果,然而,由于软件制品和一般文档存在着较大的差异,例如软件制品中存在着软件元素(如类名、属性名、方法名等)以及软件领域相关的术语,这些符号和术语和一般文档中的自然语言有很大差异,因此想要准确地理解软件制品十分困难。
为了能够更好地分析自然语言,维护人员不断地优化现有的NLP库,但是,他们不公开具体的优化方式和优化细节,同时,NLP库的性能也很难进行评估。在目前的研究中,面对不同的研究场景,研究人员选取了不同的NLP库来分析各类文本,但是很少有研究提到选取该NLP库的原因。事实上,选取合适的NLP库是十分重要的,合适的NLP库会对研究成果产生积极影响。
目前,已有关于NLP库的实证研究,并提供一套指南,为研究人员选择适当的NLP库提供建议。然而,该指南并不完全适合分析各种软件文档。理由为以下三点:①在某些情况下,不同类型的软件文档可能会被一起分析,在不同的文档和任务上单独选择不同的NLP库可能会削弱技术的自动化;②在现实世界中存在着各种各样的软件文档,为所有类型的软件文档制定通用指南是不切实际的;③NLP库会被不断地优化,在将来的某些场景中,现有的指南可能不准确。针对这一问题,本发明考虑通过两个步骤将不同NLP库进行组合,使得NLP库的分析结果更加准确。
发明内容
本发明正是针对现有技术中存在的问题,提供一种基于重叠度计算的NLP库组合使用方法,并将此方法用在分析API推荐场景中的软件文档中,使得对于API推荐场景中的软件文档的分析更加准确。
为了实现上述目的,本发明的技术方案如下,一种基于重叠度计算的NLP库组合使用方法,包括如下步骤:
步骤1)对同一软件文档,分别使用四种不同的NLP库进行分析,得到每个NLP库对该文档的词性标注结果列表Outputs;
步骤2)利用每个NLP库对该文档的词性标注结果列表Outputs,分别计算每个NLP的文档级别重叠度OD,选取文档级别重叠度OD最高的NLP库作为主NLP库;
步骤3)将文档划分为句子,针对每个句子,利用主NLP库的词性标注结果列表Outputs,分别计算主NLP库的语句级别重叠度OSt(1≤t≤n;n为该文档中语句的个数);
步骤4)比较主NLP库的语句级别重叠度OSt和文档级别重叠度OD,对于某个句子s,如果语句级别重叠度OS小于文档级别重叠度OD,那么使用除主NLP库的其他三个NLP库分析句子s,从而优化文档级别分析的结果,输出最终词性标注结果列表FOutputs。
进一步地,步骤2)中每个NLP库的文档级别重叠度OD的方法为:
(a)计算两个NLP库即NLP库i和NLP库j之间的文档级别重合度odi,j
公式:
其中,{Outputsi}表示NLP库i对该文档的词性标注结果列表,{Outputsj}表示NLP库j对该文档的词性标注结果列表。
(b)计算NLP库i的文档级别重叠度ODi
公式:
Figure BDA0002190138220000022
其中,ODi表示NLP库i在文档级别的重叠度,k表示考虑的NLP库的个数。
进一步地,步骤3)中计算主NLP库的语句级别重叠度OSt(1≤t≤n;n为该文档中句子的个数),计算方法为:
(a)计算两个NLP库即NLP库i和NLP库j之间的语句级别重合度osi,j
公式:
Figure BDA0002190138220000023
其中,{Outseni}表示NLP库i对该语句的词性标注结果列表,{Outsenj}表示NLP库j对该语句的词性标注结果列表。{Outseni}为{Outputsi}的一部分;{Outseni}为{Outputsj}的一部分。
(b)计算NLP库i的语句级别重叠度OSi
公式:
Figure BDA0002190138220000031
其中,OSi表示NLP库i在语句级别的重叠度,k表示考虑的NLP库的个数。
有益效果:相对于现有技术,本发明具有如下优点:
(1)该方案提高了分析软件文档中自然语言的结果的准确率,区别于以往API推荐中通过的单个NLP库使用技术,本发明包括了两个步骤:文档级别NLP库选取和语句级别结果优化,文档级别NLP库选取可选取在该文档上分析结果最优的NLP库作为主NLP库,在此基础上,增加了语句级别结果优化的步骤,细粒度地优化了分析结果,使得分析结果更准确;综合各个NLP库的优势
(2)该方案减弱了NLP库版本对NLP库分析软件文档的准确率造成的影响,基于已有的NLP库实证研究,可以发现选取NLP库的不同版本会对该NLP库分析自然语言的效果有影响,本发明的组合使用技术将重点移到了多个NLP库的优势结合上,将重叠度作为选取NLP库的衡量标准,减弱了NLP库版本的影响,从而提升分析文档的准确率;
(3)该方案提升了可拓展性,本发明提出的基于重叠度计算的NLP库组合使用方法不受NLP库类型、个数的限制,文档重叠度更高的NLP库作为主NLP库,语句级别结果优化也参考了语句级别重叠度,即多数NLP库分析后相同的结果作为最终分析结果,若研究人员需要替换为其他NLP库或增加NLP库的个数,该技术都可使用。
附图说明
图1是本发明方法的体系结构。
图2是本发明方法的流程图。
具体实施方式
为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。
参见图2,本发明提出了一种基于重叠度计算的NLP库组合使用方法。通过三个步骤将不同的NLP库进行组合使用,提出了重叠度的计算方法,通过文档级别重叠度进行选取主NLP库,而且在此基础上,通过语句级别重叠度进行主NLP库分析结果优化。
实施例1:参见图2,一种基于重叠度计算的NLP库组合使用方法,图2为该NLP库
组合使用技术的设计体系结构,下面给出两个主要部分的具体说明。
1、文档级别主NLP库的选取;
本模块的功能为:通过计算某个NLP库的文档级别重叠度OD,选取主NLP库。
计算过程会涉及两个NLP库,为了说明方便,假设两个NLP库为NLP库i和NLP库j。计算过程分为两个步骤,分别为计算两个NLP库即NLP库i和NLP库j之间的文档重叠度odi,j和计算某个NLP库的文档级别重叠度OD,两个步骤的计算方式如下:
(1)计算两个NLP库即NLP库i和NLP库j之间的文档级别重合度odi,j
公式:
Figure BDA0002190138220000041
其中,{Outputsi}表示NLP库i对该文档的词性标注结果列表,{Outputsj}表示NLP库j对该文档的词性标注结果列表。
(2)计算NLP库i的文档级别重叠度ODi
公式:
Figure BDA0002190138220000042
其中,ODi表示NLP库i在文档级别的重叠度,k表示考虑的NLP库的个数。
2、语句级别分析结果优化;
在上述方法中,计算了某个NLP库的文档级别重叠度OD,选取了主NLP库。为了进一步优化主NLP库对文档的分析结果,计算主NLP库对该文档中所有句子的语句级别重叠度,当主NLP库的语句级别重叠度小于主NLP库的文档级别重叠度,该语句被视为低重叠度句子,从而可筛选需要进行优化的语句,使用其他NLP库对这些语句进行优化。
计算NLP库在语句级别重叠度分为以下两个步骤:
(1)计算两个NLP库即NLP库i和NLP库j之间的语句级别重合度osi,j
公式:
Figure BDA0002190138220000043
其中,{Outseni}表示NLP库i对该语句的词性标注结果列表,{Outsenj}表示NLP库j对该语句的词性标注结果列表。{Outseni}为{Outputsi}的一部分;{Outseni}为{Outputsj}的一部分。
(2)计算NLP库i的语句级别重叠度OSi
公式:
Figure BDA0002190138220000051
其中,OSi表示NLP库i在语句级别的重叠度,k表示考虑的NLP库的个数。
参见图2,一种基于重叠度计算的NLP库组合使用方法,包括如下:
步骤1)对同一软件文档,分别使用四种不同的NLP库进行分析,得到每个NLP库对该文档的词性标注结果列表Outputs;
步骤2)利用每个NLP库对该文档的词性标注结果列表Outputs,分别计算每个NLP的文档级别重叠度OD,选取文档级别重叠度OD最高的NLP库作为主NLP库;
计算某个NLP库文档级别重叠度OD的方法为:
(a)计算两个NLP库即NLP库i和NLP库j之间的文档级别重合度odi,j
公式:
Figure BDA0002190138220000052
其中,{Outputsi}表示NLP库i对该文档的词性标注结果列表,{Outputsj}表示NLP库j对该文档的词性标注结果列表。
(b)计算NLP库i的文档级别重叠度ODi
公式:
其中,ODi表示NLP库i在文档级别的重叠度,k表示考虑的NLP库的个数。
步骤3)将文档划分为句子,针对每个句子,利用主NLP库的词性标注结果列表Outputs,分别计算主NLP库的语句级别重叠度OSt(1≤t≤n;n为该文档中语句的个数);
具体计算方法如下:
(a)计算两个NLP库即NLP库i和NLP库j之间的语句级别重合度osi,j
公式:
Figure BDA0002190138220000054
其中,{Outseni}表示NLP库i对该语句的词性标注结果列表,{Outsenj}表示NLP库j对该语句的词性标注结果列表。{Outseni}为{Outputsi}的一部分;{Outseni}为{Outputsj}的一部分。
(b)计算NLP库i的语句级别重叠度OSi
公式:
Figure BDA0002190138220000061
其中,OSi表示NLP库i在语句级别的重叠度,k表示考虑的NLP库的个数。
步骤4)比较主NLP库的语句级别重叠度OS和文档级别重叠度OD,对于某个句子s,如果语句级别重叠度OS小于文档级别重叠度OD,那么使用除主NLP库的其他三个NLP库分析句子s,从而优化文档级别分析的结果,选取其中多数NLP库分析后多数NLP库分析后相同的词性标注结果即为优化后的结果,输出最终词性标注结果列表FOutputs。
应用实施例:
为了方便描述,我们假定有如下简化的应用实例:输入的文档如下所示:
See user list discussion:
http://mail-archives.apache.org/mod_mbox/axis-java-user/201808.mbox/%3CCABpPLBVTwAa54j1rnjvhrkDtrEEqq9FWZuh-aK-xnr782pmHNw@mail.gmail.com%3E
I am trying to get the SAAJ examplehttps://raw.githubusercontent.com/phaupt/mobileid-java/master/client-saaj/src/com/s wisscom/mid/client/MobileidSign.javato work.
根据我们前面提到的计算步骤,依次实施:
第一步,对同一软件文档,分别使用四种不同的NLP库进行分析,得到每个NLP库对该文档的词性标注结果列表Outputs;
以Stanford CoreNLP为例:
它的词性标注结果列表Outputs为:
Figure BDA0002190138220000062
Figure BDA0002190138220000071
第二步,分别计算每个NLP库的文档级别重叠度,选取文档级别重叠度最高的NLP库作为主NLP库:
首先,计算两个NLP库即NLP库i和NLP库j之间的文档级别重合度:
根据公式计算,以NLTK和spaCy为例:63*2/(78+68)=86.3%。
类似的,NLTK和Stanford CoreNLP的文档级别重合度为72.10%;NLTK和openNLP的文档级别重合度为59.91%;spaCy和Stanford CoreNLP的文档级别重合度为82.35%;spaCy和openNLP的文档级别重合度为46.26%;StanfordCoreNLP和openNLP的文档级别重合度为54.13%。
其次,NLP库i的文档级别重叠度(以NLTK为例),NLTK的文档级别重叠度为(86.3%+72.10%+59.91%)/3=72.77%。
可知,四种NLP库的文档级别重叠度分别为:NLTK的文档级别重叠度为72.77%;SpaCy文档级别重叠度为71.64%;Stanford CoreNLP的文档级别重叠度为73.21%;OpenNLP的文档级别重叠度为53.5%。
由于StandfordCoreNLP的文档级别重叠度最高,它被选为文档级别主NLP库。
第三步,将文档划分为句子,针对每个句子,利用主NLP库词性标注结果列表,计算主NLP库的语句级别重叠度OSt(1≤t≤n,n为输入的文档中的句子个数)。计算过程类似于第二步的计算过程。该文档包含了3个句子,分别记为:s1,s2,s3,可知:
s1的语句级别重叠度为88.44%;s2的语句级别重叠度为40.17%;s3的语句级别重叠度为48.13%。
第四步,比较主NLP库的语句级别重叠度OS和文档级别重叠度OD,对于某个句子s,如果OS小于OD,那么句子s是低重叠度句子,使用除主NLP库的其他三个NLP库分析句子s,从而优化文档级别分析的结果,输出最终词性标注结果列表FOutputs。
基于上述几步计算,可知,由于Stanford CoreNLP在s2,s3上的语句级别重叠度均小于它在该文档上的文档级别重叠度,因此,s2,s3都被视为低重叠度句子。需要使用其他NLP库进行分析,多数NLP库分析结果中相同的将作为优化后结果,因此最终输出的词性标注列表应为:
Figure BDA0002190138220000111
Figure BDA0002190138220000121
Figure BDA0002190138220000131
Figure BDA0002190138220000141
Figure BDA0002190138220000151
需要说明的是上述实施例,并非用来限定本发明的保护范围,在上述技术方案的基础上所作出的等同变换或替代均落入本发明权利要求所保护的范围。

Claims (4)

1.一种基于重叠度计算的NLP库组合使用方法,其特征在于,所述方法包括以下步骤:
步骤1)对同一软件文档,分别使用四种不同的NLP库进行分析,得到每个NLP库对该文档的词性标注结果列表Outputs;
步骤2)利用每个NLP库对该文档的词性标注结果列表Outputs,分别计算每个NLP的文档级别重叠度OD,选取文档级别重叠度OD最高的NLP库作为主NLP库;
步骤3)将文档划分为句子,针对每个句子,利用主NLP库的词性标注结果列表Outputs,分别计算主NLP库的语句级别重叠度OSt(1≤t≤n;n为该文档中语句的个数);
步骤4)比较主NLP库的语句级别重叠度OSt和文档级别重叠度OD,对于某个句子s,如果语句级别重叠度OS小于文档级别重叠度OD,那么使用除主NLP库的其他三个NLP库分析句子s,从而优化文档级别分析的结果,输出最终词性标注结果列表FOutputs。
2.根据权利要求1所述的基于重叠度计算的NLP库组合使用方法,其特征在于,所述步骤2)中计算某个NLP库文档级别重叠度OD的方法为:
(a)计算两个NLP库即NLP库i和NLP库j之间的文档级别重合度odi,j
公式:
Figure FDA0002190138210000011
其中,{Outputsi}表示NLP库i对该文档的词性标注结果列表,{Outputsj}表示NLP库j对该文档的词性标注结果列表。
(b)计算NLP库i的文档级别重叠度ODi
公式:
Figure FDA0002190138210000012
其中,ODi表示NLP库i在文档级别的重叠度,k表示考虑的NLP库的个数。
3.根据权利要求2所述的NLP库组合使用技术,其特征在于,所述步骤3)中计算主NLP库的语句级别重叠度OSt(1≤t≤n;n为该文档中语句的个数),具体计算方法如下:
(a)计算两个NLP库即NLP库i和NLP库j之间的语句级别重合度osi,j
公式:
Figure FDA0002190138210000013
其中,{Outseni}表示NLP库i对该语句的词性标注结果列表,{Outsenj}表示NLP库j对该语句的词性标注结果列表。{Outseni}为{Outputsi}的一部分;{Outseni}为{Outputsj}的一部分;
(b)计算NLP库i的语句级别重叠度OSi
公式:
Figure FDA0002190138210000021
其中,OSi表示NLP库i在语句级别的重叠度,k表示考虑的NLP库的个数。
4.根据权利要求3所述的NLP库组合使用技术,其特征在于,所述步骤4)中使用除主NLP库的其他三个NLP库分析该语句s,选取其中多数NLP库分析后多数NLP库分析后相同的词性标注结果即为优化后的结果。
CN201910829315.XA 2019-09-03 2019-09-03 一种基于重叠度计算的nlp库组合使用方法 Active CN110705249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910829315.XA CN110705249B (zh) 2019-09-03 2019-09-03 一种基于重叠度计算的nlp库组合使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910829315.XA CN110705249B (zh) 2019-09-03 2019-09-03 一种基于重叠度计算的nlp库组合使用方法

Publications (2)

Publication Number Publication Date
CN110705249A true CN110705249A (zh) 2020-01-17
CN110705249B CN110705249B (zh) 2023-04-11

Family

ID=69193673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910829315.XA Active CN110705249B (zh) 2019-09-03 2019-09-03 一种基于重叠度计算的nlp库组合使用方法

Country Status (1)

Country Link
CN (1) CN110705249B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823857A (zh) * 2014-02-21 2014-05-28 浙江大学 基于自然语言处理的空间信息检索方法
CN108647319A (zh) * 2018-05-10 2018-10-12 思派(北京)网络科技有限公司 一种基于短文本聚类的标注系统及其方法
US20180308493A1 (en) * 2016-12-30 2018-10-25 Google Llc Data structure pooling of voice activated data packets
CN108920488A (zh) * 2018-05-14 2018-11-30 平安科技(深圳)有限公司 多系统相结合的自然语言处理方法及装置
CN109145085A (zh) * 2018-07-18 2019-01-04 北京市农林科学院 语义相似度的计算方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823857A (zh) * 2014-02-21 2014-05-28 浙江大学 基于自然语言处理的空间信息检索方法
US20180308493A1 (en) * 2016-12-30 2018-10-25 Google Llc Data structure pooling of voice activated data packets
CN108647319A (zh) * 2018-05-10 2018-10-12 思派(北京)网络科技有限公司 一种基于短文本聚类的标注系统及其方法
CN108920488A (zh) * 2018-05-14 2018-11-30 平安科技(深圳)有限公司 多系统相结合的自然语言处理方法及装置
CN109145085A (zh) * 2018-07-18 2019-01-04 北京市农林科学院 语义相似度的计算方法及系统

Also Published As

Publication number Publication date
CN110705249B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
Rosseel lavaan: An R package for structural equation modeling
WO2018180970A1 (ja) 情報処理システム、特徴量説明方法および特徴量説明プログラム
US20080221870A1 (en) System and method for revising natural language parse trees
US10078843B2 (en) Systems and methods for analyzing consumer sentiment with social perspective insight
JP7179123B2 (ja) 言語モデルの訓練方法、装置、電子デバイス及び可読記憶媒体
US20130091411A1 (en) Document data entry suggestions
JP7178441B2 (ja) 要約生成方法、装置、プログラム、電子デバイス及び記憶媒体
TW201419014A (zh) 從電子文件中之表結構提取語義關係
US9940380B2 (en) Automatic modeling of column and pivot table layout tabular data
CN109165382B (zh) 一种加权词向量和潜在语义分析结合的相似缺陷报告推荐方法
JP2022529178A (ja) 人工知能推奨モデルの特徴処理方法、装置、電子機器、及びコンピュータプログラム
Anderson et al. ss3sim: an R package for fisheries stock assessment simulation with Stock Synthesis
JP7203897B2 (ja) 文書レイアウト解析方法、装置、電子機器及び記憶媒体
JPWO2018079225A1 (ja) 自動予測システム、自動予測方法および自動予測プログラム
US9563635B2 (en) Automated recognition of patterns in a log file having unknown grammar
Rosa et al. A visual approach for identification and annotation of business process elements in process descriptions
CN111143038A (zh) Risc-v架构微处理器内核信息模型建模及生成方法
Kretzmer et al. BAT: Bisulfite Analysis Toolkit: BAT is a toolkit to analyze DNA methylation sequencing data accurately and reproducibly. It covers standard processing and analysis steps from raw read mapping up to annotation data integration and calculation of correlating DMRs.
Zhou et al. Global optimization method for linear multiplicative programming
US20160132480A1 (en) Integrated, Configurable, Analytical, Temporal, Visual Electronic Plan System
CN110705249B (zh) 一种基于重叠度计算的nlp库组合使用方法
Stolee et al. Revealing the copy and paste habits of end users
Westerlund Rethinking the univariate approach to panel unit root testing: using covariates to resolve the incidental trend problem
Bertalan et al. Using Transformer Models and Textual Analysis for Log Parsing
Byers et al. Applied Geospatial Bayesian Modeling in the Big Data Era: Challenges and Solutions

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