Python
要求:
1. 任给一篇中文文档,用open函数打开得到一个字符串。
2.用 jieba.cut函数对这个字符串进行中文分词。
3.用字符串的count方法统计每个单词在这个字符串中出现的次数。
4.用列表的sort方法,按每个单词出现的次数进行排序。
5.用for--in语句输出结果
代码:
import jieba
f=open("D:\字符串.txt","r",encoding='utf-8')
st=f.read()
print(st)
print('-----统计每个单词出现的次数------')
total=set(jieba.cut(st)) #将分词的结果转换为集合赋值给total
print('单词总量=',len(total),'个')
words=[(word,st.count(word))for word in total]
words.sort(key=lambda p:p[1],reverse=True)#排序
i=1
for w,c in words:
print(i,w,'出现',c,'次')
i=i+1
代码分析:
import jieba
导入jieba库,jieba库的作用,进行中文分词,能够将中文文本按照词语进行切分。例如,对于句子 “今天天气很好”,可以切分为 “今天”“天气”“很好” 等词语
注意安装jieba库:
windows+r 输入进入命令字 输入 pip install jieba安装jieba库
输入python 回车 import jieba 没有报错就是安装成功了
如果!!!jieba安装成功仍然显示找不到此类
方法如下:
将以下两个文件
复制到你写的代码文件保存的地方
类似于
这样就不会显示找不到了
total=set(jieba.cut(st))
将分词的结果转换为集合赋值给total;
转换为集合是为了利用集合可以去重的特点来统计单词出现的个数
words=[(word,st.count(word))for word in total]
其作用是创建一个列表,列表中的每个元素是一个元组,元组包含一个单词和这个单词在变量total中出现的次数。
word,st.count(word):这里创建了一个元组,第一个元素是当前遍历到的单词word,第二个元素是调用st.count(word)方法得到的结果,该方法应该是一个自定义函数或者某个模块中的函数,用于计算单词word在特定对象中的出现次数。
words.sort(key=lambda p:p[1],reverse=True)
words.sort()函数调用是对列表words进行排序,默认升序
key=lambda p:p[1]用于指定排序的依据。在这里,使用了匿名函数(lambda 表达式)来定义排序的键。lambda p:p[1]表示对于列表中的每个元素p取其第二个元素作为排序的依据。
reverse=True 这也是一个关键字参数,用于指定排序的顺序为降序。如果不设置这个参数,默认是升序排序。