【发布时间】:2015-04-17 15:01:17
【问题描述】:
我是 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 并产生我所展示的输出..
请大家帮忙!!!
【问题讨论】:
-
您是否考虑过为此使用 scikit learn? scikit-learn.org/stable/tutorial/text_analytics/…