NER任务模型考虑外部词典

感谢 hankcs提供的这本方便我们初学者学习实操的好书!
我想问在NER任务中,训练出来的CRF等模型可以作为分词器来对文本进行分词,并且在分词的时候考虑某个领域的词典吗?

2 Likes

不客气,CRF等模型都有词法分析接口,HanLP中的分词器都支持自定义词典。

有自定义用户词典的提高分词效果的示例没有?用户自定义词典的词条是用于学习模型的特征使用,还是直接用于分词?

“HanLP中的分词器都支持自定义词典”, 请问,自定义词典在 2.0 版本是不是还在开发中?pynlp 中好像有。

1 Like

我跑这个例子,但得到的结果是 None:
In [37]: from hanlp.common.trie import Trie
…:
…: import hanlp
…:
…: tokenizer = hanlp.load(‘PKU_NAME_MERGED_SIX_MONTHS_CONVSEG’)
…: text = ‘NLP统计模型没有加规则,聪明人知道自己加。英文、数字、自定义词典统统都是规则。’
…: print(tokenizer(text))
…:
…: trie = Trie()
…: trie.update({‘自定义’: ‘custom’, ‘词典’: ‘dict’, ‘聪明人’: ‘smart’})
…:
…:
…: def split_sents(text: str, trie: Trie):
…: words = trie.parse_longest(text)
…: sents = []
…: pre_start = 0
…: offsets = []
…: for word, value, start, end in words:
…: if pre_start != start:
…: sents.append(text[pre_start: start])
…:

[‘NLP’, ‘统计’, ‘模型’, ‘没有’, ‘加’, ‘规则’, ‘,’, ‘聪明人’, ‘知道’, ‘自己’, ‘加’, ‘。’, ‘英文’, ‘、’, ‘数字’, ‘、’, ‘自定义’, ‘词典’,
‘统统’, ‘都’, ‘是’, ‘规则’, ‘。’]

**In [38]: print(split_sents(text, trie)) **
None

这个函数是展示用自定义词典来断句吗?这个词典怎么跟haNLP 自己的默认分词算法配合使用?

How it feels to watch a user test your product for the first time