簡體   English   中英

python中的TF-Idf計算

[英]Tf-Idf calculation in python

我是python的新手,我想編寫一個函數,該函數在給定兩個參數的情況下計算術語頻率反文檔頻率。

參數:docs ........列表列表,其中每個子列表包含一個文檔的標記。 doc_freqs ... dict從術語到文檔的頻率(特定術語有多少個文檔)。

所需輸出:

index = create_tfidf_index([['a', 'b', 'a'], ['a']], {'a': 2., 'b': 1., 'c': 1.})
index['a']
[[0, 0.0], [1, 0.0]]
index['b']  
[[0, 0.301...]]

我的代碼來找到doc_freq(tfidf函數中的第二個參數)

def count_doc_frequencies(docs):
    tmp = []
    lst = {}
    for item in docs: tmp += set(item)
    for key in tmp: lst[key] = lst.get(key, 0) + 1
    return lst

res = Index().count_doc_frequencies([['a', 'b', 'a'], ['a', 'b', 'c'], ['a']])
res['a']
3

現在任何人都可以幫助我如何使用上述兩個參數計算tf-idf並產生如圖所示的輸出。

請幫助大家!!!

除非您必須為考試編寫自己的函數,否則我將使用scikit-learn進行此操作。

這是一個不錯的教程

官方文檔也相當不錯。 它演示了標記化和實際的tf-idf計算

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM