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

 更新时间:2023年03月28日 14:26:08   作者:专注算法的马里奥学长  
本文主要介绍了Python中Jieba进行词频统计与关键词提取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1 词频统计

1.1 简单词频统计

1.导入jieba库并定义文本

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

2.对文本进行分词

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)

image.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) > 1]

统计词频并输出结果

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)

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

image.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 = ( 单词在文档中出现的次数 ) / ( 文档中的总单词数 ) 
例如,在一篇包含100个单词的文档中,某个单词出现了10次,则该单词的TF为
10 / 100 = 0.1 
IDF(Inverse Document Frequency)指的是在文档集合中出现某个单词的文档数的倒数。计算公式如下:
I D F = l o g ( 文档集合中的文档总数 / 包含该单词的文档数 ) 
例如,在一个包含1000篇文档的文档集合中,某个单词在100篇文档中出现过,则该单词的IDF为 l o g ( 1000 / 100 ) = 1.0
TFIDF是将TF和IDF相乘得到的结果,计算公式如下:
T F I D F = T F ∗ I D F 

需要注意的是,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参数表示是否返回关键字的权重值。最后,我们遍历关键字列表,输出每个关键字和对应的权重值。
这段函数的输出结果为:

image.png

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

到此这篇关于Python中Jieba进行词频统计与关键词提取的文章就介绍到这了,更多相关Python Jieba词频统计与关键词提取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中取整的几种方法小结

    Python中取整的几种方法小结

    这篇文章主要介绍了Python中取整的几种方法,其中包括向下取整、四舍五入取整、向上取整以及分别取整数部分和小数部分。分别都给出了示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,需要的朋友可以参考借鉴。
    2017-01-01
  • pycharm新建一个python工程步骤

    pycharm新建一个python工程步骤

    在本文里小编给读者们分享一篇关于pycharm怎么新建一个python工程的知识点和步骤内容,需要的朋友们学习下。
    2019-07-07
  • PyCharm专业最新版2019.1安装步骤(含激活码)

    PyCharm专业最新版2019.1安装步骤(含激活码)

    这篇文章主要介绍了PyCharm专业最新版2019.1安装步骤(含激活码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python使用Peewee创建数据库的实现示例

    Python使用Peewee创建数据库的实现示例

    Peewee是一个简单小巧的Python ORM,本文主要介绍了Python使用Peewee创建数据库的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • Django多层嵌套ManyToMany字段ORM操作详解

    Django多层嵌套ManyToMany字段ORM操作详解

    这篇文章主要介绍了Django多层嵌套ManyToMany字段ORM操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python 使用 pip 安装 matplotlib 模块的方法

    Python 使用 pip 安装 matplotlib 模块的方法

    matplotlib是python中强大的画图模块,这篇文章主要介绍了Python 使用 pip 安装 matplotlib 模块(秒解版),本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 基于PyQt5制作一个群发邮件工具

    基于PyQt5制作一个群发邮件工具

    这篇文章主要介绍了如何利用Python中的PyQt5模块,制作一个简易的邮件群发小工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • 深入浅析python 中的self和cls的区别

    深入浅析python 中的self和cls的区别

    这篇文章主要介绍了python 中的self和cls的实例代码及区别讲解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • python路径的写法及目录的获取方式

    python路径的写法及目录的获取方式

    今天小编就为大家分享一篇python路径的写法及目录的获取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python的pdb调试命令的命令整理及实例

    python的pdb调试命令的命令整理及实例

    这篇文章主要介绍了python的pdb调试命令的命令整理及实例的相关资料,需要的朋友可以参考下
    2017-07-07

最新评论