代码:
import jieba
string = "李小福是创新办主任也是云计算方面的专家"
# 精确模式分词
cut_result = jieba.cut(string)
print("===" * 20)
print("/".join(cut_result))
# 创新办没有识别出来
# 用自定义词典来定义创新办
# 创新办 3 i
jieba.load_userdict("userdict.txt")
cut_result = jieba.cut(string)
print("===" * 20)
# 已经识别出来了
print("/".join(cut_result))
print("===" * 20)
# 搜索模式
print(jieba.lcut_for_search(string))
# 具有一定的新词识别能力
string = "李老福是创新办主任也是云计算方面的专家"
cut_result = jieba.cut(string)
print("===" * 20)
print("/".join(cut_result))
运行结果:
============================================================
李小福/是/创新办/主任/也/是/云/计算/方面/的/专家
============================================================
李小福/是/创新办/主任/也/是/云/计算/方面/的/专家
============================================================
['李小福', '是', '创新', '创新办', '主任', '也', '是', '云', '计算', '方面', '的', '专家']
============================================================
李老福/是/创新办/主任/也/是/云/计算/方面/的/专家
代码:
# 动态调整词的方法
# 希望 “小王仁庄” 不被分开, 如今被分开了
string = "我住在小王仁庄"
cut_result = jieba.cut(string)
print("===" * 20)
print("/".join(cut_result))
# 添加到自定义词典
jieba.add_word("小王仁庄")
cut_result = jieba.cut(string)
print("===" * 20)
# 哈哈,分隔开了吧
print("/".join(cut_result))
# 词频和词性
# 如果词频太小也不会被分开
jieba.add_word("小王仁庄", freq=0.1, tag=None)
cut_result = jieba.cut(string)
print("===" * 20)
# 怎么样,没有分开
print("/".join(cut_result))
# 那么,该如何寻找词频呢?
print("===" * 20)
# 词频为1
print(jieba.suggest_freq("小王仁庄", tune=True))
# 将词频设置为1看看可不可以分开
jieba.add_word("小王仁庄", freq=1, tag=None)
cut_result = jieba.cut(string)
print("===" * 20)
# 成功分开
print("/".join(cut_result))
运行结果:
============================================================
我/住/在/小王仁庄
============================================================
我/住/在/小王仁庄
============================================================
我/住/在/小/王仁庄
============================================================
1
============================================================
我/住/在/小王仁庄
代码:
# 删除字典中的一些词
jieba.del_word("小王仁庄")
# 看看还能不能识别出来
cut_result = jieba.cut(string)
print("/".join(cut_result))
运行结果:
我/住/在/小/王仁庄
代码:
# 总结
# 自定义词典中:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
# 李小福 2 nr
# file_name为文件类对象或自定义词典的路径
jieba.load_userdict(file_name)
# 动态添加自定义词
jieba.add_word(word, freq=None, tag=None)
# 动态删除自定义词
jieba.del_word(word)
# 找到合适词频
jieba.suggest_freq(segment, tune=True)