NLP基础——python的jieba用于词类分割用法总结(1)

import jieba

seg_listDef = jieba.cut("我在学习自然语言处理")
seg_listAll = jieba.cut("我在学习自然语言处理", cut_all=True)
print("Default mode:"+" ".join(seg_listDef))
print("All mode:"+" ".join(seg_listAll))
jieba中的cut用于做词语分割,函数有三个参数常用,分别是
cut(sentence, cut_all=False, HMM=True) 第一个参数传
入需要进行词语分割的字符串,第二个参数用来指定分割的方法
默认为False,即不进行精确分割,反之为True,即进行精确分割
凡是能组成词语的全部分割出来。另一个参数为隐马尔可夫模型
(Hidden Markov Model)后续文章介绍.
Building prefix dict from the default dictionary ...
Loading model from cache 
Default mode:我 在 学习 自然语言 处理
All mode:我 在 学习 自然 自然语言 语言 处理
Loading model cost 0.578 seconds.
Prefix dict has been built successfully.
import jieba

seg_list = jieba.cut_for_search("我在学习自然语言处理")
print(" ".join(seg_list))
cut_for_search(sentence, HMM=True)函数用两个参数,一
个是需要进行词语分割的字符串,另一个为隐马尔可夫模型,cut_
for_search为基于搜索引擎的精细分割。

以上两种方法返回的都是生成器类型,也可以通过next()方法打
印出结果
import jieba
import sys

seg_list = jieba.cut_for_search("我在学习自然语言处理")
while(True):
    try:
        print(next(seg_list))
    except StopIteration:
        sys.exit()
而jieba.lcut_for_search和jieba.lcut返回的都是list类型
可以直接进行打印输出。
import jieba

seg_list = jieba.lcut_for_search("如果放到旧字典中将会出错")
print(seg_list)

Building prefix dict from the default dictionary ...
Loading model from cache 
['如果', '放到', '旧', '字典', '中将', '会', '出错']
Loading model cost 0.590 seconds.
Prefix dict has been built successfully.

这种情况下在进行词语分割时容易混淆词语,实际“中”和“将”分
别是两个不同的词。为此可以用suggest_freq(segment,
tune=False)方法
Parameter:
- segment : The segments that the word is expected 
to be cut into.If the word should be treated as a 
whole,use a str.
- tune : If True, tune the word frequency.
对于参数tune,如果设置True,我们就增大segment中词的出现
频率。

import jieba

jieba.suggest_freq(('中', '将'), True)
seg_list = jieba.lcut_for_search("如果放到旧字典中将会出错")
print(seg_list)

Building prefix dict from the default dictionary ...
Loading model from cache 
Loading model cost 0.569 seconds.
Prefix dict has been built successfully.
['如果', '放到', '旧', '字典', '中', '将', '会', '出错']
发布了113 篇原创文章 · 获赞 51 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_38883271/article/details/105604688