1 词典加载
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())
这里使用的是hanlp提供的词库,后面的切分算法也可以使用自己的词典,hanlp相关的配置安装可以参考
2 完全切分算法
完全切分指的是,找出一段文本中的所有单词。这并不是标准意义上的分词,有些人将这个过程误称为分词,其实不准确。
不考虑效率的话,朴素的完全切分算法其实很简单。只要遍历文本中连续序列,查询该序列是否在字典中即可。定义词典为dic,文本为txt,当前处理位置为i,代码如下:
def fully_segment(txt,dic):
res = []
for i in range(len(txt)):
for j in range(i+1,len(txt)+1):
tmp = txt[i:j]
if(tmp in dic):
res.append(tmp)
return res
调用样例: