中文词频统计与词云生成
作业来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822
作业要求:
1. 下载一长篇中文小说。
下载了《粤港澳大湾区发展纲要》
2. 从文件读取待分析文本。
text
=
open
(
'artical.txt'
,encoding
=
'utf-8'
).read();
e
=
''',,.。??!!-::《》< >"“”、\n \r \u3000 \ufeff'''
for
i
in
e:
text
=
text.replace(i,"")
3. 安装并使用jieba进行中文分词。
pip install jieba
import jieba
jieba.lcut(text)
4. 更新词库,加入所分析对象的专业词汇。
jieba.add_word('天罡北斗阵') #逐个添加
jieba.load_userdict(word_dict) #词库文本文件
jieba.add_word('大湾')
参考词库下载地址:https://pinyin.sogou.com/dict/
转换代码:scel_to_text
5. 生成词频统计
dict
=
{}
for
i
in
tokens:
if
i
not
in
dict
:
dict
[i]
=
tokens.count(i)
print
(
dict
)
6. 排序
word
=
list
(
dict
.items())
word.sort(key
=
lambda
x: x[
1
], reverse
=
True
)
7. 排除语法型词汇,代词、冠词、连词等停用词。
stops
=
[
'也'
,
'等'
,
'的'
,
'谁'
,
'又'
,
'是'
,
'新'
,
'了'
,
'只'
,
'一'
,
'和'
,
'或'
,
'区'
,
'市'
,
'为'
,
'在'
,
'与'
]
tokens
=
[token
for
token
in
text
if
token
not
in
stops]
stops
tokens=[token for token in wordsls if token not in stops]
8. 输出词频最大TOP20,把结果存放到文件里
result
=
[]
for
i
in
range
(
20
):
result.append(word[i])
pd.DataFrame(data
=
result).to_csv(
'f.csv'
,encoding
=
'utf-8'
)
print
(result)
9. 生成词云。