基于python实现分析识别文章/内容中的高频词和关键词

 更新时间:2023年09月02日 09:48:27   作者:青Cheng序员石头  
要分析一篇文章的高频词和关键词,可以使用 Python 中的 nltk 库和 collections 库或者jieba库来实现,本篇文章介绍基于两种库分别实现分析内容中的高频词和关键词,需要的朋友可以参考下

nltk 和 collections 库

首先,需要安装 nltk 库和 collections 库。可以使用以下命令来安装:

pip install nltk
pip install collections

接下来,需要下载 nltk 库中的 stopwords 和 punkt 数据。可以使用以下代码来下载:

import nltk
nltk.download('stopwords')
nltk.download('punkt')

下载完成后,可以使用以下代码来读取文章并进行分析:

import collections
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
# 读取文章
with open('article.txt', 'r',encoding='utf-8') as f:
    article = f.read()
# 分词
tokens = word_tokenize(article)
# 去除停用词
stop_words = set(stopwords.words('english'))
filtered_tokens = [token for token in tokens if token.lower() not in stop_words]
# 统计词频
word_freq = collections.Counter(filtered_tokens)
# 输出高频词
print('Top 10 frequent words:')
for word, freq in word_freq.most_common(10):
    print(f'{word}: {freq}')
# 提取关键词
keywords = nltk.FreqDist(filtered_tokens).keys()
# 输出关键词
print('Keywords:')
for keyword in keywords:
    print(keyword)

上述代码中,首先使用 open() 函数读取文章,然后使用 word_tokenize() 函数将文章分词。接着,使用 stopwords 数据集去除停用词,使用 collections.Counter() 函数统计词频,并输出高频词。最后,使用 nltk.FreqDist() 函数提取关键词,并输出关键词。

需要注意的是,上述代码中的 article.txt 文件需要替换为实际的文章文件路径。

结巴(jieba)库实现

# 导入必要的库
import jieba
import jieba.analyse
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文章
with open('./data/2.txt', 'r', encoding='utf-8') as f:
    article = f.read()
# 分词
words = jieba.cut(article)
# 统计词频
word_counts = Counter(words)
# 输出高频词
print('高频词:')
for word, count in word_counts.most_common(10):
    print(word, count)
# 输出关键词
print('关键词:')
keywords = jieba.analyse.extract_tags(article, topK=10, withWeight=True, allowPOS=('n', 'nr', 'ns'))
for keyword, weight in keywords:
    print(keyword, weight)
# 生成词云
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white', width=800, height=600).generate(article)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
  • 导入jieba库:首先需要导入jieba库,才能使用其中的分词功能。

  • 读取文章:需要读取要分析的文章,可以使用Python内置的open函数打开文件,然后使用read方法读取文件内容。

  • 分词:使用jieba库的cut方法对文章进行分词,得到一个生成器对象,可以使用for循环遍历生成器对象,得到每个词。

  • 统计词频:使用Python内置的collections库中的Counter类,对分词后的词进行统计,得到每个词出现的次数。

  • 输出高频词:根据词频统计结果,输出出现频率最高的词,即为高频词。

  • 输出关键词:使用jieba库的analyse模块中的extract_tags方法,根据TF-IDF算法计算每个词的权重,输出权重最高的词,即为关键词。

  • 生成词云:使用wordcloud库生成词云,将文章中的词按照词频生成词云,词频越高的词在词云中出现的越大。

到此这篇关于基于python实现分析识别文章/内容中的高频词和关键词的文章就介绍到这了,更多相关python分析识别高频词和关键词内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python通过命令提示符安装matplotlib

    Python通过命令提示符安装matplotlib

    这篇文章主要给大家介绍了关于Python通过命令提示符安装matplotlib的相关资料,文中还介绍了离线安装这一种方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-11-11
  • 使用python 计算百分位数实现数据分箱代码

    使用python 计算百分位数实现数据分箱代码

    这篇文章主要介绍了使用python 计算百分位数实现数据分箱代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python基于机器学习方法实现的电影推荐系统实例详解

    Python基于机器学习方法实现的电影推荐系统实例详解

    这篇文章主要介绍了Python基于机器学习方法实现的电影推荐系统,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • python使用yaml格式文件的方法

    python使用yaml格式文件的方法

    本文主要介绍了python使用yaml格式文件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • anaconda虚拟环境默认路径的更改图文教程

    anaconda虚拟环境默认路径的更改图文教程

    在Anaconda中如果没有指定路径,虚拟环境会默认安装在anaconda所安装的目录下,这篇文章主要给大家介绍了关于anaconda虚拟环境默认路径更改的相关资料,需要的朋友可以参考下
    2023-10-10
  • Python基于回溯法子集树模板解决m着色问题示例

    Python基于回溯法子集树模板解决m着色问题示例

    这篇文章主要介绍了Python基于回溯法子集树模板解决m着色问题,简单描述了m着色问题并结合实例形式分析了Python使用回溯法子集树模板解决m着色问题的具体步骤与相关操作注意事项,需要的朋友可以参考下
    2017-09-09
  • python中使用np.delete()的实例方法

    python中使用np.delete()的实例方法

    在本篇文章里小编给大家整理的是一篇关于python中使用np.delete()的实例方法,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • python实现web应用框架之增加动态路由

    python实现web应用框架之增加动态路由

    这篇文章主要介绍web应用框架如何添加动态路由,在我们编写的框架中,我们添加动态路由,是使用了正则表达式,同时在注册的时候,需要注明该路由是请求路由,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • Python开发中的Nonetype类型详解

    Python开发中的Nonetype类型详解

    这篇文章主要介绍了Python开发中的Nonetype类型详解,None有自己的数据类型NoneType,你可以将None复制给任何变量,但是你不能创建其他NoneType对象,需要的朋友可以参考下
    2023-12-12
  • Python和Golang协程的区别

    Python和Golang协程的区别

    这篇文章主要为大家介绍了Python和Golang协程的区别示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12

最新评论