在我们写代码的时经常需要用的一些不是很熟悉的工具,但又需要快速上手,最直接的方法就是看官方文档,不过,很多文档都是英文的(暴击),此博客就是帮助萌新快速上手的,不会牵涉很复杂的理论,老司机请自动略过(当然欢迎指正)
jieba 分词的作用
在做文本分析的时候,我们经常要做的一件事就是对文本进行分词,最直接的就是 n-gram 模型,但很时候,我们希望按照一定的语义进行分词,例如下面这句话:
'你吃饭了吗' #原语句
'你吃 吃饭 饭了 了吗' # n-gram
'你 吃饭 了 吗' # jieba 分词
不过 jieba 分词只会根据简单的语义进行分词,很多复杂专业的名词,它是识别不了的;但不过,我们可以通过加载自定义的字典,让 jieba 分词能够‘认识’这些复杂词组。
用法
- 安装
pip install jieba
- 输入
待分词的字符串
jieba.cut('你吃饭了吗')
- 输出
jieba 分词返回的是一个生成式
<class 'generator'>
- 三种分词模式
精确模式:试图将句子最精确地切开,适合文本分析;cut_all=False
全模式:把句子中所有可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;cut_all=True
搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。jieba.cut_for_search()
- 导入自定义字典
path = '你自定义的字典的路径'
jieba.load_userdict(path)
自定义字典中出现的词组,jieba 就会将其识别为一个词组。
Example
import jieba
path = '你自定义的字典的路径'
jieba.load_userdict(path) # 如果没有自定义的字典,可以不需要
res = jieba.cut('你吃饭了吗',cut_all=True)
print(' '.join(res)) # 将分好的词组以空格分隔