首页 百科知识 “多轮次分词法”

“多轮次分词法”

时间:2024-09-17 百科知识 版权反馈
【摘要】:A、所谓“多轮次分词”,就是不一次把一个语句的分词工作做完,而是分成几次完成。为了配合后面的语义识别,多轮次分词还可以按词类进行。显然,跳跃分词与多轮次分词是相关的。只要合理的构造每轮次分词的词库,在多轮次分词过程中,分词操作就会合理地跳跃,把我们希望先分出来的词汇先分出来的。于是我产生“多轮次分词”的想法。采用多轮次分词方式,相当于程序跳着分词,它可以先照顾歧义最大的分词方式。

我曾经想采用“最小分词法”进行分词,那是一种先进行一字一词的分词,只把一些固定用法的词汇,一些容易产生分词歧义的词汇先分出来的机械分词方式。但是在设计结束,审查这个方法的时候,发现它与最大匹配法很类似。只是它除去处理较大词汇外,其余均做一字一词处理,与最大匹配法不同。

但是它的优点是不需要很大的分词库。

后来我又想在“最小分词法”后采用词汇合成,结果在程序设计以后,发现它不过是按词典进行第二次分词,并没有真正实现词汇合成。从词库容量的角度看,又把第一次最小分词省掉的词库词汇添加了进去。在节省词库容量上,第二次分词没有什么贡献。

但是,由于第一次分词后的次会不会被再次分词,如果第一次分词中没有语义问题,这种二次分词的处理方式就已经消除了歧义的产生。

这意味着什么?反复思索后我发现这意味着两个相关的思路:一个是多轮次分词的思路,另一个是跳跃分词的思路。

A、所谓“多轮次分词”,就是不一次把一个语句的分词工作做完,而是分成几次完成。每一次分词选择不同的分词库,彼此不同。把专有名词、容易出现歧义的词汇,放在第一个分词库中,优先进行分词。把不容易产生歧义的、不是专用名词的词汇放在另一些词汇库中,在后面轮次的分词中进行分词。

如果发现第一次分词后剩下的还有歧义发生的可能,可以把这部分词汇再构成一个分词库,进行第二轮次分词,然后依据词汇发生歧义的可能性(也可以叫做权重)分设词库,分轮次进行分词。

为了配合后面的语义识别,多轮次分词还可以按词类进行。例如在后几轮分词时把介词连词和助词分出来。就会很方便。介词往往组成介词词组,在合成词组时用处极大。助词在终止语句、构成词组上也作用很大。连词则一般只起连接作用,自身对语义影响较小。把它们在第二、三轮次分出来。以后的理解、识别语义工作就好进行了。

顺便指出一点:除去专有词汇、容易发生歧义的词汇外,我不主张把词组作为分词的单位。我主张用合成词组的方式实现对词组的区分。这样就能够把语义理解与分词两步合成为一步。让程序在理解语义的情况下,“看到”有意义的词组,而不是仅仅把词组看成字符串切割出来。

B、所谓的“跳跃分词”就是打破语句的自然字符顺序,进行分词。而多轮次分词正是实现这个目标的好方式。

比如,在第一次分词时,一个长的专有词汇位于词库的较前位置,它就会率先被分出来,而语句前面的字符,因此在词库中没有匹配的词汇(第一次分词库的词汇很少),就只能按一字一词处理。这就相当于分词跳过前面的字符串,直接去分那些专有词汇或容易产生歧义的词汇。

请注意:关于“第一轮次分词”,我们以后还要详细讨论。

显然,跳跃分词与多轮次分词是相关的。只要合理的构造每轮次分词的词库,在多轮次分词过程中,分词操作就会合理地跳跃,把我们希望先分出来的词汇先分出来的。

单独的依靠检索分词(机械分词),由于缺乏智能,缺乏理解,势必会产生很多问题。但是过早的引入思维、理解等操作,又会同时引入一大堆经验库,使得程序过于庞大。于是我产生“多轮次分词”的想法。

采用多轮次分词方式,相当于程序跳着分词,它可以先照顾歧义最大的分词方式。而我们可以根据经验,把可能产生歧义的分词形式安排在靠前的轮次中消除,效果显然会更高。采用多轮次分词也不会加大存储容量的负担。只是把词汇按轮次分成几个词库保存,按不同轮次进行分词而已。

从人阅读语句的经验看,善于阅读的人也不是按语句顺序分词的,他们也是采用跳跃的方式挑选词汇,他们优先选择的词汇(或词组)也和我们多轮次分词安排的词库相差不多。

 


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