【问题标题】:Tf-Idf calculation in pythonpython中的Tf-Idf计算
【发布时间】: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 并产生我所展示的输出..

请大家帮忙!!!

【问题讨论】:

标签: python list tf-idf


【解决方案1】:

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

这是一个不错的tutorial

这方面的官方文档也很不错。它演示了tokenization 和实际的tf-idf calculation

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2016-02-03
    • 2012-04-23
    • 2017-11-14
    • 1970-01-01
    • 2015-02-14
    • 2016-10-13
    相关资源
    最近更新 更多