前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用python进行词频分析

使用python进行词频分析

作者头像
不愿意做鱼的小鲸鱼
发布2022-09-24 09:10:22
1.2K0
发布2022-09-24 09:10:22
举报
文章被收录于专栏:web全栈web全栈

     很早之前就接触过python,也玩过python许多有趣的东西,比如用pygame做一个飞机大战的游戏啊、用turtle模块简单绘图啊、使用python链接mysql做crud、用python运行R语言脚本、简单爬虫等等,不过现在应该都快忘了。^_^

使用python进行中文词频分析

首先什么是“词频分析”? 词频分析,就是对某一或某些给定的词语在某文件中出现的次数进行统计分析。 我们需要使用python的jieba库。 jieba库:优秀的中文分词组件。支持繁体分词、自定义词典。可以对文档进行三种模式的分词: 1、精确模式:试图将句子最精确地切开,适合文本分析; 2、全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义; 3、搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

jieba库中文分词原理 1、利用一个中文词库,确定汉字之间的关联概率。 2、汉字间概率大的组成词组,形成分词结果。 3、除了分词,用户还可以添加自定义词组。

jieba库安装

打开cmd,键入:pip install jieba

待安装成功即可。

pip安装外库的时候可能会安装失败:是因为使用的是国外镜像 解决方法:使用国内镜像 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba 的确这个样子就可以用了 使用pip也要用python进行安装(本文章设计的所有资料末尾会给出) 解压pip文件包后 在pip目录下cmd,输入命令"python setup.py install" jieba库的简单使用:点击这里

分析刘慈欣小说《三体》(一二三部合集)出现次数最多的词语。

这个案例中分析出了使用数量前三十的词语 如果直接分析的话,会存在非常多的垃圾数据。因为把文档中的标点、空格、没有意义的字、词语全部进行了统计。这并不是我们想要的数据。这个时候我们需要使用停用词表。 停用词表 停用词:停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。 停用词表便是存储了这些停用词的文件。在网上下载停用词表,命名stopwords.txt。(在文末资源中小说和词表都会给出) 统计代码如下

代码语言:javascript
复制
import jieba  
txt = open("santi.txt", encoding="utf-8").read()  
#加载停用词表  
stopwords = [line.strip() for line in open("stopwords.txt",encoding="utf-8").readlines()]  
words  = jieba.lcut(txt)  
counts = {}  
for word in words:  
    #不在停用词表中  
    if word not in stopwords:  
        #不统计字数为一的词  
        if len(word) == 1:  
            continue  
        else:  
            counts[word] = counts.get(word,0) + 1  
items = list(counts.items())  
items.sort(key=lambda x:x[1], reverse=True)   
for i in range(30):  
    word, count = items[i]  
    print ("{:<10}{:>7}".format(word, count))

结果如下

使用python进行词频分析-左眼会陪右眼哭の博客
使用python进行词频分析-左眼会陪右眼哭の博客

使用python进行英文词频统计

英文单词词频统计比较简单,就是根据空格来对文本进行切割,然后统计其单词出现的数量。 代码如下

代码语言:javascript
复制
import string

def stats_words(filename):
    """统计文章中单词的频数"""
    # 读取文章中的内容
    with open(filename,encoding="utf-8") as fbj:
        contents = fbj.read()

    contents = contents.lower()
    # 解析成单词列表
    words = contents.split()
    # 去除文章中的标点符号
    words = [word.strip(string.punctuation) for word in words]
    # 去除重复的单词
    words_set = set(words)

    # 用于存放单词和频数的字典
    words_dir = {}
    for key in words_set:
        words_dir[key] = 0

    # 开始统计单词的频数
    for word in words:
        if word in words_set:
            words_dir[word] += 1

    return words_dir

file_name = "test.txt"
# 文章中的标点符号要去除
words_dir = stats_words(file_name)
words_dir = sorted(words_dir.items(), key=lambda x: x[1], reverse=True)
print(words_dir)

结果如下

使用python进行词频分析-左眼会陪右眼哭の博客
使用python进行词频分析-左眼会陪右眼哭の博客

资源和代码下载

点击下载 链接:https://pan.baidu.com/s/17RQ72nJOyRsrcVaKtWFKyg 提取码:4au3

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用python进行中文词频分析
    • 分析刘慈欣小说《三体》(一二三部合集)出现次数最多的词语。
    • 使用python进行英文词频统计
    • 资源和代码下载
    相关产品与服务
    命令行工具
    腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档