一种计算机中自动生成英文论文标题缩写词的方法与流程

文档序号:13446224阅读:582来源:国知局
一种计算机中自动生成英文论文标题缩写词的方法与流程
本发明属于文本分析领域,尤其涉及一种计算机中自动生成英文论文标题缩写词的方法。
背景技术
:使用缩写词来命名一个项目或者一个比较长的文字描述是一个很常见的语言现象。比如,缩写词ibm经常被用来代表internationalbusinessmachinescorporation。缩写词在学术交流中也经常扮演重要的角色。通常,一个方法或者一个系统的全名都需要用比较多的字符来总结方法或者系统的核心内容,而这样的名称增加了用户去记忆或者提及的难度。相比较而言,与单词极为相似的缩写词更方便人们去记忆和提及,并且也能比较好的提醒人们他们所代表的含义。创造缩写词的方式有很多,比如,svm是supportvectormachine的缩写词,他是使用所有单词的首字母形成缩写词。而对于adaboost,他是adaptiveboosting的缩写,是取第一个单词的前3个字母和第二个字母的前5个字母形成的。除此之外,还有的缩写是进过一些形变形成的,比如,boostrapaggregating的缩写词bagging,这个就不是简单的前缀形成的。不过,从这些例子可以看到,不管是命名还是给出缩写都要求人们对描述内容有充分的理解,同时也要对单词及发音这些语言学知识比较熟悉。对于一个普通用户来讲,这显然不是一个简单的工作。而对于人工智能来讲,这也是一个有趣而具有挑战性的工作。现在也有一些提供缩写服务的网站,比如acronymcreator.net,naming.com,business-name-generators.com,netsubstance.com等,但是这些网站只是使用一些手写的规则来产生缩写词的候选,当然,这也要求理想的缩写词包含在手写的规则中才能有效。不过,当描述的内容变长之后,这样的方法又会引起另外的问题,那就是候选太多,这样用户很难从中挑出自己满意的缩写词。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于描述分析—候选生成—缩写排序框架的缩写词生成方法。为了解决上述技术问题,本发明公开了一种基于描述分析—候选生成—缩写排序框架的缩写词生成方法,包括以下步骤:步骤1,对论文标题进行分析,得出标题中词语的重要程度,即权重;步骤2,根据对论文标题的分析结果,生成候选缩写词集合,并在生成缩写词的每一步对产生的缩写词打分排序;步骤3,对候选缩写词打分进行调整并排序;步骤4,对权重参数进行优化,优化过程中需要不断执行步骤1到步骤4,迭代次数达到设定最大值2000时停止。实际应用的时候不需要执行参数优化。步骤1包含以下步骤:步骤1-1,对标题进行句法分析,获得标题的结构信息:通过句法分析得到一棵依存句法树,这里使用工具stanfordparser[1]得到标题的句法分析树。对依存句法树的不同层次的单词定义指示特征,指示特征具体形式如下:其中,wk表示标题中的第k个单词;fsyn-i(wk)表示该单词wk在句法树第i层对应的特征值;下标syn表示该特征是句法相关特征,i表示句法树的第i层。;步骤1-2,计算标题中的每个单词与该标题在语义上的关联程度:首先,在arxiv.org上收集30万的英文论文标题数据集,然后在该英文论文标题数据集上训练词向量,得到数据集中每个单词对应的向量表示,向量维度为300;对一个长度为n的英文标题w1,w2,w3,…,wn,wn为标题中第n个单词,对于两个单词wi和wj,i和j的取值范围均为1到n,通过如下公式计算这两个单词的相似度dij:其中,vec(wi)表示单词wi的词向量;通过如下公式计算标题中的第k个单词wk与标题的语义关联程度fsem(wk):其中k∈[1,n],j(j=1,2,…,k-1,k+1,…,n)是标题中除wk之外其他单词的索引,dkj表示单词wk与wj的相似度;步骤1-3,计算标题中各单词的重要程度:用sword(wk)表示单词wk的重要程度,计算公式如下:其中,是标题中第k个单词句法分析得到的特征向量,[.,.]表示把两个向量拼接起来,是一个权重向量,此处采用的权重向量为[0.9936817726679172,0.9552995663616508,0.44995924555266675,0.15046628052839595,0.7565933329233615],并在处理过程中将停用词的重要程度设为0,停用词是为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)自动过滤掉的某些字或词,本文使用的停用词来自http://www.ranks.nl/stopwords/。步骤1-1中,只对依存句法树的前四层的单词定义指示特征。步骤2采用beamsearch的方法产生候选缩写词,包括以下步骤:步骤2-1,定义一个三元组来表示beamsearch产生候选缩写词过程中每一步的状态,三元组的表示形式为<a,w_k,t>,其中,a表示当前生成的缩写词字符串,w_k为标题中的第k个单词,k为该单词在标题中的位置索引,t表示当前状态指向的字符在单词w_k中的位置索引,定义队列queue来存放状态集合,并设置队列长度beamsize,队列长度记为n1;步骤2-2,初始化状态为表示空字符串,w_0表示标题中的第一个单词,0表示指向当前单词的第一个字母,放入队列queue;步骤2-3,更新队列queue中的状态,依次弹出queue中的状态,并执行以下3个步骤,在这一过程中,使用c来表示状态所指向的字母:添加(append):将当前状态指向的字母添加到状态中记录的当前字符串之后,将状态转变为<a+c,w_k,t+1>,“+”表示将字符串和字符拼接在一起;如果t+1之后的值大于6,执行jump;跳转(jump):移动到标题中的下一个单词,将状态转换为<a,w_(k+1),0>,当k的值大于当前标题包含的总词数时,将状态变为stop,即状态三元组中的第二个元素变为“\n”;停止(stop):保持当前形成的缩写词,将状态三元组中的第二个元素变为“\n”;步骤2-4,计算队列中的状态打分,打分的过程参见步骤2-6,并按照从大到小的顺序排序,如果队列中的状态数量超过n1,则保留最大的前n1个;步骤2-5,执行步骤2-3,直到queue队列中的所有状态都变成stop,queue中所有状态的字符串就是候选缩写词集合。步骤2-6,候选缩写词是由标题中某些单词的部分字母组成,而且这些字母都来自于标题的前6个字母,为方便描述,将属于同一单词的部分字母叫做从该单词中提取的前缀。对标题中的第k个单词w_k,把该单词的前缀记为p_k,定义一个指示特征fchar-j(pk,wk)来表示一个前缀pk使用单词wk的第j个字母:组成候选缩写词的一个前缀pk的得分sprefix(pk,wk)为:其中,是一个01向量,表示使用单词中的哪些字母,该向量共六维,如果p_k包含w_k的第一个字母,那么就将向量的第一维置1,否则为0。是一个权重向量,取值为[0.8587454901343026,0.17859284102712814,0.5062592809020146,0.010549822655467445,0.021190722177522454,0.7672782972938551]。缩写词a的得分sabbr(a)为:其中,l是a的长度,k是索引,范围是1到n,n表示缩写词a的字母来自标题中的n个单词。步骤3包含以下步骤:步骤3-1,打分调整:因为需要从得到的很多候选缩写词中选择一些易于发音,方便记忆的推荐给用户。为了给缩写词的发音、便于记忆的特征建模,本发明借用语言模型的思想,用语言模型给缩写词打分。不过这里语言模型判断的对象是单词而不是句子,所以需要我们自己在单词集合上重新训练模型,我们采用wordnet(一个英语词典)作为训练数据集。另外,在生成过程中,对缩写词的长度进行了惩罚,所以,在最后要补偿一些缩写词在长度上的损失。最终缩写词a的得分s(a)为:s(a)=sabbr(a)+wlm×flm(a)+wlen×flen(a)。其中,flm(a)表示候选缩写词a在语言模型中的打分,wlm表示语言模型打分的权重,flen(a)表示缩写词a的长度,wlen表示长度的权重。wlm和wlen这两个权重的取值都是在0到1之间。步骤3-2,将所有的缩写词根据得分从大到小排序。步骤4包含以下步骤:在训练模型的过程中,采用当前效果最好的无导数优化方法racos[2](https://github.com/eyounx/racos)来优化参数。需要优化的参数包括句法树每一层对应的权重参数,共4个;单词与标题语义关联权重参数,共1个;表示单词前6个字母重要程度的参数,共6个;生成候选缩写词在语言模型中打分的权重参数,共1个;生成候选缩写词长度的参数,共1个。本发明在上面的三个步骤中设置了很多的权重,这些权重都需要通过学习得到。采用无导数优化方法来实现对这些权重的自动学习优化。本发明对文本的分析技术,尤其是对句子的分析可以给用户推荐相对较好的候选。本文发明将命名或者产生缩写看成一个人工智能的问题,并收集一些论文标题作为数据集,这些标题包含论文标题和标题缩写。为了解决这个问题,本发明提出了一个三部框架:描述分析、候选生成、缩写排序。为了尽可能的模拟人在缩写的时候用到的知识,本发明对描述内容进行多方面的分析,包括:句法分析、语义分析。分析的结果用来指导候选缩写的生成,然后,通过对缩写词词性,发音方面的评价对缩写排序。这个框架是一个参数化的模型,这让本发明可以采用无导数优化方法来优化。参考文献[1]danqichenandchristopherdmanning.2014.afastandaccuratedependencyparserusingneuralnetworks.proceedingsofemnlp2014[2]yangyu,hongqian,andyiqihu.derivative-freeoptimizationviaclassification.inproceed-ingsofthe30thaaaiconferenceonartificialintelligence,pages2000–2006,phoenix,az,2016.有益效果:本发明避免了现有系统对描述的所有部分按相同的重要程度对待的缺点。同时,通过句法分析、语义分析、语言模型等自然语言处理相关技术在一定程度上学习人们在创造缩写词的时候所考虑到的语言学相关知识,使形成缩写词的过程更具有解释性。本发明对现有的缩写词生成系统采用的方法进行改善和提高,能够尽可能避免采用同等对待描述各部分方法产生的不合理缩写词。描述的各部分重要程度是不同的,准确的找出描述中重要的部分是生成好的缩写词的关键。本文采用句法分析和语义分析,比较准确的区分了标题中各个词语的重要程度。同时采用语言模型给缩写词打分,有效的建模了词语是否容易发音、是否便于记忆的特征。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。图1是本发明的流程图。图2是本发明候选词beamsearch示意图。图3是句法树示意图。具体实施方式下面结合附图及实施例对本发明做进一步说明。本发明提出一种基于描述分析—候选生成—缩写排序框架的缩写词生成方法。可以避免现有系统对描述的所有部分按相同的重要程度对待的缺点。现有技术中,缩写词通常是由描述各个词的一些部分随机组合得到的。如图1所示,本发明包括以下步骤。步骤一,对论文标题内容进行分析,得出标题中词语的重要程度,也就是权重。步骤二,根据对标题的分析结果,生成候选缩写词集合。步骤三,对候选缩写词进行打分并排序。步骤四,模型参数优化。步骤一包含以下步骤:1、对标题进行句法分析,获得标题的结构信息。句法分析的结果是得到一棵依存句法树,然后为在树的不同层次的单词定义指示特征,指示特征具体形式如下:因为大部分的论文标题都是比较浅显简单的句法结构,所以只考虑前三层。2、分析标题中的单词与原标题中其他单词在语义上的关联。首先,需要在一个大的英文论文标题数据集上训练词向量,这样可以得到每个单词对应的向量表示。然后,对一个长度为n的英文标题w1,w2,w3,…,wn,要计算每一个词语wi和其他单词的平均语义相似度,用相似度表示该单词与标题的语义关联程度。对于两个单词wi和wj,用符号dij来表示这两个单词的相似度,而dij可以通过下面公式计算,而单词wk与标题的语义关联程度可以通过如下公式计算:其中j是标题中其他单词的索引。3、计算标题中各单词的重要程度。经过上面两个步骤的分析,可以基于分析结果定义单词重要程度的计算。具体来讲,就是将单词在上述步骤中每一步得到的结果乘上对应的权重然后相加,得到该单词的重要程度。用sword(wk)来表示单词wk的重要程度。计算公式如下:其中,是句法分析特征的向量,fsem是单词wk语义关联分析时候得到的结果。[.,.]表示把两个向量拼接起来,是一个权重向量。这里将停用词的重要程度设为0。步骤二包含以下步骤:1、候选缩写词的生成。文方法采用beamsearch的方法产生候选缩写词。定义一个三元组来表示状态,三元组的表示形式为<a,wt,t>,其中,a表示当前生成的缩写词字符串,wk为当前的单词,k为当前单词在标题中的位置索引,t表示当前字符在当前单词中的索引。定义队列queue来存放状态集合,并设置beamsize即队列长度,记为n,具体步骤如下:1)、初始化状态为表示空字符串,w0表示标题中的第一个单词,0表示指向当前单词的第1和字母。放入队列queue。2)、更新队列中的状态,具体更新队列的策略如下:a、append:将当前的字母添加到状态中记录的当前字符串之后,将状态转变为<a+c,wk,t+1>。b、jump:移动到标题中的下一个单词,将状态转换为<a,wk+1,0>。当k的值大于当前标题包含的总词数时,将状态变为stop。c、stop:保持当前形成的缩写词,当前状态保持不变。图2是标题“asecondgenerationrdfquerylanguage”生成缩写词过程中beamsearch过程的示意图,为画图方便这里假设beamsearch的集束宽度为6。首先初始化状态<“”,“a”,0>。因为字母“a”是停用词,所以该状态执行跳转操作,状态变为<“”,“second”,0>,这时队列中只有这一个状态。接下来要对队列中的所有状态做步骤2所述的操作。首先取出队列中的状态,<“”,“second”,0>,因为0小于6,所以执行添加操作,将该状态所指向的字母“s”添加到状态保存的字符串末尾,此时产生一个新状态<“s”,“second”,1>。同时还要执行跳转和停止,产生的状态分别为<“”,“generation”,0>和<“”,“\n”,0>,得到状态之后对这些状态打分排序。第二趟循环时,取出队列中的状态,继续执行步骤2所述的操作,得到新的状态如下:<“se”,“second”,2>、<“s”,“generation”,0>、<“s”,“\n”,0>、<“g”,“generation”,1>,<“”,“rdf”,0>、<“”,“\n”,0>。此时,队列中的状态数是6,所以不用剪枝。接下来,继续循环执行步骤二所述的过程。此时,队列中有6个状态,其中4个不是停止状态,所以会产生12个新的状态,此时需要对所有14个状态打分排序,保留得分最高的6个状态继续循环步骤二,直到所有状态都是停止状态。3)、计算队列中的状态打分,并按照从大到小的顺序排序,如果队列中的状态数量超过n,则保留最大的前n个。4)、执行2),直到队列中的所有状态都变成stop。2、候选缩写词打分候选缩写词是通过beamsearch产生的,在生成的过程中,需要维持一个定长的队列,当产生的缩写词个数大于预先设定的个数时,丢弃一些打分比较低的缩写词。在本发明方法中,对缩写词的打分主要来自两个部分。一个是构成缩写词的前缀,另外一个就是前缀所在的单词的打分。单词的打分在标题分析的时候已经得到了,下面要解决的是前缀的打分。分别给不同位置的字母设定权值,所有的单词前缀共享这套权值。定义一个指示特征fchar-i(pk,wk)来表示一个前缀pk使用单词wk的第i个字母。组成候选缩写词的某一个前缀pk的得分sprefix(pk,wk)为:这里是表示使用那些字母的向量(如果前缀使用了第i个字母,该向量第i维就是1,否则为0);是一个权重向量。最终的缩写词a的得分sabbr(a)为:步骤三包含以下步骤:1、打分调整需要从得到的很多候选缩写词中选择一些易于发音,方便记忆的推荐给用户。为了给缩写词的发音、便于记忆的特征建模,本发明借用语言模型的思想,用语言模型给缩写词打分。另外,在生成过程中,对缩写词的长度进行了惩罚,所以,在最后要补偿一些缩写词在长度上的损失。所以最终缩写词的得分s(a)为:s(a)=sabbr(a)+wlm×flm(a)+wlen×flen(a)2、排序将所有的缩写词根据得分从大到小排序。步骤四包含以下步骤:在上面的三个步骤中设置了很多的权重,这些权重都需要通过学习得到。本发明采用无导数优化方法来实现对这些权重的自动学习。实施例1假设要生成缩写的标题为“asecondgenerationrdfquerylanguage”。首先,对标题进行句法分析,得到依存句法分析树。句法树如图3所示。得到依存树之后,根据单词在树上的位置,给单词打分。这里假定与句法树相关的权值设为0.99368,0.95529,0.44995,0.15046。标题中的单词打分如下:表一单词asecondgenerationrdfquerylanguage打分1.910591.910591.910591.910591.910591.98736句法树分析之后,需要对标题再进行语义分析。词向量是之前已经训练好的,这里直接从保存文件中读取就可以了。因为词向量是一个300维的向量,这里就不把标题中单词的词向量列举出来了。经过计算得到标题中各个单词与标题的语义关联程度如下表所示。表二单词asecondgenerationrdfquerylanguage打分0.156960.199850.235800.249480.234840.27422得到句法分析和语义分析的结果之后,就可以根据公式计算得到标题中每个单词的打分。每个单词的打分如表三所示。其中,语义的权重为0.75659。表三单词asecondgenerationrdfquerylanguage打分0.02.110452.146402.160082.145442.26158接下来通过beamsearch生成候选的缩写词。首先初始化状态三元组,currentprefixvalue变量和candidatevalue变量,并将状态及两个变量组成新的三元组放入队列;然后,从队列中取出状态,因为a的打分是0,所以跳过这个单词,状态变为接着再从队列中取出状态,执行append步骤状态变为<s,w1,1>,或者执行跳过状态变为或者进入stop状态,将状态放入队列。一直循环这个过程。在执行过程中,如果状态所记录的缩写词长度为7,则需要强行将状态变成stop。在每一次append,都会更新对应的currentprefixvalue,具体操作就是用该字母的权重乘以字母所在单词的打分。当状态从一个单词跳到下一个单词,状态更新如下:前一刻的状态假设是<s,w0,1>,跳到下一个单词状态将变为<s,w1,0>,同时需要更新candidatevalue,具体就是执行candidatevalue+=currentprefixvalue,然后再将currentprefixvalue置0。本文目前只考虑前6个字母,权重设置为0.85874,0.17859,0.50625,0.01054,0.02119,0.76727。得到候选缩写词之后需要用语言模型和缩写词的长度对缩写词得分进行调整。具体流程如下:首先,需要用wordnet(一个英语词典)中的单词训练语言模型,也就是对现有的单词建模。然后用语言模型对得到的缩写词打分。然后按照公式:s(a)=sabbr(a)+wlm×flm(a)+wlen×flen(a)对缩写词计算最终得分。语言模型和长度权重设置为0.76727和0.00843。以上描述的是给定一个标题产生缩写词的过程。但是最开始设定的权重是通过训练得到的。训练过程具体流程如下:首先需要收集一个数据集,然后对整个数据集中的所有标题生成缩写词,然后判断top50的候选缩写词中是否包含目标缩写,这样计算系统在整个训练集上的召回率。然后根据得到的召回率利用无导数优化算法优化模型。实施例2本发明的所有代码都由java编写,采用的机型为intelxeonx7550处理器,主频为2.00ghz,内存为40g。本发明使用的standfordparser和word2vec是目前通用的开源句法分析和词向量训练工具。更具体地说,如图1所示,本发明运行如下:1、描述内容分析:使用standfordparser和word2vec对标题进行分析,得到标题中各个词的打分,即词的重要程度;2、采用beamsearch生成候选缩写词:采用beamsearch的方法搜索候选缩写词空间,在每一次更新状态的时候都需要计算当前缩写词的打分。3、对每个候选缩写词的打分进行调整:利用语言模型、缩写词的长度对缩写词的打分进行调整,并按打分从大到小顺序输出。实验数据准备如下:选取从arxiv.org收集的30万标题作为词向量的训练集,训练得到每个词语的300维向量表示。选择从citeseerx.ist.psu.edu收集的1000个带有标题缩写词的论文标题作为数据集,并按照7:3的比例划分训练集和测试集。采用recall@k作为系统效果的评价标准。recall@k就是计算训练集中打分topk的缩写词候选中包含目标缩写词的个数与标题总个数的比重。表四中的数据表示在不同k值的条件下,系统的recall。表四k值151020304050recall0.090270.215270.31250.416660.451380.479160.52777本发明提供了一种计算机中自动生成英文论文标题缩写词的方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1