如何计算要分类的单个新文档的TF*IDF?

smw*_*dia 21 information-retrieval classification machine-learning text-mining document-classification

我使用文档术语向量来表示文档集合.我使用TF*IDF来计算每个文档向量的术语权重.然后我可以使用这个矩阵来训练文档分类的模型.

我期待将来对新文档进行分类.但是为了对其进行分类,我需要首先将文档转换为文档术语向量,并且向量也应该由TF*IDF值组成.

我的问题是,如何只用一个文件来计算TF*IDF?

据我所知,TF可以根据单个文档本身计算,但IDF只能用文档集合计算.在我目前的实验中,我实际上计算了整个文档集合的TF*IDF值.然后我使用一些文档作为训练集,其他文档作为测试集.

我突然意识到这似乎不适用于现实生活.

添加1

因此,实际上有两种微妙的分类方案:

  1. 对某些内容已知但标签未知的文件进行分类.
  2. 对一些完全看不见的文件进行分类.

对于1,我们可以组合所有文档,包括标签和不标签.并获得所有这些TF*IDF.这样,即使我们只使用带有标签的文件进行培训,培训结果仍然会包含没有标签的文件的影响.

但我的情况是2.

假设我从训练集语料库的摘要中获得了关于术语T的以下信息:

  • 训练集中T的文档计数为n
  • 培训文件总数为N.

我应该如下计算看不见的文件D 的ID的IDF 吗?

IDF(t,D)= log((N + 1)/(n + 1))

添加2

如果我在新文档中遇到一个之前没有出现在训练语料库中的术语怎么办?我应该如何计算doc-term向量中的权重?

Rob*_*aus 12

TF-IDF对单个文档没有意义,独立于语料库.它从根本上讲是强调相对稀有和信息丰富的词汇.

您需要保留语料库摘要信息以计算TF-IDF权重.特别是,您需要每个术语的文档计数和文档总数.

您是否想要使用整个训练集和TF-IDF测试集的摘要信息,或仅用于训练集是问题公式的问题.如果您只关心将您的分类系统应用于您拥有的内容,但您没有其标签的文档(这实际上很常见),那么使用TF-IDF就可以了.如果您想在训练后将分类系统应用于完全看不见的文档,那么您只想使用训练集中的TF-IDF摘要信息.