如何分析识别文章/内容中高频词和关键词?

要分析一篇文章的高频词和关键词,可以使用 Python 中的 nltk 库和 collections 库或者jieba库来实现,本篇文章介绍基于两种库分别实现分析内容中的高频词和关键词。

nltk 和 collections 库

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

shell 复制代码
pip install nltk
pip install collections

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

python 复制代码
import nltk

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

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

python 复制代码
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)库实现

python 复制代码
# 导入必要的库
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()
  1. 导入jieba库:首先需要导入jieba库,才能使用其中的分词功能。

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

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

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

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

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

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

相关推荐
川石课堂软件测试1 小时前
全链路Controller压测负载均衡
android·运维·开发语言·python·mysql·adb·负载均衡
喜欢吃豆1 小时前
微调高级推理大模型(COT)的综合指南:从理论到实践
人工智能·python·语言模型·大模型·微调·强化学习·推理模型
喜欢吃豆2 小时前
从指令遵循到价值对齐:医疗大语言模型的进阶优化、对齐与工具集成综合技术白皮书
人工智能·python·语言模型·自然语言处理·大模型·强化学习·constitutional
Access开发易登软件2 小时前
Access调用Azure翻译:轻松实现系统多语言切换
后端·python·低代码·flask·vba·access·access开发
yumgpkpm2 小时前
CMP (类Cloudera) CDP7.3(400次编译)在华为鲲鹏Aarch64(ARM)信创环境中的性能测试过程及命令
大数据·hive·hadoop·python·elasticsearch·spark·cloudera
代码小菜鸡6663 小时前
java 常用的一些数据结构
java·数据结构·python
CodeCraft Studio4 小时前
Excel处理控件Aspose.Cells教程:使用 Python 将 HTML 转换为 Excel
python·html·excel·aspose·aspose.cells·html转excel
王中阳Go4 小时前
Python 的 PyPy 能追上 Go 的性能吗?
后端·python·go
Goboy4 小时前
控制仙术流程 - 抉择与循环的艺术
后端·python
麦麦大数据5 小时前
F024 vue+flask电影知识图谱推荐系统vue+neo4j +python实现
vue.js·python·flask·知识图谱·推荐算法·电影推荐