jieba结巴分词加入自定义词典

文章目录

    • 分词
      • 返回generator
      • 返回list
    • 添加自定义词典
    • 动态调整词典

参考 jieba官方文档

分词

返回generator

jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用

返回list

jieba.lcut 以及 jieba.lcut_for_search 直接返回 list(采用这种方式更加方便)

import jieba
jieba.cut("大连圣亚在大连")
#输出:
print([i for i in jieba.cut("大连圣亚在大连")])
#输出:['大连', '圣亚', '在', '大连']
jieba.lcut("大连圣亚在大连")
#输出:['大连', '圣亚', '在', '大连']

添加自定义词典

开发者可以指定自己自定义的词典,以便包含jieba词库里没有的词。虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率

jieba.load_userdict(r"C:\Users\ASUS\Desktop\user_dict.txt")
print([i for i in jieba.cut("大连圣亚在大连")])
#输出:['大连圣亚', '在', '大连']

此处错误记录:当文件路径前我没有加r的时候,会报错:
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

词典格式和dict.txt一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
其中词频我不太懂指的是什么。

动态调整词典

使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。这是对“添加自定义词典”功能的补充。

使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来,这个我不太懂在干啥。

jieba.add_word("大连圣亚")
print([i for i in jieba.cut("大连圣亚在大连")])
#输出:['大连圣亚', '在', '大连']
jieba.lcut("大连圣亚在大连")
#输出:['大连圣亚', '在', '大连']

你可能感兴趣的:(毕业论文相关)