我是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并产生我已经显示的输出..
请帮帮忙!!!
答案 0 :(得分:0)
我会用scikit-learn执行此操作,除非您必须自己为考试编写该功能。
这是一个不错的tutorial。
关于此的官方文档也非常好。它演示tokenization和实际tf-idf calculation。
希望这会有所帮助。