pip install jieba
jieba.cut返回的是一个可迭代的生成器generator,所以能够和for循环一起使用
sentence = '维生素含叶酸'
for word in jieba.cut(sentence):
print(word)
输出:
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.412 seconds.
Prefix dict has been built successfully.
维生素
含
叶酸
一般来说,我们最常用的分词模式是精确模式,这种模式可以将句子按照最正确的方式切开,
默认使用的就是精确模式
jieba.cut(cut_all=False)等同于jieba.cut()
jieba.lcut返回列表
sentence = '维生素含叶酸'
print(jieba.lcut(sentence))
输出:
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.355 seconds.
Prefix dict has been built successfully.
['维生素', '含', '叶酸']
load_userdict()可以添加用户自定义的词典
这个词典的格式如下:
玻璃杯子 词频(整数,可以不写) 词性(表示名词,副词等等词性)
定义一个文件a.txt,内容如下:
玻璃杯子
sentence = '玻璃杯子'
print(jieba.lcut(sentence))
for word in jieba.cut(sentence):
print(word)
输出:
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.411 seconds.
Prefix dict has been built successfully.
玻璃杯
子
sentence = '玻璃杯子'
jieba.load_userdict('a.txt')
for word in jieba.cut(sentence):
print(word)
输出:
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
玻璃杯子
Loading model cost 0.332 seconds.
Prefix dict has been built successfully.
作用是可以添加停用词表,停用词表中出现的词都不会在第(5)步的关键词提取中,被作为关键词提取出来
停用词表结构如下:
玻璃
狗狗
详情
调用函数过程如下:
import jieba.analyse
jieba.analyse.set_stop_words('data/dictionary/停用词表.txt')
sentence = '玻璃杯子维生素叶酸'
for a, b in jieba.analyse.extract_tags(sentence, topK=2, withWeight=True,allowPOS=['a','n']):
print(a, b)
for a, b in jieba.analyse.textrank(sentence, topK=2, withWeight=True,allowPOS=['a','n']):
print(a, b)
输出:
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.407 seconds.
Prefix dict has been built successfully.
玻璃杯 5.2174708746
叶酸 4.94667223337
玻璃杯 1.0
叶酸 0.9961264494011037
topK:将关键词重要性排序之后,取前topK个主要的作为最终的关键词,默认20
withWeight:返回关键词的权重值,默认False,不显示权重值
allowPOS:设置被选中的关键词的词性,比如说,被选出的关键词只能是名词,形容词,或者智能是人名,还是很有用的
此外需要注意的是,对于jieba.analyse.textrank方法,参数allowPOS默认为(‘ns’, ‘n’, ‘vn’, ‘v’)
a 形容词
c 连词
d 副词
e 叹词
f 方位词
h 前缀
k 后缀
m 数词
mq 数量词
n 名词
nr 人名
nr1 汉语姓氏
nr2 汉语名字
nrj 日语人名
nrf 音译人名
ns 地名
nsf 音译地名
nt 机构团体名
nz 其它专名
nl 名词性惯用语
ng 名词性语素
r 代词
rr 人称代词
rz 指示代词
rzt 时间指示代词
rzs 处所指示代词
s 处所词
t 时间词
tg 时间词性语素
v 动词
vd 副动词
vn 名动词
vshi 动词“是”
vyou 动词“有”
vi 不及物动词(内动词)
vl 动词性惯用语
w 标点符号
wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <
wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { >
wyz 左引号,全角:“ ‘ 『
wyy 右引号,全角:” ’ 』
wj 句号,全角:。
ww 问号,全角:? 半角:?
wt 叹号,全角:! 半角:!
wd 逗号,全角:, 半角:,
wf 分号,全角:; 半角: ;
wn 顿号,全角:、
wm 冒号,全角:: 半角: :
ws 省略号,全角:…… …
wp 破折号,全角:—— -- ——- 半角:— ----
wb 百分号千分号,全角:% ‰ 半角:%
wh 单位符号,全角:¥ $ £ ° ℃ 半角:$
x 字符串
xu 网址URL
z 状态词
pip install -U jiagu # -U表示更新
import jiagu
sentence = '玻璃杯子维生素叶酸'
print(jiagu.seg(sentence))
输出:
['玻璃', '杯子', '维生素', '叶酸']
自定义词典a.txt内容如下:
玻璃杯子
代码如下:
sentence = '玻璃杯子维生素叶酸'
jiagu.load_userdict('a.txt')
print(jiagu.seg(sentence))
输出:
['玻璃杯子', '维生素', '叶酸']
sentence = '玻璃杯子维生素叶酸'
print(jiagu.keywords(sentence,3))
其中,数字3表示提取的关键词个数
输出:
['维生素', '杯子', '叶酸']
jiagu.summarize(sentence,1) #1表示最后的摘要是几个
jiagu.findword('file1','file2')
sentence = '玻璃杯子维生素叶酸'
for word in jiagu.seg(sentence):
print(word,jiagu.sentiment(word))
输出:
玻璃 ('negative', 0.7499999999999999)
杯子 ('positive', 0.5)
维生素 ('positive', 0.5)
叶酸 ('positive', 0.5)
参考https://github.com/ownthink/Jiagu
pip install snownlp
sentence = '玻璃杯子维生素叶酸,卧室,省电费,短发'
for word in SnowNLP(sentence).sentences:
print(word, SnowNLP(word).sentiments)
输出:
玻璃杯子维生素叶酸,卧室 0.06258896727225804
省电费 0.5467035561854678
短发 0.5
我们可以看到,原始语料用英文逗号’,'的部分不能被拆分,'卧室应该’另起一行,而不是放在第一行
右边的浮点数表示的情感分析的取值