本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。 Elasticsearch: 权威指南 » 处理人类语言 » 将单词还原为词根 » 字典词干提取器 « 词干提取算法 Hunspell 词干提取器 »
字典词干提取器编辑
字典词干提取器 在工作机制上与 算法化词干提取器 完全不同。 不同于应用一系列标准规则到每个词上,字典词干提取器只是简单地在字典里查找词。理论上可以给出比算法化词干提取器更好的结果。一个字典词干提取器应当可以:
-
返回不规则形式如
feet
和mice
的正确词干 -
区分出词形相似但词义不同的情形,比如
organ
andorganization
实践中一个好的算法化词干提取器一般优于一个字典词干提取器。应该有以下两大原因:
- 字典质量
一个字典词干提取器再好也就跟它的字典一样。 据牛津英语字典网站估计,英语包含大约75万个单词(包含变音变形词)。电脑上的大部分英语字典只包含其中的 10% 。
词的含义随时光变迁。
mobility
提取词干mobil
先前可能讲得通,但现在合并进了手机可移动性的含义。字典需要保持最新,这是一项很耗时的任务。通常等到一个字典变得好用后,其中的部分内容已经过时。字典词干提取器对于字典中不存在的词无能为力。而一个基于算法的词干提取器,则会继续应用之前的相同规则,结果可能正确或错误。
- 大小与性能
字典词干提取器需要加载所有词汇、 所有前缀,以及所有后缀到内存中。这会显著地消耗内存。找到一个词的正确词干,一般比算法化词干提取器的相同过程更加复杂。
依赖于不同的字典质量,去除前后缀的过程可能会更加高效或低效。低效的情形可能会明显地拖慢整个词干提取过程。
另一方面,算法化词干提取器通常更简单、轻量和快速。
如果你所使用的语言有比较好的算法化词干提取器,这通常是比一个基于字典的词干提取器更好的选择。对于算法化词干提取器效果比较差(或者压根没有)的语言,可以使用拼写检查(Hunspell)字典词干提取器,下一个章节会讨论。
« 词干提取算法 Hunspell 词干提取器 »Getting Started Videos
- Starting Elasticsearch
- Introduction to Kibana
- Logstash Starter Guide
官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/dictionary-stemmers.html