Jieba进行词频统计与关键词提取

简介: Jieba进行词频统计与关键词提取

1 词频统计

1.1 简单词频统计

导入jieba库并定义文本

import jieba
text = "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域。"

对文本进行分词

words = jieba.cut(text)


这一步会将文本分成若干个词语,并返回一个生成器对象words,可以使用for循环遍历所有的词语。

3. 统计词频


word_count = {}
for word in words:
    if len(word) > 1:
        word_count[word] = word_count.get(word, 0) + 1


这一步通过遍历所有的词语,统计每个词语出现的次数,并保存到一个字典word_count中。在统计词频时,可以通过去除停用词等方式进行优化,这里只是简单地过滤了长度小于2的词语。

4. 结果输出


for word, count in word_count.items():
    print(word, count)

22e7df6e0dae06a6d42bbc38d7eb44f3.png


1.2 加入停用词

为了更准确地统计词频,我们可以在词频统计中加入停用词,以去除一些常见但无实际意义的词语。具体步骤如下:


定义停用词列表

import jieba
# 停用词列表
stopwords = ['是', '一种', '等']


对文本进行分词,并过滤停用词

text = "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域。"
words = jieba.cut(text)
words_filtered = [word for word in words if word not in stopwords and len(word) >


统计词频并输出结果

word_count = {}
for word in words_filtered:
    word_count[word] = word_count.get(word, 0) + 1
for word, count in word_count.items():
    print(word, count)


加入停用词后,输出的结果是:


4f5551b178af9c5a2849731f619a234d.png


可以看到,被停用的一种这个词并没有显示出来。


2 关键词提取

2.1 关键词提取原理

与对词语进行单纯计数的词频统计不同,jieba提取关键字的原理是基于TF-IDF(Term Frequency-Inverse Document Frequency)算法。TF-IDF算法是一种常用的文本特征提取方法,可以衡量一个词语在文本中的重要程度。


具体来说,TF-IDF算法包含两个部分:


Term Frequency(词频):指一个词在文本中出现的次数,通常用一个简单的统计值表示,例如词频、二元词频等。词频反映了一个词在文本中的重要程度,但是忽略了这个词在整个语料库中的普遍程度。

Inverse Document Frequency(逆文档频率):指一个词在所有文档中出现的频率的倒数,用于衡量一个词的普遍程度。逆文档频率越大,表示一个词越普遍,重要程度越低;逆文档频率越小,表示一个词越独特,重要程度越高。

TF-IDF算法通过综合考虑词频和逆文档频率,计算出每个词在文本中的重要程度,从而提取关键字。在jieba中,关键字提取的具体实现包括以下步骤:


对文本进行分词,得到分词结果。

统计每个词在文本中出现的次数,计算出词频。

统计每个词在所有文档中出现的次数,计算出逆文档频率。

综合考虑词频和逆文档频率,计算出每个词在文本中的TF-IDF值。

对TF-IDF值进行排序,选取得分最高的若干个词作为关键字。

举个例子:

F(Term Frequency)指的是某个单词在一篇文档中出现的频率。计算公式如下:

T F = ( 单 词 在 文 档 中 出 现 的 次 数 ) / ( 文 档 中 的 总 单 词 数 ) TF = (单词在文档中出现的次数) / (文档中的总单词数)

TF=(单词在文档中出现的次数)/(文档中的总单词数)


例如,在一篇包含100个单词的文档中,某个单词出现了10次,则该单词的TF为

10 / 100 = 0.1 10/100=0.1

10/100=0.1


IDF(Inverse Document Frequency)指的是在文档集合中出现某个单词的文档数的倒数。计算公式如下:

I D F = l o g ( 文 档 集 合 中 的 文 档 总 数 / 包 含 该 单 词 的 文 档 数 ) IDF = log(文档集合中的文档总数 / 包含该单词的文档数)

IDF=log(文档集合中的文档总数/包含该单词的文档数)


例如,在一个包含1000篇文档的文档集合中,某个单词在100篇文档中出现过,则该单词的IDF为

l o g ( 1000 / 100 ) = 1.0 log(1000/100)=1.0

log(1000/100)=1.0


TFIDF是将TF和IDF相乘得到的结果,计算公式如下:

T F I D F = T F ∗ I D F TFIDF = TF * IDF

TFIDF=TF∗IDF


需要注意的是,TF-IDF算法只考虑了词语在文本中的出现情况,而忽略了词语之间的关联性。因此,在一些特定的应用场景中,需要使用其他的文本特征提取方法,例如词向量、主题模型等。


2.2 关键词提取代码

import jieba.analyse
# 待提取关键字的文本
text = "Python是一种高级编程语言,广泛应用于人工智能、数据分析、Web开发等领域。"
# 使用jieba提取关键字
keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True)
# 输出关键字和对应的权重
for keyword, weight in keywords:
    print(keyword, weight)



在这个示例中,我们首先导入了jieba.analyse模块,然后定义了一个待提取关键字的文本text。接着,我们使用jieba.analyse.extract_tags()函数提取关键字,其中topK参数表示需要提取的关键字个数,withWeight参数表示是否返回关键字的权重值。最后,我们遍历关键字列表,输出每个关键字和对应的权重值。

这段函数的输出结果为:


2b75b8f3f4e0029ce68b48f58541fec2.png

可以看到,jieba根据TF-IDF算法提取出了输入文本中的若干个关键字,并返回了每个关键字的权重值。


相关文章
|
机器学习/深度学习 自然语言处理 算法
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
11562 145
|
数据采集 存储 算法
终于有人把数据挖掘讲明白了
在大数据时代,许多企业面临一个难题:数据存储量庞大,却难以从中挖掘真正价值。本文深入探讨了数据挖掘的核心概念与实践方法,解析了其与普通数据分析的区别,并通过真实案例展示了如何通过数据挖掘发现隐藏的业务规律。文章还详细介绍了数据挖掘的六个步骤及三大关键点,强调了业务理解与数据质量的重要性,帮助企业在实际应用中少走弯路,真正实现数据驱动决策。
终于有人把数据挖掘讲明白了
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
1038 0
|
监控 容灾 Java
系统稳定性建设三件事
本文分享了作者学习稳定性工作、构建思路、落实方案,面对问题不断反思再推进的经验总结。
系统稳定性建设三件事
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
消息中间件 负载均衡 Java
常见的负载均衡策略有哪些?
常见的负载均衡策略有哪些?
2294 3
|
自然语言处理 算法
文本分析-使用jieba库实现TF-IDF算法提取关键词
文本分析-使用jieba库实现TF-IDF算法提取关键词
1505 1
|
机器学习/深度学习 自然语言处理 搜索推荐
一文掌握jieba分词器的常见用法,附带案例
该文章全面介绍了jieba分词器的使用方法,包括安装步骤、不同分词模式的使用,以及如何通过实例代码进行文本分词处理。
2774 0
|
Ubuntu Linux
ubuntu22.04禁止自动休眠的几种方式
在Ubuntu 22.04中禁用自动休眠可以通过多种方法实现,用户可以根据自己的技术水平和需求选择合适的方法。无论是通过图形界面还是命令行,都可以有效地防止系统进入自动休眠状态,确保长时间运行的任务不受干扰。通过理解和应用这些设置,可以更好地管理Ubuntu系统的电源行为,提高工作效率和系统稳定性。
7854 4