如何用python实现TF-IDF
时间: 2024-05-14 07:17:36 浏览: 8
TF-IDF是一种用于文本数据的特征提取方法,可以用于文本分类、信息检索等任务。下面是一个简单的Python实现:
```python
import math
from collections import Counter
# 计算单词在文档中出现的次数
def word_count(text):
return Counter(text.split())
# 计算单词在所有文档中出现的次数
def count_docs_containing_word(word, documents):
count = 0
for document in documents:
if word in document:
count += 1
return count
# 计算单词在文档中的TF值
def calculate_tf(word, document):
words_in_document = document.split()
return words_in_document.count(word) / len(words_in_document)
# 计算单词在所有文档中的IDF值
def calculate_idf(word, documents):
n = len(documents)
df = count_docs_containing_word(word, documents)
return math.log((n+1) / (df+1)) + 1
# 计算TF-IDF值
def calculate_tfidf(word, document, documents):
tf = calculate_tf(word, document)
idf = calculate_idf(word, documents)
return tf * idf
```
这个实现中使用了Python的collections库中的Counter类来计算单词在文档中的出现次数,使用math库来计算log值。使用这个实现,可以计算出一个单词在一个文档中的TF值、在所有文档中的IDF值,以及TF-IDF值。