统计中文词语出现的次数
- 以政府一号文件为例,统计出现的中文词语数量
- 按照一定标准输出,如出现次数等
- 需要解决中文分词问题,如:这是一门好课 ->这是 一门 好课
- 输入:2018年一号文件.txt
- 输出:出现次数超过50次的词语,不包括换行。
#WordCount.py
import jieba #引入外部库
f = open("2018年一号文件.txt","r", encoding="utf-8") #打开以只读的方式
txt = f.read() #一次性把文件读入到txt中
f.close()
ls = jieba.lcut(txt) #中文分词
d = {}
for w in ls: #词w在ls列表中
d[w] = d.get(w,0)+1 #建立字典的新元素,并更新value+1
for k in d:
if d[k] >= 50 and k != "\n": #字典中词出现次数超过50
print('"{}"出现{}次'.format(k,d[k]))
python与其他语言相比注意:
- 每行后面没有分号
- 没有begin,end,{}等代表代码归属的元素,只用缩进代表代码的所属关系
- 变量直接使用,无需类型声明
- import可以引入外部功能库
import的三种用法:
import: 引用功能库的保留字,有三种使用方法
方法一:import <库名>
<库名>.<函数名>(<函数参数>)
或者:
import <库名1> <库名2>
这样可以直接使用函数名,而不用再写 库名.函数名
如果你的程序中有相同名称的函数,那么代码运行时,起作用的是最后声明的那个函数
如果库名比较长,那么使用别名(库别名.函数名)会比较方便
分词产生的类型为列表类型保存在ls中
jieba是非常优秀的中文分词库
用于对中文文本进行分词操作,产生包含产生词语的列表
jieba是第三方库,需要额外安装
jieba库的安装:
(cmd命令行) pip install jieba
安装成功后会提示Successfully installed jieba
安装idle时,它会自带一个工具pip它能够以联网的方式安装第三方库
第二行是全分词,就是把可能的分词情况全部列举出来,所以存在冗余
最后一行jieba.add_word(w)就是向jieba分词库中添加新的词语,这样它就会
计算生态编程
一、利用python庞大的计算生态提高编程产量
- 除了python语言外,要掌握一批数量的python库的使用
- 对于某些“通用问题”,要学会寻找python库
- http://pypi.org 它是python官方维护的第三方库索引引擎,有超过14万个第三方库
二、围绕python计算生态完成编程功能
- 结合python计算生态中较重要的框架,完成编程任务
- 例如:结合python开展深度学习应用
- 例如:结合Scrapy框架编写爬虫应用
三、构建Python库,丰富Python计算生态
- 对于新的理解和认识,构建python计算生态
- 底层可以利用c/c++等语言实现,给与python接口
#WordCount.py
import jieba as ja #导入jieba中文分词库给别名ja
f = open("file1.txt","r",encoding="utf-8") #打开文件,并给出解码方式
txt = f.read() #
f.close() #关闭文件
ls = ja.lcut(txt)
d={} #创建了一个空字典,键值对的集合
for w in ls:
d[w] = d.get(w,0)+1 #建立每个词与出现次数的键值对
for k in d: #将d中的每一个键读出,使用d[k]获得它的值
if d[k] >= 50 and k != "\n":
print('"{}"出现{}次'.format(k,d[k])) #k是这个词,d[k]是通过字典查到对应的值
字典是映射的结合,体现为键值对的组合
映射是一种(索引)和值(数据)的对应
d.get(<键1>,0) #这一行是在字典中查找键1对于的值,
如果这个键1真实存在就会返回对应的值,
如果没有键1,就会返回第二个参数0。