jieba文本分词(入门)
针对爬虫得到的评论txt文件
- 首先用with open打开已有文件,用read方法读出
with open("result.txt","r") as f:
content=f.read()
- 用jieba.cut()方法将得到的文本内容切割,默认情况是精准切割
seg_list=jieba.cut(content)
补充: jieba分词支持三种分词模式:
精确模式:试图将句子最精确地切开,适合文本分析:
全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
搜索引擎模式:在精确模式的基础上,对长词再词切分,提高召回率,适合用于搜索引擎分词。
例子:
seg_list = jieba.cut("你说四大皆空,却紧闭双眼,要是你睁开眼睛看看我,我不相信你两眼空空", cut_all=True)#全模式
print("全模式:", "/".join(seg_list))
seg_list = jieba.cut("你说四大皆空,却紧闭双眼,要是你睁开眼睛看看我,我不相信你两眼空空", cut_all=False)#精确模式
print("精确模式:", "/".join(seg_list))
seg_list = jieba.cut("你说四大皆空,却紧闭双眼,要是你睁开眼睛看看我,我不相信你两眼空空") # 默认是精确模式
print("默认:","/".join(seg_list))
seg_list = jieba.cut_for_search("你说四大皆空,却紧闭双眼,要是你睁开眼睛看看我,我不相信你两眼空空") # 搜索引擎模式
print("搜索引擎模式:", "/".join(seg_list))
结果:
全模式: 你/说/四大/四大皆空/皆空/,/却/紧闭/双眼/,/要是/你/睁开/睁开眼/睁开眼睛/开眼/眼睛/看看/我/,/我/不/相信/你/两眼/空空
精确模式: 你/说/四大皆空/,/却/紧闭/双眼/,/要是/你/睁开眼睛/看看/我/,/我/不/相信/你/两眼/空空
默认: 你/说/四大皆空/,/却/紧闭/双眼/,/要是/你/睁开眼睛/看看/我/,/我/不/相信/你/两眼/空空
搜索引擎模式: 你/说/四大/皆空/四大皆空/,/却/紧闭/双眼/,/要是/你/睁开/开眼/眼睛/睁开眼/睁开眼睛/看看/我/,/我/不/相信/你/两眼/空空
可以看出精准分词不会有重复的词,搜索引擎模式是分的最细的
-
用一个列表装停用字(一般要用文档)
将分割得到的词语去除停用字 -
然后用wordcloud库生成词云
# encoding=utf-8
import collections
import jieba
from jieba import analyse
from wordcloud import WordCloud
import pandas
with open("result.txt","r") as f:
content=f.read()
stopword=['的','是','评论','配图',',','.','。','!']
seg_list=jieba.cut(content)
seg_list=",".join(seg_list)
word_list=[]
for seg in seg_list.split(","):
if seg not in stopword:
word_list.append(seg)
with open("split_result.txt", "a", encoding="utf-8") as f:
f.write(str(word_list))
word_counts=collections.Counter(word_list)
word_counts_top=word_counts.most_common(100)
df=pandas.DataFrame(word_counts_top)
df.to_csv(r'most_common_words.csv',index=None,header=None)
tags=jieba.analyse.extract_tags(content,topK=100,withWeight=True)
keywords=dict()
for i in tags:
keywords[i[0]]=i[1]
wc=WordCloud.generate(keywords=keywords)
wc.to_file('wordcloud.png')