用python的字典数据结构可以很方便地用来统计一篇文章的每个单词出现的频率。在文本相似度计算中,就经常需要用到一个单词在文章中的出现频率,进而可以根据两篇文章共有单词在相应文章中的频率比较,来计算相似度。python的强大功能在很大程度上依赖于字典这种数据结构。字典是一种可变的数据结构,和列表相似。它是一种基于key=>value的数据结构,value值可变,但key是不可变变量,value可以是任何一种数据对象,可以是字符串、整数、列表以及字典。

Code:

def add_words(word,words_dict):

"""把单词添加到words_dict字典里,并计数"""

if word in words_dict:

words_dict[word]+=1

else:

words_dict[word]=1

import string

def process_line(line,words_dict):

"""处理文件每行数据"""

line=line.strip()

words_list=line.split()

for word in words_list:

word=word.lower().strip(string.punctuation) #删除进过分割的单词的尾部的一些符号

add_words(word,words_dict) #调用add_words函数,把单词插入到words_dict字典中

def print_result(words_dict):

"""按格式输出words_dict中的数据"""

val_key_list=[]

for key,val in words_dict.items():

val_key_list.append((val,key))

val_key_list.sort(reverse=True) #对val值进行逆排序

print "%-10s%-10s" %("word","count")

print "_"*25

for val,key in val_key_list:

print "%-12s %3d" %(key,val)

##################################################

def main():

"""主函数"""

words_dict={}

pFile=open("speech.txt","r")

for line in pFile:

process_line(line,words_dict)

print "the length of the dictionary:",len(words_dict)

print_result(words_dict)

运行结果图(点击查看大图):

还可以对代码进一步处理,让最后结果只输出频率大于2以及单词长度大于3的单词,在一些应用场景中,我们最后需要的只是那些高频词汇以及一些关键词,像“in","is","a"之类的单词实际上没有意义。

Code:

def add_words(word,words_dict):

"""把单词添加到words_dict字典里,并计数"""

if word in words_dict:

words_dict[word]+=1

else:

words_dict[word]=1

import string

def process_line(line,words_dict):

"""处理文件每行数据"""

line=line.strip()

words_list=line.split()

for word in words_list:

word=word.lower().strip(string.punctuation) #删除进过分割的单词的尾部的一些符号

add_words(word,words_dict) #调用add_words函数,把单词插入到words_dict字典中

def print_result(words_dict):

"""按格式输出words_dict中的数据"""

val_key_list=[]

for key,val in words_dict.items():

if len(key)>3 and val>2: #过滤结果,只输出词频大于2以及单词长度大于3的单词

val_key_list.append((val,key))

val_key_list.sort(reverse=True) #对val值进行逆排序

print "%-10s%-10s" %("word","count")

print "_"*25

for val,key in val_key_list:

print "%-12s %3d" %(key,val)

##################################################

def main():

"""主函数"""

words_dict={}

pFile=open("speech.txt","r")

for line in pFile:

process_line(line,words_dict)

print "the length of the dictionary:",len(words_dict)

print_result(words_dict)

运行结果图(点击查看大图):

发表评论

电子邮件地址不会被公开。 必填项已用*标注

姓名 *

电子邮件 *

站点

评论

您可以使用这些HTML标签和属性:

