HanLP词典的加载&切分算法
词典加载
from pyhanlp import *
def load_dictionary():
"""
加载HanLP中的mini词库
:return: 一个set形式的词库
"""
IOUtil = JClass('com.hankcs.hanlp.corpus.io.IOUtil')
path = HanLP.Config.CoreDictionaryPath.replace('.txt', '.mini.txt')
dic = IOUtil.loadDictionary([path])
return set(dic.keySet())
if __name__ == '__main__':
dic = load_dictionary()
print(len(dic))
print(list(dic)[0])
输出:
85584
党组织
这里通过JClass函数来根据Java路径名得到一个Python类,接下来的代码不必考虑与Java的交互,回到Python环境。
切分算法
完全切分
完全切分指的是找出一段文本中的所有单词。只要遍历文本中的连续序列查询该序列是否在词典中即可。定义词典为dic,文本为text,当前处理处置为1,完全切分算法的python实现如下:
from pyhanlp import *
def load_dictionary():
"""
加载HanLP中的mini词库
:return: 一个set形式的词库
"""
IOUtil = JClass('com.hankcs.hanlp.corpus.io.IOUtil')
path = HanLP.Config.CoreDictionaryPath.replace('.txt', '.mini.txt')
dic = IOUtil.loadDictionary