Hanlp自然言语处理中的词典格式阐明
ImaginationTech
2019-03-15 12:35:59
图灵汇官网
HanLP词典详解
HanLP是一款广泛使用的自然语言处理工具,其中包含了许多词典。这些词典的格式非常相似,通常是以文本文档的形式存储,便于随时进行修改和更新。本文将详细介绍HanLP中的词典格式,以便用户能够根据自身需求进行自定义。
基本格式
词典主要分为两种类型:词频词性词典和词频词典。
词频词性词典
- 格式:每行代表一个单词,格式为[单词] [词性A] [A的频次] [词性B] [B的频次]...。
- 支持省略词性和频次,直接输入单词。
- .txt文件使用空格或制表符作为分隔符。如果需要支持含有空格的词语,可以使用逗号分割的.csv文件。在使用Excel等编辑器时,请确保保存为纯文本格式。
词频词典
- 格式:每行代表一个单词或条目,格式为[单词] [单词的频次]。
- 分隔符同样为空格或制表符。
此外,某些词典具有特定的格式,例如同义词词典兼容《同义词词林扩展版》的文本格式,而转移矩阵词典则是CSV表格。
数据结构
在HanLP中,最常用的数据结构是Trie树(字典树)。为了更好地支持自定义功能,实现了通用的Trie树,支持泛型、遍历、存储和加载。
用户自定义词典通常使用AhoCorasickDoubleArrayTrie和二分Trie树进行存储。其他词典则使用基于双数组Trie树(DoubleArrayTrie)实现的AC自动机AhoCorasickDoubleArrayTrie。更多关于这些数据结构的信息,可以参考相关文档或wiki。
存储方式
词典有两种存储方式:文本文件和缓存文件。
文本文件
缓存文件
- 二进制文件,通常在文本文件名后加上.bin或.trie.dat和.trie.value。后者是历史遗留产物,分别代表trie树的数组和值。
- 如果修改了词典,只需删除缓存文件以使其失效。
修改方法
HanLP的核心词典基于人民日报2014年的语料库训练,尽管经过优化,但依然可能存在错误。如果发现错误导致分词异常,可以通过以下步骤解决:
核心词性词频词典
- 如果发现词典中的单词有误或词性标注不正确,可以直接修改并删除缓存文件。
- 注意,CoreNatureDictionary.ngram.txt的缓存依赖于CoreNatureDictionary.txt的缓存,修改后需同步删除前者缓存。
核心二元文法词典
- 该词典存储的是两个词的接续关系,如果发现不合适的关系,可以直接删除。
- 添加新的合理接续时,确保这两个词都在核心词典中。
命名实体识别词典
- 命名实体识别依赖词典的质量,因此需要确保词典的准确性和完整性。
- 相关词典的格式和原理类似,可通过阅读相应文章或代码进行修改。
希望以上内容能帮助您更好地理解和使用HanLP中的词典。
本文来源:
图灵汇 文章作者: ImaginationTech