Python实现TF-IDF提取关键词(sklearn库的使用)

TF-IDF算法

TF-IDF算法可用来提取文档的关键词,其主要思想是:如果某个单词在某篇文档中出现的频率很高,并且在其他文章中很少出现,则认为此词为该文档关键词。计算公式如下:
在这里插入图片描述

Python实现

TfidfVectorizer是sklearn中的库,可以用来计算TF-IDF值。

from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',
     'This document is the second document.',
     'And this is the third one.',
     'Is this the first document?',
 ]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
print(vectorizer.get_feature_names())
print(X.shape)

TfidfVectorizer=TfidfTransformer + CountVectorizer
fit_transform方法将语料转化成TF-IDF权重矩阵,get_feature_names方法可得到词汇表。
输出如下:
在这里插入图片描述
将权重矩阵转化成array:

X.toarray()

在这里插入图片描述
可以看到是4行9列,m行n列处值的含义是词汇表中第n个词在第m篇文档的TF-IDF值。提取单篇文档的关键词只需要将矩阵按行的值从大到小排序取前几个即可。如果要提取所有文档的关键词,我们可以将矩阵按列求和,得到每个词汇综合TF-IDF值。

X.toarray().sum(axis=0)

在这里插入图片描述
转化成dataframe,再排序。

data = {'word': vectorizer.get_feature_names(),
        'tfidf': X.toarray().sum(axis=0).tolist()}
df = pd.DataFrame(data)
df.sort_values(by="tfidf" , ascending=False) 
df

在这里插入图片描述
好啦,完成。假如取前三个为关键词,那么就是“document”、“is”和“the”。

  • 32
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
以下是Python实现英文txt文本TF-IDF提取关键词的示例代码: ```python import nltk from sklearn.feature_extraction.text import TfidfVectorizer # 读取文本文件 with open('text.txt', 'r') as f: text = f.read() # 分词 tokens = nltk.word_tokenize(text) # 去除停用词 stop_words = set(nltk.corpus.stopwords.words('english')) tokens = [token for token in tokens if not token in stop_words] # 计算TF-IDF值 tfidf = TfidfVectorizer() tfs = tfidf.fit_transform([text]) # 提取关键词 feature_names = tfidf.get_feature_names() top_n = 10 top_features = [feature_names[i] for i in tfs[0].indices.argsort()[-top_n:][::-1]] # 输出关键词 print(top_features) ``` 具体步骤如下: 1. 读取文本文件,使用Python内置的`open`函数读取文本文件。 2. 对文本进行分词,使用NLTK的`word_tokenize`函数进行分词。 3. 去除停用词,使用NLTK的`stopwords`函数获取停用词列表,然后遍历分词结果去除停用词。 4. 计算TF-IDF值,使用sklearn的`TfidfVectorizer`函数计算TF-IDF值。 5. 提取关键词,获取TF-IDF值最高的前n个特征词,使用sklearn的`get_feature_names`函数获取特征词列表,然后按照TF-IDF值排序并取前n个特征词。 6. 输出关键词使用Python内置的`print`函数输出关键词列表。 需要注意的是,为了使用NLTKsklearn,需要先安装这两个。可以使用pip安装,命令如下: ```bash pip install nltk sklearn ``` 此外,还需要下载NLTK的停用词列表,可以使用以下Python代码下载: ```python import nltk nltk.download('stopwords') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值