[0001]技术领域
[0002]本申请涉及文字识别技术领域,特别涉及一种词表构建的方法及装置、计算设备和计算机可读存储介质和芯片。
[0003]背景技术
[0004]词作为自然语言处理的基本单位,代表了一个语义单元。在中文信息处理领域,由于中文自身的特点,它不像英文那样在词与词之间有空格间隔,因此,词表构建是一项很重要的基础工作,它直接决定了自然语言处理系统的性能好坏。因此,针对特定语料词表构建具有重要的意义。
[0005]词表构建是指从文本语料中以自动或半自动的方式获得词的过程,其中,半自动的方式指的是需要适度的进行人工干预。对于词表构建的方法,目前广泛采用的包括基于统计和基于规则两种方法。
[0006]基于统计的方法是通过多种统计策略,从语料库中找出最相关的字串组合。这种方法的缺点是算法复杂度较高、构建的词表准确率较低的情况。
[0007]基于规则的方法需要借用领域专家的知识构造词语来学习词性、语义信息,形成规则模板,使用实验数据和这些规则模板进行匹配,最终实现词表构建,是一种监督方法。基于规则的方法一般是针对特定的领域,需要消耗大量的人力、物力来获得规则模板,可移植性不佳。
[0008]目前,上述词表构建的方法,例如Ngram算法没有识别长词的能力,而在公文等专业术语较多的语料中,长词的出现是不可避免的。因此,在公文等专业术语较多的语料中,通过上述词表构建的方法得到的词表的准确度较低,严重影响着后续自然语言处理系统的性能。
[0009]发明内容
[0010]有鉴于此,本申请实施例提供了一种词表构建的方法及装置、计算设备和计算机可读存储介质和芯片,以解决现有技术中存在的技术缺陷。
[0011]本申请一实施例公开了一种词表构建的方法,所述方法包括:
[0012]读取目标语料;
[0013]计算目标语料中每两个相邻字之间的互信息,根据互信息大于等于0的至少两个相邻字生成待筛选词,并根据待筛选词生成第一待筛选词表;
[0014]计算所述第一待筛选词表中的各个待筛选词的凝聚度,并将凝聚度小于第一阈值的待筛选词删除得到第二待筛选词表;
[0015]计算所述第二待筛选词表中的每个所述待筛选词的自由度,并将自由度小于第二阈值的待筛选词删除得到第三待筛选词表;
[0016]输出所述第三待筛选词表。
[0017]在本申请的一个示意性的实施方案中,所述目标语料中每两个相邻字之间的互信息通过两个相邻字在目标语料中分别出现的概率以及相邻出现的概率计算而得。
[0018]在本申请的一个示意性的实施方案中,所述目标语料包括至少一个文本子序列;根据互信息大于等于0的至少两个相邻字生成待筛选词,包括:
[0019]a1、确定在加载的文本子序列中的开始位置i和结束位置j,计算第i个字和第j个字之间的互信息,若互信息≥0,执行步骤a2,若互信息<0,执行步骤a4,其中,i,j均为正整数,i≥1,j=i+1;
[0020]a2、将结束位置j自增1,并计算第j-1个字和第j个字之间的互信息,若互信息≥0,继续执行步骤a2,若互信息<0,执行步骤a3;
[0021]a3、将第i个字至第j-1个字之间任意相邻的至少两个字作为待筛选词,然后执行步骤a4;
[0022]a4、判断结束位置j是否到达文本子序列的结束位置,若是,执行步骤a6,若否,执行步骤a5;
[0023]a5、取i=j,返回步骤a1;
[0024]a6、判断当前加载的文本子序列是否为最后一个文本子序列,若是,执行步骤a8,若否,执行步骤a7;
[0025]a7、加载下一个文本子序列,并返回步骤a1;
[0026]a8、结束流程。
[0027]在本申请的一个示意性的实施方案中,所述步骤a3包括:
[0028]a31、将所述文本子序列中的第i个字至第k个字作为待筛选词,其中,k为正整数且i+1≤k≤j-1;
[0029]a32、将i自增1,判断自增1后的i是否小于j,若是,继续执行步骤a31,若否,执行步骤a4。
[0030]在本申请的一个示意性的实施方案中,根据待筛选词生成第一待筛选词表,包括:
[0031]判断所述第一待筛选词表是否存在该待筛选词中;
[0032]若否,则将该待筛选词加入至第一待筛选词表中;
[0033]若是,丢弃该待筛选词。
[0034]在本申请的一个示意性的实施方案中,计算所述第一待筛选词表中的各个待筛选词的凝聚度,包括:
[0035]计算所述待筛选词中的前p个字在目标语料中的出现概率以及后q个字在目标语料中的出现概率,然后计算得到所述待筛选词的凝聚度,其中,p,q均为正整数,且1≤m,q≤待筛选词的字数。
[0036]在本申请的一个示意性的实施方案中,所述第一阈值通过以下公式计算:
[0037]thres i =T 0 e k(len(w)-2)
[0038]其中,thres i 代表第一阈值;T 0 为设定的初始值;
[0039]len(W)为待筛选词的字数;k为设定的参量。
[0040]在本申请的一个示意性的实施方案中,所述待筛选词的自由度通过所述待筛选词的左邻字和右邻字在目标语料中分别出现的概率计算而得。
[0041]本申请一实施例公开了一种词表构建的装置,所述装置包括:
[0042]语料读取模块,用于读取目标语料;
[0043]第一待筛选词表生成模块,用于计算目标语料中每两个相邻字之间的互信息,根据互信息大于等于0的至少两个相邻字生成待筛选词,并根据待筛选词生成第一待筛选词表;
[0044]第二待筛选词表生成模块,用于计算所述第一待筛选词表中的各个待筛选词的凝聚度,并将凝聚度小于第一阈值的待筛选词删除得到第二待筛选词表;
[0045]第三待筛选词表生成模块,用于计算所述第二待筛选词表中的每个所述待筛选词的自由度,并将自由度小于第二阈值的待筛选词删除得到第三待筛选词表;
[0046]输出模块,用于输出所述第三待筛选词表。
[0047]在本申请的一个示意性的实施方案中,所述第一待筛选词表生成模块通过两个相邻字在目标语料中分别出现的概率以及相邻出现的概率计算得到所述两个相邻字之间的互信息。
[0048]在本申请的一个示意性的实施方案中,所述目标语料包括至少一个文本子序列;
[0049]所述第一待筛选词表生成模块包括:
[0050]第一互信息计算模块,用于确定在加载的文本子序列中的开始位置i和结束位置j,计算第i个字和第j个字之间的互信息,若互信息≥0,执行第二互信息计算模块,若互信息<0,执行第一判断模块,其中,i,j均为正整数,i≥1,j=i+1;
[0051]第二互信息计算模块,用于将结束位置j自增1,并计算第j-1个字和第j个字之间的互信息,若互信息≥0,继续执行第二互信息计算模块,若互信息<0,执行待筛选词确定模块;
[0052]待筛选词确定模块,用于将第i个字至第j-1个字之间任意相邻的至少两个字作为待筛选词,然后执行第一判断模块;
[0053]第一判断模块,用于判断结束位置j是否到达文本子序列的结束位置,若是,执行第二判断模块,若否,执行赋值模块;
[0054]赋值模块,用于取i=j,返回第一互信息计算模块;
[0055]第二判断模块,用于判断当前加载的文本子序列是否为最后一个文本子序列,若是,执行结束模块,若否,执行序列加载模块;
[0056]序列加载模块,用于加载下一个文本子序列,并执行第一互信息计算模块;
[0057]结束模块,用于结束流程。
[0058]在本申请的一个示意性的实施方案中,所述待筛选词确定模块还被配置为:
[0059]待筛选词选择模块,用于将所述文本子序列中的第i个字至第k个字作为待筛选词,其中,k为正整数且i+1≤k≤j-1;
[0060]循环模块,用于将i自增1,判断自增1后的i是否小于j,若是,继续执行所述待筛选词选择模块,若否,执行第一判断模块。
[0061]在本申请的一个示意性的实施方案中,所述第一待筛选词表生成模块还被配置为:
[0062]所述第一待筛选词表生成模块判断所述第一待筛选词表是否存在该待筛选词中;
[0063]若否,则将该待筛选词加入至第一待筛选词表中;
[0064]若是,丢弃该待筛选词。
[0065]在本申请的一个示意性的实施方案中,所述第二待筛选词表生成模块计算所述第一待筛选词表中的各个待筛选词的凝聚度,包括:
[0066]所述第二待筛选词表生成模块计算所述待筛选词中的前p个字在目标语料中的出现概率以及后q个字在目标语料中的出现概率,然后计算得到所述待筛选词的凝聚度,其中,p,q均为正整数,且1≤m,q≤待筛选词的字数。
[0067]在本申请的一个示意性的实施方案中,所述第一阈值通过以下公式计算:
[0068]thres i =T 0 e k(len(w)-2)
[0069]其中,thres i 代表第一阈值;T 0 为设定的初始值;
[0070]len(W)为待筛选词的字数;k为设定的参量。
[0071]在本申请的一个示意性的实施方案中,所述第三待筛选词表生成模块通过计算所述待筛选词的左邻字和右邻字在目标语料中分别出现的概率得到所述待筛选词的自由度。
[0072]本申请一实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现该指令被处理器执行时实现如上所述词表构建的方法的步骤。
[0073]本申请一实施例公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述词表构建的方法的步骤。
[0074]本申请一实施例公开了一种芯片,其存储有计算机指令,该指令被处理器执行时实现如上所述词表构建的方法的步骤。
[0075]本申请提供的中文词表构建方法及装置,通过综合互信息、凝聚度和自由度进行对目标语料进行词表构建,降低了算法复杂度,长词识别能力强,提高了算法的效率和准确率。
[0076]其中,利用互信息构建第一待筛选词表的优点在于:消除了人为设定词长度的限制,能够准确地发现和识别长词,提高词表准确率;筛选得到待筛选词,为后续处理提高了算法效率。
[0077]在通过凝聚度得到第二待筛选词表的优点在于:可以根据待筛选词的长度动态选择第一阈值进行筛选,提高了筛选精度,有效地提高了算法的效率。
[0078]其次,本实施例通过先计算目标语料中的每两个相邻字之间的互信息得到第一待筛选词表,再通过计算待筛选词的凝聚度对第一待筛选词表进行筛选得到第二待筛选词表,从而与Ngrams算法得到待筛选词的技术方案相比,减少了计算量。
[0079]再次,本实施例中通过自由度可以查看待筛选词在目标语料中的整体运用程度,进一步提高对待筛选词的筛选精度。
[0080]附图说明
[0081]图1是本申请实施例的计算设备的结构示意图;
[0082]图2是本申请实施例的词表构建的方法流程示意图;
[0083]图3是本申请实施例的词表构建的方法流程示意图;
[0084]图4是本申请实施例的词表构建的装置结构示意图;
[0085]图5是本申请实施例的词表构建的装置结构示意图。
[0086]具体实施方式
[0087]在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
[0088]在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0089]应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0090]首先,对本发明一个或多个实施例涉及的名词术语进行解释。
[0091]语料:即语言材料。语料是语言学研究的内容。语料是构成语料库的基本单元。通常,在统计自然语言处理中,实际上不可能观测到大规模的语言实例,所以简单地用文本作为替代,并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。
[0092]在本申请中,提供了一种词表构建的方法及装置、计算设备、计算机可读存储介质和芯片,在下面的实施例中逐一进行详细说明。
[0093]图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
[0094]计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
[0095]在本说明书的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0096]计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
[0097]其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本申请一实施例的词表构建的方法的示意性流程图,包括步骤201至步骤205。
[0098]201、读取目标语料。
[0099]目标语料有多段文本构成,每段文本作为一个文本子序列。例如:
[0100]“同学们看看苹果叶子这么小是什么
[0101]苹果腐烂是什么原因
[0102]苹果叶发霉用什么药物预防及治疗
[0103]苹果的叶子都打卷好像干啦还有发黄是病么老师们看看是怎么回事即使施加了农药怎么也不管用”
[0104]上述语料中,包括四段文本,每一段文本作为一个文本子序列。
[0105]202、计算目标语料中每两个相邻字之间的互信息,根据互信息大于等于0的至少两个相邻字生成待筛选词,并根据待筛选词生成第一待筛选词表。
[0106]其中,两个字之间的互信息,表征的是两个字之间的关联程度。
[0107]具体地,所述目标语料中每两个相邻字之间的互信息通过两个相邻字在目标语料中分别出现的概率以及相邻出现的概率计算而得。
[0108]在一个具体实施方案中,目标语料中每两个相邻字之间的互信息通过以下公式(1)计算:
[0109]其中,a和b代表两个相邻字;
[0110]PMI(a,b)代表两个相邻字之间的互信息;
[0111]p(a,b)代表两个相邻字a和b在目标语料中相邻出现的概率;
[0112]p(a)代表字a在目标语料中的出现概率;
[0113]p(b)代表字b在目标语料中的出现概率。
[0114]以“苹果”为例,计算“苹”和“果”的互信息的过程中,需要统计“苹”在目标语料中的出现概率、“果”在目标语料中的出现概率、以及“苹果”在目标语料中的出现概率。
[0115]需要解释的是,本实施例中所提及的相邻字的字数大于等于2。例如“苹果”包括2个相邻字,“计算机”包括3个相邻字,“专利代理人”包括5个相邻字。
[0116]其中,参见图3,步骤202中,根据互信息大于等于0的至少两个相邻字生成待筛选词,包括以下步骤301~308:
[0117]301、确定在加载的文本子序列中的开始位置i和结束位置j,计算第i个字和第j个字之间的互信息,若互信息≥0,执行步骤302,若互信息<0,执行步骤304。
[0118]其中,i,j均为正整数,i≥1,j=i+1。
[0119]在初始取值的情形下,i值可以取1,j=i+1=2,即选择文本子序列的开始两个相邻字进行互信息的计算。
[0120]302、将结束位置j自增1,并计算第j-1个字和第j个字之间的互信息,若互信息≥0,继续执行步骤302,若互信息<0,执行步骤303。
[0121]303、将第i个字至第j-1个字之间任意相邻的至少两个字作为待筛选词,然后执行步骤304。
[0122]具体地,步骤303中将第i个字至第j-1个字之间任意相邻的至少两个字作为待筛选词,包括:
[0123]3031、将所述文本子序列中的第i个字至第k个字作为待筛选词,其中,k为正整数且i+1≤k≤j-1;
[0124]3032、将i自增1,判断自增1后的i是否小于j,若是,继续执行步骤3031,若否,执行步骤304。
[0125]304、判断结束位置j是否到达文本子序列的结束位置,若是,执行步骤306,若否,执行步骤305。
[0126]305、取i=j,返回步骤301。
[0127]306、判断当前加载的文本子序列是否为最后一个文本子序列,若是,执行步骤308,若否,执行步骤307。
[0128]307、加载下一个文本子序列,并返回步骤301。
[0129]308、结束流程。
[0130]下面以文本子序列“移动设备的触摸屏幕”为例对上述流程进行说明:
[0131]取i=1,j=i+1=2,对应的,取“移”和“动”两个字计算互信息,计算得到“移”和“动”的互信息≥0。
[0132]则取j=3,计算“动”和“设”两个字的互信息≥0,继续取j=4,计算“设”和“备”两个字的≥0,继续取j=5,计算“备”和“的”两个字的互信息<0,将“移”和“备”字之间任意相邻的至少两个字作为待筛选词。
[0133]其中,待筛选词包括“移动”、“移动设”、“移动设备”、“动设”、“动设备”和“设备”。
[0134]然后判断“的”字未到达文本子序列的结束位置,取i=5,继续计算“的”和“触”的互信息,……直至文本子序列结束。
[0135]本实施例中,在得到待筛选词后,还要生成第一待筛选词表。在第一待筛选词表的生成过程中,还需要避免重复的待筛选词的写入。所以,本步骤202中,根据待筛选词生成第一待筛选词表,包括:
[0136]判断所述第一待筛选词表是否存在该待筛选词;
[0137]若否,则将该待筛选词加入至第一待筛选词表中;
[0138]若是,丢弃该待筛选词。
[0139]203、计算所述第一待筛选词表中的各个待筛选词的凝聚度,并将凝聚度小于第一阈值的待筛选词删除得到第二待筛选词表。
[0140]其中,计算所述第一待筛选词表中的各个待筛选词的凝聚度,包括:
[0141]计算所述待筛选词中的前p个字在目标语料中的出现概率以及后q个字在目标语料中的出现概率,然后计算得到所述待筛选词的凝聚度,其中,p,q均为正整数,且1≤m,q≤待筛选词的字数。
[0142]本实施例中,凝聚度表征的是待筛选词中的相邻字之间的凝聚程度。若凝聚度高,则保留该待筛选词;若凝聚度低,则丢弃该待筛选词。
[0143]具体地,待筛选词的凝聚度根据以下公式(2)求得:
[0144]其中,Coa代表所述待筛选词的凝聚度;n代表待筛选词的字数;
[0145]代表所述待筛选词在目标语料中的出现概率;
[0146]代表所述待筛选词的前n-1个字在目标语料中的出现概率;
[0147]代表所述待筛选词的第一个字在目标语料中的出现概率;
[0148]代表所述待筛选词的前两个字在目标语料中的出现概率;
[0149]代表所述待筛选词的后n-1个字在目标语料中的出现概率;
[0150]代表所述待筛选词的最后一个字在目标语料中的出现概率。
[0151]以“移动设备”的待筛选词为例,在计算待筛选词的凝聚度的过程中,需要计算“移”、“移动”、“移动设”、“移动设备”、“动设备”、“设备”、“备”在目标语料中的出现概率,并最终根据公式(2)得到待筛选词的凝聚度值。
[0152]可选地,第一阈值可以为人为设定,也可以根据设定的参数进行计算。
[0153]在实际应用中,字数较多的词的出现概率可能比字数较少的词的出现概率小,那么随之计算得到的字数较多的词的凝聚度可能比字数较少的词的凝聚度低。如果设定第一阈值为一固定数值,有可能会出现将字数较多的词误删除的情况。所以,在本申请一实施例中,第一阈值通过以下公式(3)计算:
[0154]thres i =T 0 e k(len(w)-2) (3)
[0155]其中,thres i 代表第一阈值;T 0 为设定的初始值;
[0156]len(W)为待筛选词的字数;k为设定的参量。
[0157]通过公式(3)可见,待筛选词的字数不同,其对应的第一阈值也会不同,从而可以动态地对第一阈值进行取值,提高筛选精度。
[0158]另外,本实施例中,凝聚度的计算量要比互信息的计算量要大,通过先计算目标语料中的每两个相邻字之间的互信息得到第一待筛选词表,再通过计算待筛选词的凝聚度对第一待筛选词表进行筛选得到第二待筛选词表,从而与先计算凝聚度再计算互信息得到待筛选词的技术方案相比,减少了计算量。
[0159]204、计算所述第二待筛选词表中的每个所述待筛选词的自由度,并将自由度小于第二阈值的待筛选词删除得到第三待筛选词表。
[0160]其中,自由度表征的是一个词的自由运用程度。前述步骤中的凝聚度,是从待筛选词内部的各个字在语料中的运用度对待筛选词进行筛选。为了使最后的结果更加精确,除去查看待筛选词的内部表现外,还需要查看待筛选词在目标语料中的外部整体表现。通过自由度可以查看待筛选词在目标语料中的整体运用程度。
[0161]本实施例中,所述待筛选词的自由度通过所述待筛选词的左邻字和右邻字在目标语料中分别出现的概率计算而得。
[0162]每个所述待筛选词的自由度,通过以下公式(4)实现:
[0163]其中,p(c)代表与每个待筛选词相邻字在目标语料中的出现概率;
[0164]L(c 1 ,c 2 ,…,c l )、R(c 1 ,c 2 ,…,c r )分别代表与每个待筛选词相邻的左侧字和右侧字。
[0165]例如“树上的叶子黄了”一句中,待筛选词为“叶子”的情形下,与该待筛选词“叶子”相邻字分别为位于“叶子”左侧的“的”和右侧的“黄”。
[0166]统计在目标语料中与待筛选词相邻字,然后分别计算与待筛选词相邻的左侧字和右侧字在目标语料中的出现概率,通过公式(4)得到每个待筛选词的自由度。
[0167]另外,第二阈值可以通过人为预先设定,例如设置为0.3。
[0168]205、输出所述第三待筛选词表。
[0169]本申请提供的中文词表构建方法,通过综合互信息、凝聚度和自由度进行对目标语料进行词表构建,降低了算法复杂度,长词识别能力强,提高了算法的效率和准确率。
[0170]其中,利用互信息构建第一待筛选词表的优点在于:消除了人为设定词长度的限制,能够准确地发现和识别长词,提高词表准确率;筛选得到待筛选词,为后续处理提高了算法效率。
[0171]在通过凝聚度得到第二待筛选词表的优点在于:可以根据预先设定的参数和待筛选词的长度动态选择第一阈值进行筛选,提高了筛选精度,有效地提高了算法的效率。
[0172]其次,本实施例通过先计算目标语料中的每两个相邻字之间的互信息得到第一待筛选词表,再通过计算待筛选词的凝聚度对第一待筛选词表进行筛选得到第二待筛选词表,从而与Ngrams算法分词后计算凝聚度的方式得到待筛选词的技术方案相比,减少了计算量。
[0173]再次,本实施例中通过自由度可以查看待筛选词在目标语料中的整体运用程度,进一步提高对待筛选词的筛选精度。
[0174]下面以一具体实施例对本申请的词表构建的方法进行说明。
[0175]实际使用时,为了得到较为精确的结果,往往需要大量的文本作为目标语料,例如10000句的文本。表1为根据目标语料得到的部分词表构建的结果。
[0176]表1
[0177]互信息分词 +凝聚度 +自由度 +凝聚度+自由度 国家79 √ √ √ 国家旅30 × × × 国家旅游30 × × × 家旅30 × × × 家旅游30 × × × 家旅游局30 × × × 旅游245 √ √ √ 旅游局30 √ √ √ 游局33 × × × 关于119 √ √ √ 关于废13 √ × × 于废13 √ × × 于废止13 √ × × 废止19 √ √ √ 的决150 × × × 决定219 √ √ √ 国家旅游局10 √ √ √ 家旅游局令10 × × × 旅游局令10 √ × × 游局令10 √ × × 局令16 √ × ×
[0178]其中,以文本子序列:《国家旅游局关于废止<导游人员管理实施办法>的决定中华人民共和国国家旅游局令第40号关于废止的决定》为例,本实施例的词表构建的方法包括:
[0179]1)计算第1个字“国”和第2个字“家”的互信息,得到“国”和“家”的互信息≥0,
[0180]2)继续计算“家”和“旅”的互信息,得到“家”和“旅”的互信息≥0,
[0181]3)继续计算“旅”和“游”的互信息,得到“旅”和“游”的互信息≥0,
[0182]4)继续计算“游”和“局”的互信息,得到“游”和“局”的互信息≥0,
[0183]5)继续计算“局”和“关”的互信息,得到“局”和“关”的互信息<0,将“国”至“局”之间任意相邻的至少两个字作为待筛选词,得到的待筛选词包括:国家、国家旅、国家旅游、国家旅游局、家旅、家旅游、家旅游局、旅游以及旅游局。
[0184]6)继续计算得到其他的待筛选词,直至到达文本子序列的结束位置。
[0185]其他的待筛选词可以根据前述实施例步骤301至305而获得,由于篇幅关系,本实施例便不再列举其他的待筛选词。
[0186]7)继续读取下一文本子序列,重复进行互信息、凝聚度和自由度的计算,直至全部文本语料的结束位置。
[0187]8)根据待筛选词生成第一待筛选词表。表2为包括本实施例中根据部分待筛选词生成的第一待筛选词表。
[0188]表2
[0189]9)计算所述第一待筛选词表中的各个待筛选词的凝聚度,并将凝聚度小于第一阈值的待筛选词删除得到第二待筛选词表。
[0190]参见表1中的第二列,对号表示该待筛选词的凝聚度大于等于第一阈值,错号表示该待筛选词的凝聚度小于第一阈值。根据表2所述的第一待筛选词表得到的第二待筛选词表如表3所示。
[0191]表3
[0192]9)计算第二待筛选词表中的每个所述待筛选词的自由度,并将自由度小于第二阈值的待筛选词删除得到第三待筛选词表。
[0193]参见表1中的第4列,对号表示第二待筛选词表中的待筛选词的自由度大于等于第二阈值,错号表示第二待筛选词表中的待筛选词的自由度小于第二阈值。根据表3所示的第二待筛选词表得到的第三待筛选词表如表4所示。
[0194]表4
[0195]由本实施例的方法可见,本实施例的中文词表构建方法通过综合互信息、凝聚度和自由度进行对目标语料进行词表构建,降低了算法复杂度,长词识别能力强,提高了算法的效率和准确率。
[0196]并且,本实施例通过先计算目标语料中的每两个相邻字之间的互信息得到第一待筛选词表,再通过计算待筛选词的凝聚度对第一待筛选词表进行筛选得到第二待筛选词表,从而与Ngrams算法得到待筛选词的技术方案相比,减少了计算量。
[0197]本申请一实施例还提供一种词表构建的装置,参见图4,包括:
[0198]语料读取模块401,用于读取目标语料;
[0199]第一待筛选词表生成模块402,用于计算目标语料中每两个相邻字之间的互信息,根据互信息大于等于0的至少两个相邻字生成待筛选词,并根据待筛选词生成第一待筛选词表;
[0200]第二待筛选词表生成模块403,用于计算所述第一待筛选词表中的各个待筛选词的凝聚度,并将凝聚度小于第一阈值的待筛选词删除得到第二待筛选词表;
[0201]第三待筛选词表生成模块404,用于计算所述第二待筛选词表中的每个所述待筛选词的自由度,并将自由度小于第二阈值的待筛选词删除得到第三待筛选词表;
[0202]输出模块405,用于输出所述第三待筛选词表。
[0203]可选地,所述第一待筛选词表生成模块402通过两个相邻字在目标语料中分别出现的概率以及相邻出现的概率计算得到所述两个相邻字之间的互信息。
[0204]可选地,所述目标语料包括至少一个文本子序列;
[0205]参见图5,第一待筛选词表生成模块402包括:
[0206]第一互信息计算模块4021,用于确定在加载的文本子序列中的开始位置i和结束位置j,计算第i个字和第j个字之间的互信息,若互信息≥0,执行第二互信息计算模块4022,若互信息<0,执行第一判断模块4024,其中,i,j均为正整数,i≥1,j=i+1;
[0207]第二互信息计算模块4022,用于将结束位置j自增1,并计算第j-1个字和第j个字之间的互信息,若互信息≥0,继续执行第二互信息计算模块4022,若互信息<0,执行待筛选词确定模块4023;
[0208]待筛选词确定模块4023,用于将第i个字至第j-1个字之间任意相邻的至少两个字作为待筛选词,然后执行第一判断模块4024;
[0209]第一判断模块4024,用于判断结束位置j是否到达文本子序列的结束位置,若是,执行第二判断模块4026,若否,执行赋值模块4025;
[0210]赋值模块4025,用于取i=j,返回第一互信息计算模块4021;
[0211]第二判断模块4026,用于判断当前加载的文本子序列是否为最后一个文本子序列,若是,执行结束模块4028,若否,执行序列加载模块4027;
[0212]序列加载模块4027,用于加载下一个文本子序列,并执行第一互信息计算模块4021;
[0213]结束模块4028,用于结束流程。
[0214]可选地,所述待筛选词确定模块4023还被配置为:
[0215]待筛选词选择模块,用于将所述文本子序列中的第i个字至第k个字作为待筛选词,其中,k为正整数且i+1≤k≤j-1;
[0216]循环模块,用于将i自增1,判断自增1后的i是否小于j,若是,继续执行所述待筛选词选择模块,若否,执行第一判断模块。
[0217]可选地,所述第一待筛选词表生成模块402还被配置为:
[0218]所述第一待筛选词表生成模块402判断所述第一待筛选词表是否存在该待筛选词中;
[0219]若否,则将该待筛选词加入至第一待筛选词表中;
[0220]若是,丢弃该待筛选词。
[0221]可选地,所述第二待筛选词表生成模块403计算所述第一待筛选词表中的各个待筛选词的凝聚度,包括:
[0222]所述第二待筛选词表生成模块403计算所述待筛选词中的前p个字在目标语料中的出现概率以及后q个字在目标语料中的出现概率,然后计算得到所述待筛选词的凝聚度,其中,p,q均为正整数,且1≤m,q≤待筛选词的字数。
[0223]可选地,第一阈值通过上述公式(3)计算而得。
[0224]可选地,所述第三待筛选词表生成模块404通过计算所述待筛选词的左邻字和右邻字在目标语料中分别出现的概率得到所述待筛选词的自由度。
[0225]本申请提供的词表构建的装置,通过综合互信息、凝聚度和自由度进行对目标语料进行词表构建,降低了算法复杂度,长词识别能力强,提高了算法的效率和准确率。
[0226]其中,利用互信息构建第一待筛选词表的优点在于:消除了人为设定词长度的限制,能够准确地发现和识别长词,提高词表准确率;筛选得到待筛选词,为后续处理提高了算法效率。
[0227]在通过凝聚度得到第二待筛选词表的优点在于:可以根据待筛选词的长度动态选择第一阈值进行筛选,提高了筛选精度,有效地提高了算法的效率。
[0228]其次,本实施例通过先计算目标语料中的每两个相邻字之间的互信息得到第一待筛选词表,再通过计算待筛选词的凝聚度对第一待筛选词表进行筛选得到第二待筛选词表,从而与Ngrams算法得到待筛选词的技术方案相比,减少了计算量。
[0229]上述为本实施例的一种词表构建的装置的示意性方案。需要说明的是,该词表构建的装置的技术方案与上述的中文词表构建方法的技术方案属于同一构思,词表构建的装置的技术方案未详细描述的细节内容,均可以参见上述中文词表构建方法的技术方案的描述。
[0230]本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现以下步骤:
[0231]读取目标语料;
[0232]计算目标语料中每两个相邻字之间的互信息,根据互信息大于等于0的至少两个相邻字生成待筛选词,并根据待筛选词生成第一待筛选词表;
[0233]计算所述第一待筛选词表中的各个待筛选词的凝聚度,并将凝聚度小于第一阈值的待筛选词删除得到第二待筛选词表;
[0234]计算所述第二待筛选词表中的每个所述待筛选词的自由度,并将自由度小于第二阈值的待筛选词删除得到第三待筛选词表;
[0235]输出所述第三待筛选词表。
[0236]本申请一实施例还提供一种芯片,其存储有计算机指令,该指令被处理器执行时实现如上所述词表构建的方法的步骤。
[0237]本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述中文词表构建方法的步骤。
[0238]上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的中文词表构建方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述中文词表构建方法的技术方案的描述。
[0239]所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0240]需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
[0241]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0242]以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。