欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python中结巴分词思路解析-含代码实战

程序员文章站 2022-05-29 09:57:14
...

本文代码均在jupyter Notebook上运行,已安装jieba包


结巴常用的函数

结巴常用函数 作用
jieba.lcut(text) 对text文件内容进行分词,返回的是分词后的词语列表
jieba.load_userdic(txt_file) 为防止某些目标词汇分割,需要载入紫东义词典,告诉程序说,这几个字是一个词语,不要分割

jieba.lcut(text)代码实战

由于使用jupyter Notebook运行代码,部分代码直接复制可能存在不全,无法直接全部运行的问题,因此建议读者采用jupyter Notebook运行代码,如使用其他编译器,请不要忘记适当修改(例如import或者变量定义)

import jieba
text = '我来到北京清华大学'
wordlist=jieba.lcut(text) # wordlist默认是列表形式
print(wordlist)

python中结巴分词思路解析-含代码实战


#保留词语字长度大于1的词
# 保留词语长度大于1的词
for w in wordlist:
    if len(w)>1:
        print(w) # w仅是列表中的元素,因此输出的格式并非列表形式
    else:
        pass

python中结巴分词思路解析-含代码实战


# 因此,想让满足条件的w写入列表中,可以采用如下方法
[w
for w in wordlist
if len(w)>1]
# 通常将代码写到1行里面
[w for w in wordlist if len(w)>1]

以上两种输出结果相同,如下
python中结巴分词思路解析-含代码实战

jieba.load_userdic(txt_file)代码实战

import jieba
text = '疯狂囤金,中国大妈震惊华尔街'
wordlist = jieba.lcut(text)
wordlist

python中结巴分词思路解析-含代码实战


但是如果想让“中国”“大妈”成为一个词语,那么就需要自定义词典,告诉程序,不能将这两个词分开

import jieba

text = '疯狂囤金,中国大妈震惊华尔街'
jieba.load_userdict(r'C:\Users\qingfeng\Desktop\词典.txt')
wordlist = jieba.lcut(text)
wordlist

python中结巴分词思路解析-含代码实战

jieba.load_userdict(txt_file)解析
txt_file:自定义词典(txt文件)的路径
词典格式:一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
编码:词典文件必须为 UTF-8 编码。
如果提示UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
则需要更改自定义词典的编码格式,如下图,文件–另存为–修改格式为utf-8–保存
python中结巴分词思路解析-含代码实战

相关标签: python基本知识