帮我写一个用TFIDF提取政策文本关键词,并对每一条政策给出关键词的代码
时间: 2024-10-07 14:04:41 浏览: 26
python TF-IDF算法实现文本关键词提取
当然可以,TF-IDF(Term Frequency-Inverse Document Frequency)是一种常用的文本特征提取方法,用于评估词语对于一个文档集合的重要程度。以下是一个简单的Python代码示例,使用`sklearn`库来实现TF-IDF并提取关键词:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
import pandas as pd
# 假设你的政策文本数据存储在一个DataFrame 'data'
data = {
"policy_id": [1, 2, 3, ...], # 政策编号
"text": ["政策内容1", "政策内容2", "政策内容3", ...] # 每条政策的文字描述
}
df_policy = pd.DataFrame(data)
# 定义TF-IDF向量化器
vectorizer = TfidfVectorizer()
# 计算TF-IDF分数
tfidf_matrix = vectorizer.fit_transform(df_policy["text"])
# 获取每个政策的关键词
def get_keywords(row, top_n=5):
feature_names = vectorizer.get_feature_names_out()
return feature_names[row.data.argsort()[:-top_n - 1:-1]] # 取得分最高的前n个词
# 应用到每一行数据
df_policy["keywords"] = df_policy.apply(get_keywords, axis=1)
print(df_policy)
```
这个例子中,我们首先创建了一个`TfidfVectorizer`实例,然后用它转换文本列。`get_keywords`函数获取了每个政策文本的TF-IDF得分最高的关键词。你可以通过调整`top_n`参数来控制返回的关键词数量。
阅读全文