CN102063423B - 一种消歧的方法和装置 - Google Patents
一种消歧的方法和装置 Download PDFInfo
- Publication number
- CN102063423B CN102063423B CN200910238150.5A CN200910238150A CN102063423B CN 102063423 B CN102063423 B CN 102063423B CN 200910238150 A CN200910238150 A CN 200910238150A CN 102063423 B CN102063423 B CN 102063423B
- Authority
- CN
- China
- Prior art keywords
- word
- chain
- ambiguity
- node
- disambiguation
- 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
Landscapes
- Machine Translation (AREA)
Abstract
本发明的实施例提供了一种消歧的方法和装置,可解决现有技术中消歧速度慢的问题。所述方法包括:从当前字开始从待切分串中获取最大链长的歧义链;利用动态规划算法进行消歧。由于本发明无需标注语料,只需从一般语料中统计出词频,利用词典获取到歧义链,在歧义链中使用动态规划方法进行歧义消解。由于是在歧义链中消歧,而并非整个句子,所以极大的降低了处理复杂度,提高了处理效率。
Description
技术领域
本发明涉及一种消歧技术,尤其涉及一种消歧的方法和装置。
背景技术
歧义是指同一个字符串存在不止一种切分形式,即,一个字符串可以有多种切分形式。随着词条量的增大,歧义也越来越大,如“南方城市南京”,由于“南方城”是一个小区名称,词典中收集了该词条,正向最大匹配导致切分错误“南方城/市/南京”,而正确的切分为“南方/城市/南京”,为了得到正确的切分为“南方/城市/南京”,需要对“南方城市南京”进行消歧。
一般来说,歧义按照结构可以分为两种歧义类型:交集型歧义(交叉歧义)和组合型歧义(覆盖歧义)。有研究者通过统计发现,在这两种歧义结构中,交叉歧义占到了总歧义字段的86%,而在交叉歧义中大约有94%是伪歧义,只有6%的交叉歧义是真歧义。因此,目前中文分词中歧义消除工作的重点通常集中于如何消除交叉歧义。
在现有技术中,消歧策略主要有基于规则的方法和基于统计的方法。
使用基于规则的方法可排除切分标注中的歧义,这是一种很常用的方法。通过规则可以在整个句子的范围内查找对于排歧有用的信息,非常灵活。但规则的方法主要依赖于规则的获取,在获取规则时需要兼顾完备性与合理性,当规则的数量达到一定规模时,规则之间还会发生冲突,所以基于规则的方法在获取规则和解决规则之间冲突上都面临很大的困难.
基于统计的方法是从大规模的标注语料中统计n元语法模型,利用概率计算,达到消歧的目的。缺点是需要大规模的标注语料;以整个句子为单位计算概率,降低了处理速度。
发明内容
本发明的实施例提供了一种消歧的方法和装置,可解决现有技术中消歧速度慢的问题。
本发明的实施例提供了一种消歧的方法,包括:从当前字开始从待切分串中获取最大链长的歧义链;利用动态规划算法对所述歧义链进行消歧,其中,利用动态规划算法对所述歧义链进行消歧具体包括:对所述歧义链进行分词以获得切分的词典词,并记录各个词典词在歧义链中位置和词长,为每一个词典词赋上前驱信息、切分代价和累计频度,歧义链中的每一单字也作为一个词;根据词的位置和词长、切分代价和累计频度确定歧义链的回溯起始节点;从回溯起始节点根据前驱信息开始回溯,一直回溯到歧义链的首字,得到回溯路径上的词的组合。
本发明的实施例还提供了一种消歧的装置,包括:获取单元,用于从当前字开始从待切分串中获取最大链长的歧义链;消歧单元,用于利用动态规划算法对所述歧义链进行消歧;其中,所述消岐单元具体包括:分词单元,用于对歧义链进行分词,并记录词的位置和词长,为每一个词赋上前驱信息、切分代价和累计频度,歧义链中的每一单字也作为一个词;确定单元,用于根据词的位置和词长,切分代价和累计频度确定歧义链的回溯起始节点;结果获得单元,用于从回溯起始节点根据前驱信息开始回溯,一直回溯到歧义链的首字,得到回溯路径上的词的组合。
由于本发明无需标注语料,只需从一般语料中统计出词频,利用词典获取到歧义链,在歧义链中使用动态规划方法进行歧义消解。由于是在歧义链中消歧,而并非整个句子,所以极大的降低了处理复杂度,提高了处理效率。
附图说明
图1示出了本发明实施例的消歧流程;
图2示出了本发明实施例的获得最大歧义链的流程;
图3示出了本发明实施例的根据动态规划算法的切分结果;
图4示出了本发明实施例的消歧装置。
具体实施方式
为了便于本领域一般技术人员理解和实现本发明,现结合附图描绘本发明的实施例。
实施例一
如图1所示,本实施例提供了一种消歧方法,包括如下步骤:
步骤11、获取最大链长的歧义链。从当前字开始,以最大匹配方式将当前字为首的待切分串中的词与词典中的词条进行匹配,以获取当前字开头的词典词;将获取的词典词最后一个字作为当前字,以最大匹配方式将以当前字为首的待切分串中的词与词典中的词条进行匹配,直至获取的词典词为单字且歧义链长大于0为止。所述词典包括词和所有的单字。所述的字既可以是汉字,也可以是英文字母。
如图2所示,获取最大链长的歧义链的步骤如下:
步骤201、将待切分串首个字作为当前字。
步骤202、将歧义链的链长设置为-1。
步骤203、从当前字开始,以最大匹配方式将待切分串与词典中的词条进行匹配,以获取该字开头的词典词。
步骤204、判断步骤203获取的词典词是否为单字,如果是,则执行步骤207;否则,执行步骤205。
步骤205、将链长加1。
步骤206、将当前词典词最后一个字作为当前字,并返回步骤203。
步骤207、判断链长是否大于0,若是,则执行步骤12:对当前歧义链进行消歧,接着,执行步骤208,否则,执行步骤208。
步骤208、将当前字的下一个字作为当前字。
步骤209、判断当前字是否为空,若是,则执行步骤210:结束,否则,返回步骤202。
步骤12、利用动态规划算法对步骤11获得的歧义链进行消歧。
在词典规模较大时,通过步骤11可以获得具有最大链长的歧义链,对歧义链使用动态规划算法进行消歧,动态规划的过程可以通过一个有向图来表示,图中的节点表示歧义链可能的切分单元,即一个词,每个节点都带有前驱信息,词的位置和词长,及切分代价和累计频度。具体而言,根据字典中的词对歧义链进行所有可能的切分以获得切分的词典词,并记录各个词典词在歧义链中的位置和词长,将每一种切分结果(即获得的词典词)作为一节点,并对每一节点赋上前驱信息、切分代价和累计频度,所述前驱信息、切分代价和累计频度的计算方法如下:
设wi为一个词,则wi的切分代价函数用表示,计算公式如下:
在公式中,k1和k2表示的取值。实验结果表明,当k1和k2分别取3和2时具有较好的区分度。
在动态规划时,词典中每个词及单个字都是一个节点,为了获取前驱节点的下标和当前节点的累积切分代价和累积频度,使用下列的伪代码进行计算。
对于歧义链中的每个字
为了获得正确的切分结果,首先选择切分路径。为了选择最佳切分路径,首先根据前驱信息、切分代价和累计频度确定回溯的起始节点,下面先给出终结节点的定义:
对所有节点,词的位置与词长之和等于歧义链的长度时,该节点为终结节点。所述词的位置是指该词的首字在歧义链中的位置。
当终结节点存在多个时,在终结节点中选择累积切分代价最小的节点作为回溯的起始节点,当累积切分代价相等时,选择累积频度最大的节点作为回溯起始节点。
从回溯起始节点开始,按照节点中记录的前驱节点的下标进行回溯,直到节点没有前驱为止,由此得出整个歧义链的切分路径。根据切分路径,可以得到歧义链的切分结果。
下面通过一个实例来描述本发明实施例的消歧方法。以“公司法务部分的工作”为例进行说明。
设词典中包含如下词条,“公司、公司法、司法、法务、法务部、部分、工作”,并从语料库中统计出相应的频度。
用二维表来模拟使用动态规划算法消歧的有向图,在处理字符串S=C0 C1C2…Cn时,其中,Ci(0≤i<n)表示字符串中第i+1个字,用Node[i][j]表示二维表中的一个节点,其中0≤i<n,0≤j<当前词开头的词典词数量,每个节点包含3组数据域,分别为前驱节点的下标(i,j),当前位置和当前词长[pos,len]、累积切分代价和累积频度{cost,freq}。起始位置的前驱节点下标用(-1,-1)表示。设S的长度为L,则当pos+len=L时,为终结节点。在终结节点中选择cost最小(cost相等时选择freq最大)的节点作为最佳结果。
由于“公司法”与“法务部”有交叉,“法务部”与“部分”有交叉,所以链长为2,歧义链为“公司法务部分”。链长大于0,说明有歧义,使用动态规划算法对该歧义链消歧。在消歧过程中,对于单字作为一个词参与计算。动态规划算法的切分过程如表1所示:
表1 动态规划算法切分结果
用二维表来表示动态规划算法切分结果,计算结果如表1所示,其中i的取值从0至5,分别表示歧义链中每个字的位置,为了便于理解,下标i对应的每个字的位置用括号给出,如i=0时,对应于歧义链中字符串“公”的位置,i=1时,对应于歧义链中字符串“司”的位置,等等。j的取值取决于歧义链中具有首字相同的词的个数,如在歧义链“公司法务部分”中,首字相同词的个数最多的分别是以“公”开头的词的个数和以“法”开头的词的个数,都为3,所以j的取值为0到2。
在表1中,每个单元格表示一个节点,每个节点包含3组数据域,如节点Node[0][0]中,(-1,-1)表示当前节点是起始节点,没有前驱节点,[0-6]表示当前词在歧义链中的位置是0,词长为6个字节,其中一个汉字占2个字节,当前词为三个汉字:公司法,{2,6003}表示当前累积切分代价为2,累积频度为6003;再如节点Node[1][0]中,(0,2)表示前驱节点为Node[0][2],[2-4]表示当前词在歧义链中的位置是2,词长为4个字节,当前词为司法,{5,13330}表示当前累积切分代价为5,累积频度为13330。
该例中歧义链字符串的长度为12个字节,根据方括号中位置和长度之和是否等于歧义链字符串的长度进行判断,如果相等,则为终结节点,否则非终结节点,由此可以得出表中Node[4][0]和Node[5][0]为终结节点。根据累积切分代价最小原则,确定Node[4][0]为回溯起始节点。根据节点小括号中前驱节点的下标回溯可得出最终的切分结果。回溯是从后向前,如表1所示,从回溯起始节点Node[4][0]开始,根据Node[4][0]中的位置和长度信息“[8-4]”,定位到歧义链字符串的第8个字节,词的长度为4,即表示的是“部分”,前驱节点的下标是(2,1);根据前驱节点的下标回溯到Node[2][1],根据Node[2][1]中的位置和长度信息“[4-4]”,定位到歧义链字符串的第4个字节,词的长度为4,即表示的是“法务”,前驱节点的下标是(0,1);根据前驱节点的下标回溯到Node[0][1],根据Node[0][1]中的位置和长度信息“[0-4]”,定位到歧义链字符串的第0个字节,即歧义链的起始处,词的长度为4,即表示的是“公司”,前驱节点的下标是(-1,-1);前驱节点的下标为(-1,-1)时,表示没有前驱节点,回溯终止。由于回溯是从后向前的,所以倒序输出切分结果就是消歧后的结果。本例中歧义链“公司法务部分”的切分结果为“公司/法务/部分”。对于非歧义链部分的字符串,使用最大匹配方法进行切分,所以本例“公司法务部分的工作”的切分结果为“公司/法务/部分/的/工作”。综上所述,利用动态规划算法进行消歧过程如下,对歧义链中的词典词根据切分代价函数计算累积切分代价,根据代价最小原则在终结节点中选择回溯起始节点,从回溯起始节点开始回溯,一直回溯到歧义链的首字,得到回溯路径上的词的组合,该组合即是消歧结果。
如果将表1中当前节点和前驱节点用连线连起来,当前位置和当前词长映射到字符串中的片段,累积切分代价和累积频度依然用{cost,freq}表示,可得出如图3所示的连接关系。
图3中节点“公司法”对应于表1中的节点Node[0][0],为起始节点,没有前驱节点;而图3中节点“司法”对应于表1中的节点Node[1][0],由于在表1中Node[1][0]的前驱节点为Node[0][2],所以图3中将节点“司法”与节点“公”相连。同理,按照当前节点与前驱节点的关系进行连线,则得到图3。相应的,图3中的终结节点为“部分”“分”。图3中“部分”对应于表1中的Node[4][0],即回溯起始节点,前驱节点通过左侧的连线来表示,根据连线确定前一个词为“法务”,再通过“法务”左侧的连线找到“公司”,由于“公司”左侧不再有连线,所以回溯结果为“部分/法务/公司”,将回溯结果倒序输出,即“公司/法务/部分”。
实施例二
如图4所示,本实施例公开了一种消歧的装置,包括:获取单元,用于从当前字开始从待切分串中获取最大链长的歧义链;消歧单元,用于利用动态规划算法对所述歧义链进行消歧。
所述获取单元具体包括:第一设置单元,用于将歧义链长设为-1;匹配单元,用于判断当前字是否为空,如是,则结束本过程,否则,从当前字开始,以最大匹配方式将当前字为首的待切分串中的词与词典中的词条进行匹配,以获取所述当前字开头的词典词;第一判断单元,用于判断获取的词典词是否为单字,若是,则启动第二判断单元,否则,歧义链链长加1,启动设置单元;第二判断单元,用于判断歧义链链长是否大于0,若是,则返回,利用动态规划算法对所述歧义链进行消歧,否则,将当前词的下一个字作为当前字,启动匹配单元;
设置单元,用于将所述匹配单元获取的词典词最后一个字作为当前字,启动匹配单元。
所述消歧单元具体包括:对歧义链进行分词,并记录词的位置和词长,为每一个词赋上前驱信息、切分代价和累计频度,歧义链中的每一单字也作为一个词;确定单元,用于根据记录词的位置和词长、切分代价和累计频度确定歧义链的回溯起始节点;结果获得单元,用于从回溯起始节点根据前驱信息开始回溯,一直回溯到歧义链的首字,得到回溯路径上的词的组合。
本实施例的各个单元的工作原理可参照实施例一的描述。
由于本发明无需标注语料,只需从一般语料中统计出词频,利用词典获取到歧义链,在歧义链中使用动态规划方法进行歧义消解。由于是在歧义链中消歧,而并非整个句子,所以极大的降低了处理复杂度,提高了处理效率。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,在不脱离本发明的精神和实质的情况下,就可使本发明有许多变形和变化,本发明的范围由所附的权利要求来限定。
Claims (4)
1.一种消歧的方法,其特征在于,包括:
从当前字开始从待切分串中获取最大链长的歧义链;
利用动态规划算法对所述歧义链进行消歧,其中,利用动态规划算法对所述歧义链进行消歧具体包括:对所述歧义链进行分词以获得切分的词典词,并记录各个词典词在歧义链中位置和词长,为每一个词典词赋上前驱信息、切分代价和累计频度,歧义链中的每一单字也作为一个词;对所有节点,词的位置与词长之和等于歧义链的长度时,该节点为终结节点,所述词的位置是指该词的首字在歧义链中的位置;当终结节点存在多个时,在终结节点中选择累积切分代价最小的节点作为回溯的起始节点,当累积切分代价相等时,选择累积频度最大的节点作为回溯起始节点;从回溯起始节点根据前驱信息开始回溯,一直回溯到歧义链的首字,得到回溯路径上的词的组合。
2.根据权利要求1所述的方法,其特征在于,所述从当前字开始从待切分串中获取最大链长的歧义链具体包括:
将歧义链长设为-1;
步骤A、判断当前字是否为空,如是,则结束本过程,否则,从当前字开始,以最大匹配方式将当前字为首的待切分串中的词与词典中的词条进行匹配,以获取所述当前字开头的词典词;
判断获取的词典词是否为单字,若是,转步骤B,否则,将获取的词典词最后一个字作为当前字,歧义链链长加1,返回步骤A;
步骤B、判断歧义链链长是否大于0,若歧义链链长大于0,则返回:利用动态规划算法对所述歧义链进行消歧,否则,将当前词的下一个字作为当前字,返回步骤A。
3.一种消歧的装置,其特征在于,包括:
获取单元,用于从当前字开始从待切分串中获取最大链长的歧义链;
消歧单元,用于利用动态规划算法对所述歧义链进行消歧;
其中,所述消歧单元具体包括:
分词单元,用于对歧义链进行分词,并记录词的位置和词长,为每一个词赋上前驱信息、切分代价和累计频度,歧义链中的每一单字也作为一个词;
确定单元,用于对所有节点,词的位置与词长之和等于歧义链的长度时,该节点为终结节点,所述词的位置是指该词的首字在歧义链中的位置;当终结节点存在多个时,在终结节点中选择累积切分代价最小的节点作为回溯的起始节点,当累积切分代价相等时,选择累积频度最大的节点作为回溯起始节点;
结果获得单元,用于从回溯起始节点根据前驱信息开始回溯,一直回溯到歧义链的首字,得到回溯路径上的词的组合。
4.根据权利要求3所述的装置,其特征在于,所述获取单元具体包括:
第一设置单元,用于将歧义链长设为-1;
匹配单元,判断当前字是否为空,如是,则结束本过程,否则,用于从当前字开始,以最大匹配方式将当前字为首的待切分串中的词与词典中的词条进行匹配,以获取所述当前字开头的词典词;
第一判断单元,用于判断获取的词典词是否为单字,若是,则启动第二判断单元,否则,歧义链链长加1,启动设置单元;
第二判断单元,用于判断歧义链链长是否大于0,若是,则返回:利用动态规划算法对所述歧义链进行消歧,否则,将当前词的下一个字作为当前字,启动匹配单元;
设置单元,用于将所述匹配单元获取的词典词最后一个字作为当前字,启动匹配单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910238150.5A CN102063423B (zh) | 2009-11-16 | 2009-11-16 | 一种消歧的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910238150.5A CN102063423B (zh) | 2009-11-16 | 2009-11-16 | 一种消歧的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063423A CN102063423A (zh) | 2011-05-18 |
CN102063423B true CN102063423B (zh) | 2015-03-25 |
Family
ID=43998704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910238150.5A Active CN102063423B (zh) | 2009-11-16 | 2009-11-16 | 一种消歧的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063423B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324612B (zh) * | 2012-03-22 | 2016-06-29 | 北京百度网讯科技有限公司 | 一种分词的方法及装置 |
CN103514150A (zh) * | 2012-06-21 | 2014-01-15 | 富士通株式会社 | 识别具有组合型歧义的歧义词的方法和装置 |
CN107424612B (zh) * | 2017-07-28 | 2021-07-06 | 北京搜狗科技发展有限公司 | 处理方法、装置和机器可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193779A (zh) * | 1997-03-13 | 1998-09-23 | 国际商业机器公司 | 中文语句分词方法及其在中文查错***中的应用 |
US6879951B1 (en) * | 1999-07-29 | 2005-04-12 | Matsushita Electric Industrial Co., Ltd. | Chinese word segmentation apparatus |
-
2009
- 2009-11-16 CN CN200910238150.5A patent/CN102063423B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193779A (zh) * | 1997-03-13 | 1998-09-23 | 国际商业机器公司 | 中文语句分词方法及其在中文查错***中的应用 |
US6879951B1 (en) * | 1999-07-29 | 2005-04-12 | Matsushita Electric Industrial Co., Ltd. | Chinese word segmentation apparatus |
Non-Patent Citations (3)
Title |
---|
《一种快速的交集型歧义检测方法》;刘健等;《计算机应用研究》;20081130;第25卷(第11期);第3260-3261页 * |
《一种能够检测所有交叉歧义的汉语分词算法》;王显芳等;《电子学报》;20040131;第32卷(第1期);第50-54页 * |
《基于动态规划的最小代价路径汉语自动分词》;孙晓等;《小型微型计算机***》;20060331;第27卷(第3期);第517-519页,图1 * |
Also Published As
Publication number | Publication date |
---|---|
CN102063423A (zh) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460787B (zh) | 一种话题提取方法、装置、终端设备及存储介质 | |
CN105426539B (zh) | 一种基于词典的lucene中文分词方法 | |
CN106649597B (zh) | 一种基于图书内容的图书书后索引自动构建方法 | |
CN107832229A (zh) | 一种基于nlp的***测试用例自动生成方法 | |
CN103235774B (zh) | 一种科技项目申请书特征词提取方法 | |
US9208218B2 (en) | Methods and apparatuses for generating search expressions from content, for applying search expressions to content collections, and/or for analyzing corresponding search results | |
CN106569993A (zh) | 一种挖掘领域术语间上下位关系的方法及装置 | |
CN102214166A (zh) | 基于句法分析和层次模型的机器翻译***和方法 | |
CN108829658A (zh) | 新词发现的方法及装置 | |
CN104572849A (zh) | 基于文本语义挖掘的标准化自动建档方法 | |
CN102063424A (zh) | 一种中文分词方法 | |
CN104268200A (zh) | 一种基于深度学习的非监督命名实体语义消歧方法 | |
Wu et al. | Structural opinion mining for graph-based sentiment representation | |
CN107229668A (zh) | 一种基于关键词匹配的正文抽取方法 | |
CN103150381B (zh) | 一种高精度汉语谓词识别方法 | |
CN105912570B (zh) | 基于隐马尔可夫模型的英文简历关键字段抽取方法 | |
CN109145260A (zh) | 一种文本信息自动提取方法 | |
CN104199965A (zh) | 一种语义信息检索方法 | |
CN113806531B (zh) | 药物关系分类模型构建方法、药物关系分类方法及*** | |
US9110852B1 (en) | Methods and systems for extracting information from text | |
CN106528524A (zh) | 一种基于MMseg算法与逐点互信息算法的分词方法 | |
CN110188359B (zh) | 一种文本实体抽取方法 | |
CN107463711A (zh) | 一种数据的标签匹配方法及装置 | |
CN103106211B (zh) | 客户咨询文本的情感识别方法及装置 | |
CN108647199A (zh) | 一种地名新词的发现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200519 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 100080 Beijing city Haidian District No. 3 Suzhou Street Daheng Technology Building South 18 Patentee before: AUTONAVI SOFTWARE Co.,Ltd. |