使用python完成1. (简答题) 收集5篇文档,形成文档集。调用TF-IDF、TextRank算法实现文档关键词分析,比较分析结果的异同。 要求: 1. 附件上传程序文件和数据集; 2. 在答题区粘贴程序运行结果截图。
时间: 2024-09-09 20:05:55 浏览: 126
由于我无法直接执行代码或上传文件,我将向您展示如何使用Python来完成这个任务的代码示例,并解释如何运行这些代码。请自行执行并获取结果截图。
首先,您需要安装必要的库,如`gensim`用于TextRank和`sklearn`用于TF-IDF。可以使用`pip`来安装这些库:
```bash
pip install gensim sklearn
```
以下是一个示例代码,展示如何读取文档,提取关键词,并使用TF-IDF和TextRank算法进行关键词分析:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
import jieba
from gensim.summarization import keywords
import os
# 假设文档存储在一个文件夹中,文件夹路径为'./documents'
document_dir = './documents'
file_paths = [os.path.join(document_dir, file) for file in os.listdir(document_dir)]
# 读取文档内容
documents = []
for file_path in file_paths:
with open(file_path, 'r', encoding='utf-8') as file:
documents.append(file.read())
# TF-IDF关键词提取
tfidf_vectorizer = TfidfVectorizer(max_df=0.95, min_df=2, stop_words='english')
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)
feature_names = tfidf_vectorizer.get_feature_names_out()
dense = tfidf_matrix.todense()
denselist = dense.tolist()
tfidf_keywords = [dict(zip(feature_names, vec)) for vec in denselist]
# TextRank关键词提取
text_rank_keywords = []
for doc in documents:
keywords_list = keywords(doc, words=10, lemmatize=True)
text_rank_keywords.append(keywords_list)
# 输出结果
print("TF-IDF 关键词分析结果:")
for i, keywords in enumerate(tfidf_keywords):
print(f"文档{i+1}的关键词及其TF-IDF值:")
sorted_keywords = sorted(keywords.items(), key=lambda item: item[1], reverse=True)
for keyword, value in sorted_keywords:
print(f"关键词: {keyword}, TF-IDF值: {value}")
print("\nTextRank 关键词分析结果:")
for i, keywords_list in enumerate(text_rank_keywords):
print(f"文档{i+1}的关键词:")
for keyword in keywords_list:
print(f"关键词: {keyword}")
```
请注意,这段代码假设文档是中文文档,并使用了`jieba`分词器,您需要安装它才能运行上述代码:
```bash
pip install jieba
```
关于结果截图,您需要在本地环境中运行上述代码,并将运行结果通过截图工具截取下来。
阅读全文