分享一个基于jieba库的Python 代码,它可以对文本进行分词和词频统计。
代码效果:对文本文档(yangben.txt)分词并统计词频,将出现频率最高的前10个词语及出现次数,显示在屏幕,将出现频率最高的前200个词语,保存在指定文件内(yangben_200.txt)
▼代码注释
import jieba
# 导入 jieba库
with open('yangben.txt','r',encoding='utf-8') as f:
content = f.read()
# 以只读方式打开文件yangben.txt,读取文件中全部内容,保存至变量content中
words = jieba.lcut(content)
# 使用jieba 库的 lcut() 函数对内容content分词,将分词结果保存在words
word_counts = {}
# 创建空字典word_counts
for word in words:
# 遍历words列表
if len(word) > 1:
word_counts[word] = word_counts.get(word,0) + 1
# 如果列表元素word的长度大于1,就添加到字典word_counts中,并更新其出现次数。
# 过滤掉长度为1的词汇(即排除单个字或者符号)
sorted_words = sorted(word_counts.items(),key=lambda x: x[1],reverse=True)
# 对字典word_counts中的键值对按值降序排序,并将排序结果保存在列表sorted_words中
for word,count in sorted_words[:10]:
print(word,count)
# 遍历列表sorted_words的前10个元素
# 将词语和出现次数输出到屏幕上
with open('yangben_200.txt', 'w', encoding='utf-8') as f:
# 以utf-8编码创建文件yangben_200.txt,并将其打开
for word, count in sorted_words[:200]:
f.write('{} {}n'.format(word, count))
# 遍历列表sorted_words的前200个元素,即词频前200项
# 将元素word和count按照指定格式写入文件yangben_200.txt中
# n表示换行
▼知识点
import 语句:该语句用于导入 Python 中的库或模块,可以使用 import module_name 的方式导入整个模块,也可以使用 from module_name import function_name 的方式导入模块中的具体函数;
分词库 jieba 库:jieba 库是一款用于中文分词的工具库,在代码中使用 jieba.lcut() 函数对字符串进行分词操作,返回一个列表。此外jieba库,还可以使用 jieba.add_word() 来添加新的词汇,或者使用 jieba.load_userdict() 来加载自定义词典;
文件操作:代码中通过 with open(‘filename’, ‘mode’) as f: 语句打开文件并进行读取或写入操作。其中,filename 是文件名,mode 是文件打开模式(’r’ 表示只读,’w’ 表示写入),as f 将打开的文件赋值给变量 f,方便后续对文件进行操作;
字典数据类型:代码中使用字典来保存每个词汇出现的次数,通过遍历列表来对字典进行添加和更新操作,使用 key 来获取字典中的值或者设定默认值;
列表排序:代码中使用 sorted() 函数对词典按照值进行降序排序jieba库,并将结果保存在列表中。sorted() 函数会返回一个新的排好序的列表,原列表顺序不变;
字符串拼接:使用 print(word,count) 将变量 word 和 count 拼接成字符串输出到屏幕上;
格式化字符串:使用 Python 的字符串格式化方法将变量 word 和 count 按照指定格式输出到文件中。具体方法是使用占位符 {} 将变量嵌入到字符串中,然后通过 format() 方法将变量和占位符一一对应;
lambda表达式:使用了一个 lambda 表达式来作为排序函数的 key 参数。lambda 表达式是一种匿名函数,可以方便地写出简短的函数代码,节省了定义函数的时间和空间。该表达式的作用是取键值对中的值作为比较依据进行排序。
切片操作:使用切片操作 [:10] 和 [:200] 来获取列表的前 10 个或前 200 个元素,以限制输出结果的长度。该操作可以用于列表、字符串等类型的数据创业项目,方便进行部分截取或取出指定范围的子串
反斜杠转义:使用反斜杠 ‘n’ 来表示换行符,使得每个词汇及其出现次数都单独占据一行并按照一定的格式排列。
以下是一些常见的转义字符及其含义:
\ 表示反斜杠本身
‘ 表示单引号
” 表示双引号
n 表示换行符
t 表示制表符
r 表示回车符
b 表示退格符
f 表示换页符
▼资源下载
公众号聊天窗口回复 010101 获取
注册会员查看全部内容……
限时特惠本站每日持续更新海量各大内部创业教程,年会员只要98元,全站资源免费下载
点击查看详情
站长微信:9200327