TF-IDF,python
时间: 2024-12-07 18:14:13 浏览: 10
Python爬取十篇新闻统计TF-IDF
TF-IDF(Term Frequency-Inverse Document Frequency)是一种用于信息检索和文本挖掘的常用加权技术。它通过评估一个词在一个文档集合中的重要性来衡量该词对某个文档的相关性。TF-IDF由两个部分组成:词频(TF)和逆文档频率(IDF)。
1. **词频(TF)**:表示一个词在文档中出现的频率。词频的计算公式为:
\[
TF(t, d) = \frac{f_{t,d}}{\sum_{t' \in d} f_{t',d}}
\]
其中,\(f_{t,d}\) 表示词 \(t\) 在文档 \(d\) 中出现的次数,\(\sum_{t' \in d} f_{t',d}\) 表示文档 \(d\) 中所有词的总次数。
2. **逆文档频率(IDF)**:表示一个词在整个文档集合中出现的频率。逆文档频率的计算公式为:
\[
IDF(t, D) = \log \frac{N}{|\{d \in D: t \in d\}|}
\]
其中,\(N\) 表示文档集合 \(D\) 中的总文档数,\(|\{d \in D: t \in d\}|\) 表示包含词 \(t\) 的文档数。
TF-IDF 的计算公式为:
\[
TF-IDF(t, d, D) = TF(t, d) \times IDF(t, D)
\]
TF-IDF 的值越高,表示该词对文档的相关性越高。
在 Python 中,可以使用 scikit-learn 库来实现 TF-IDF。以下是一个简单的示例代码:
```python
from sklearn.feature_extraction.text import TfidfVectorizer
# 示例文档
documents = [
"This is the first document.",
"This document is the second document.",
"And this is the third one.",
"Is this the first document?"
]
# 初始化 TF-IDF 向量化器
vectorizer = TfidfVectorizer()
# 计算 TF-IDF 矩阵
tfidf_matrix = vectorizer.fit_transform(documents)
# 输出词汇表
print("词汇表:", vectorizer.get_feature_names_out())
# 输出 TF-IDF 矩阵
print("TF-IDF 矩阵:\n", tfidf_matrix.toarray())
```
阅读全文