hanlp的词典模式
之前我们看了hanlp的词性标注,现在我们就要使用自定义词典与停用词功能了,首先关于HanLP的词性标注方式具体请看HanLP词性标注集。
其核心词典形式如下:
自定义词典
自定义词典有多种添加模式,首先是展示的一个小例子,展示了词汇的动态增加与强行插入,删除等。更复杂的内容请参考后边的第二段代码。
简单的例子
from pyhanlp import *
text = "攻城狮逆袭单身狗,迎娶白富美,走上人生巅峰" #怎么可能噗哈哈!
print(HanLP.segment(text))
CustomDictionary = JClass("com.hankcs.hanlp.dictionary.CustomDictionary")
CustomDictionary.add("攻城狮") #动态增加
CustomDictionary.insert("白富美", "nz 1024") #强行插入
#CustomDictionary.remove("攻城狮"); #删除词语(注释掉试试)
CustomDictionary.add("单身狗", "nz 1024 n 1")
# 展示该单词词典中的词频统计 展示分词
print(CustomDictionary.get("单身狗"))
print(HanLP.segment(text))
# 增加用户词典,对其他分词器同样有效
# 注意此处,CRF分词器将单身狗分为了n即使单身狗:"nz 1024 n 1"
CRFnewSegment = HanLP.newSegment("crf")
print(CRFnewSegment.seg(text))
[攻城狮,逆袭,单身狗,,,迎娶,白富美,,,走上,人生,巅峰]
nz 1024 n 1
[攻城狮,逆袭,单身狗,,,迎娶,白富美,,,走上,人生,巅峰]
[攻城,狮逆袭,单身狗,,,迎娶,白富美,,,走,上,人生,巅峰]
复杂的例子
""" 演示自定义词性,以及往词典中插入自定义词性的词语
!!!由于采用了反射技术,用户需对本地环境的兼容性和稳定性负责!!!
TO-DO
如果使用了动态词性之后任何类使用了switch(nature)语句,必须注册每个类
"""
# 对于系统中已有的词性,可以直接获取
Nature = JClass("com.hankcs.hanlp.corpus.tag.Nature")
pc_nature = Nature.fromString("n")
print(pc_nature)
# 此时系统中没有"电脑品牌"这个词性
pc_nature = Nature.fromString("电脑品牌")
print(pc_nature)
# 我们可以动态添加一个
pc_nature = Nature.create("电脑品牌");<