python统计单词出现次数_用python统计单词出现频率相关推荐

  1. python循环体执行的次数_下面Python循环体执行的次数与其他不同的是( )。

    问题:下面Python循环体执行的次数与其他不同的是( ). 更多相关问题 可疑脊柱外伤病员,正确搬运的是()A.一人抬头一人抬脚B.搂抱C.三人以上平托放于木板上搬运 受体菌直接摄取供体菌提供的游离 ...

  2. android应用启动次数,应用统计: APP启动次数,软件用时统计,用量提醒

    编辑点评 让偷玩手机的孩子无所遁形 应用统计: APP启动次数,软件用时统计,用量提醒 介绍 应用统计: APP启动次数,软件用时统计,用量提醒 应用统计又称屏幕时间,用量分析,时间管理,是一个记录用 ...

  3. python统计单词出现次数最多的5个单词_【Python】统计文本中单词的出现次数前十的单词...

    代码: # 读取一个文本,并且统计文本中单词的出现次数 def read_file(): # 在windows环境中的编码问题,指定utf-8 with open('F:/python源码/实验区/0 ...

  4. python字符串大写字母个数_【python实例】统计字符串里大写字母,小写字母的个数和非字母的个数...

    """ 给定一个以下字符串:统计大写字母的个数,小写字母的个数,非字母的个数. str1 = "ajdkkKDKEK1343KFKiriromfkfKKRIOW ...

  5. python编程英语单词怎么写_用Python写一个背英文单词程序

    小朋友学习英文时背单词总是很困扰的一个问题,Ashing老师用Python开发了这个简易的背英文单词程序,帮助小朋友练习单词.功能虽简单却都很实用,只需帮他们用excel建立好单词表. 目前建立的功能 ...

  6. python统计元音字母个数_计算Python中的元音(Counting vowels in python)

    计算Python中的元音(Counting vowels in python) def main(): print(count) def countVowels(string): vowel=(&qu ...

  7. python水浒传名字次数_基于Python的《水浒传》中人物分析

    基于 Python 的<水浒传>中人物分析 ◆杨旭东 [摘 要] 摘要:随着大数据技术的应用领域不断扩大,信息量也在日益膨胀, 而有价值的信息是有限的,利用文本挖掘技术可以高效地获取长文本 ...

  8. python求立方尾不变_蓝桥杯:单词分析——————Python

    题目 试题 G: 单词分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超 ...

  9. python 数组排序最少交换次数_数组排序 使得交换次数最少

    题目: 给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序. 求最少需要多少次交换,能把数组排成按1-n递增的顺序,(数组中的元素互不重复). 比如 初始状态 5 4 3 2 1 .交换 ...

最新文章

  1. scp遇到路径中有空格
  2. C# socket 解析http 协议
  3. element ui 红点_element-ui 自定义表单验证 , 但是不出现小红心了
  4. 测试之美---测试员的心思你不懂
  5. 【原创】ABAP动态编程之功能实现
  6. tomcat限制用域名访问 禁止 ip访问
  7. 开平区教育局资源分布式存储解决方案
  8. 计算机东大计算机三在线作业,东大16秋学期《计算机基础》在线作业3
  9. 原创音乐人炙手可热,中国原创音乐进入新周期?
  10. 3c是合法的C语言常量吗,下面不是 C语言中整型常量的是( ). A:03 B:12 C:059 D:0xA8...
  11. 单点登录之ajax跨域实现
  12. 【心得】Web设计师应参考的技术
  13. php支付自定义金额,自定义付款/支付/收费
  14. jle汇编_JNB, JBE, JGE, JLE 指令的转移条件 5
  15. 利用VScode 编写C51/stm32代码
  16. 如何快速将多个文件夹下内容合并到一个文件夹下
  17. vivo手机里的log是什么意思?
  18. WinCE USB驱动CDevice::EnterOperationalState函数相关
  19. 真是亲生的,但亲子鉴定为何失败?
  20. MTTR/MTTF/MTBF图解

热门文章

  1. 4.4 为什么使用深层表示-深度学习-Stanford吴恩达教授
  2. 1.2 离散时间信号-采样
  3. 数学篇(一) 矩阵运算
  4. 【个人成长学习讨论小组】练习2:角色
  5. Linux学习 LVM ***
  6. Java中,内部类的概述和内部类的访问特点和内部类的分类(内部类的位置)
  7. Java编程思想 学习笔记7
  8. 最简单的composer 包 使用
  9. 存储知识:数据一致性、分级存储、分层存储与信息生命周期管理
  10. 15 sql base line 工作机制