在英文的句子中,由于单词之间留有空白,所以通过用空白划分句子就可以提取出句中的单词。

在中文的句子中,由于各单词是词间不留空白连续书写的,所以就需要使用不同于英文的方法,才能将句子分割成单词或字符的序列。

在英文中将分割句子这种行为称为Segmentation或Tokenization。严格地来讲这两个词的含义并不相同,但是在有关倒排索引的上下文中,人们似乎并不怎么在使用上对它们加以区分。句子分割后产生的一个个单词则称为词元(Token)或词项(Term)。

词素解析(Morphological Analysis)分割法

将句子分割为“词素”序列的方法。

词素是语言中含有意义的最小单位。

例如,如果使用词素解析分割法分割“全文搜索引擎”这段文本,那么可以得到如下结果。

  1. 全文 搜索 引擎

近几年,在词素解析上,一般采用的是机器学习的方法。

机器学习的过程是先学习由手工作业正确分割句子后得到的数据,然后推理出应该如何分割未知的句子(以及如何标注词性等)。机器学习中的有些方法采用了隐马尔可夫模型(Hidden Markov Model),有些采用了条件随机场(Conditional Random Field)概率模型。

优点:

  • 分割出的词元数更少

缺点:

  • 漏报:尽管查询实际就包含在文档中,但就是找不到与查询相匹配的内容

结论:

  • 一般来说在正式的文档中精度非常高
  • 大量口语的表达式精度会大幅度下降的。

N-gram分割法

将句子分割成由N个字符组成的片段序列的方法,每个片段称作一个N-gram。N的取值通常为2或3。

优点:

  • 基本上只要查询包含在文档中,就一定能找得到

缺点:

  • 产生的词元通常较多
  • 误报:检索“华山”,却也能找到包含“九华山”的文档。

uni-gram(一元语法)

分割“全文搜索引擎”这段文本,那么可以得到如下结果。

bi-gram(二元语法)

分割“全文搜索引擎”这段文本,那么可以得到如下结果。

  1. 全文 文搜 搜索 索引 引擎

tri-gram(三元语法)

分割“全文搜索引擎”这段文本,那么可以得到如下结果。

  1. 全文搜 文搜索 搜索引 索引擎

词库分割法

将句子切割为词库中出现过的词。

文档更新时间: 2020-03-11 06:07   作者:admin