【发布时间】:2023-03-04 17:51:01
【问题描述】:
我正在使用文档术语向量来表示文档集合。我使用TF*IDF 来计算每个文档向量的术语权重。然后我可以使用这个矩阵来训练一个文档分类模型。
我期待将来对新文档进行分类。但是为了分类,我需要先把文档变成一个document-term向量,这个向量也应该由TF*IDF值组成。
我的问题是,如何仅使用一个文档计算 TF*IDF?
据我了解,TF可以根据单个文档本身来计算,但是IDF只能用文档集合来计算。在我当前的实验中,我实际上计算了 whole 文档集合的 TF*IDF 值。然后我使用一些文档作为训练集,其他作为测试集。
我突然意识到这似乎不太适用于现实生活。
添加 1
所以实际上有两种细微不同的分类场景:
- 对一些内容已知但标签未知的文档进行分类 已知。
- 对一些完全看不见的文档进行分类。
对于 1,我们可以组合 所有 文档,包括有标签和没有标签。并获得所有这些的 TF*IDF。 这样,即使我们只使用有标签的文档进行训练,训练结果仍然会包含没有标签的文档的影响。
但我的情况是 2。
假设我从 training 集语料库的摘要中获得了术语 T 的以下信息:
- 训练集中 T 的文档数为 n
- 训练文档总数为 N
我应该为 unseen 文档 D 计算 t 的 IDF,如下所示?
IDF(t, D)= log((N+1)/(n+1))
添加 2
如果我在新文档中遇到之前没有出现在训练语料库中的术语怎么办? 我应该如何计算它在 doc-term 向量中的权重?
【问题讨论】:
标签: machine-learning classification information-retrieval text-mining document-classification