python中的Tf-Idf计算

时间:2015-02-17 00:17:25

标签: python list tf-idf

我是python的新手,我正在编写一个函数来计算给定两个参数的频率 - 逆文档频率这个术语。

参数:         docs ........列表列表,其中每个子列表包含一个文档的标记。         doc_freqs ...从术语到文档频率的词典(在特定术语中有多少文档)。

期望的输出:

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并产生我已经显示的输出..

请帮帮忙!!!

1 个答案:

答案 0 :(得分:0)

我会用scikit-learn执行此操作,除非您必须自己为考试编写该功能。

这是一个不错的tutorial

关于此的官方文档也非常好。它演示tokenization和实际tf-idf calculation

希望这会有所帮助。