分词方法
cut
jieba.cut(sentence, cut_all=False, HMM=True)
lcut
将cut返回的结果转换成列表。
load_userdict
使用用户自定义的词典
import jieba
sentence = '穿过国境长长的隧道就是雪国'
res = jieba.lcut(sentence, cut_all=True, HMM=True)
print('lcut全模式分词结果:', res)
res1 = jieba.lcut(sentence, cut_all=False, HMM=True)
print('lcut精确模式分词结果:', res1)
res2 = jieba.cut(sentence)
print('cut分词结果:', res2, '\n', list(res2))
jieba.load_userdict('word.txt')
res3 = jieba.lcut(sentence)
print('加入词典后的分词结果:', res3)
程序输出结果
>> lcut全模式分词结果: [‘穿过’, ‘国境’, ‘长长’, ‘长长的’, ‘隧道’, ‘就是’, ‘雪’, ‘国’]
>> lcut精确模式分词结果: [‘穿过’, ‘国境’, ‘长长的’, ‘隧道’, ‘就是’, ‘雪国’]
>> cut分词结果: <generator object Tokenizer.cut at 0x000001EB3950C740>
[‘穿过’, ‘国境’, ‘长长的’, ‘隧道’, ‘就是’, ‘雪国’]
>> 加入词典后的分词结果: [‘穿过’, ‘国境’, ‘长长的隧道’, ‘就是’, ‘雪国’]
其中word.txt文件中内容格式如下:(频率和词性可以省略,但格式不能乱)
词语1 频率 词性
词语2 频率 词性
...
可以看到,将"长长的隧道"加到个人词典里面,分词时作为一个词语处理。
获取词性
import jieba.posseg as posg
res4 = posg.cut(sentence)
for word,type in res4:
print(word, type)
程序输出结果
>> 穿过 v
>> 国境 n
>> 长长的隧道 x
>> 就是 d
>> 雪国 ns