在向量空间模型中表示文档
Posted
技术标签:
【中文标题】在向量空间模型中表示文档【英文标题】:Representing documents in vector space model 【发布时间】:2012-12-09 10:18:12 【问题描述】:我有一个非常基本的问题。我有两套文档,一套用于培训,一套用于测试。我想用训练文档训练一个逻辑回归分类器。我想知道我做的是否正确。
-
首先找到训练文档中所有唯一单词的列表,称之为词汇表。
对于词汇表中的每个单词,在每个训练文档中找到它的 TFIDF。然后将文档表示为这些 TFIDF 分数的向量。
我的问题是: 1. 我如何代表测试文件?比如说,其中一个测试文档在词汇表中没有任何单词。在这种情况下,该文档词汇表中所有单词的 TFIDF 分数将为零。
-
我正在尝试使用使用稀疏向量格式的 LIBSVM。对于上述文档的情况,其向量表示中的所有条目都设置为 0,我该如何表示呢?
【问题讨论】:
【参考方案1】:您必须存储足够的关于训练语料库的信息,才能对看不见的文档进行 TF IDF 转换。这意味着您将需要训练语料库中术语的文档频率。忽略测试文档中看不见的单词很好。无论如何,您的 svm 不会为他们学习权重。请注意,如果您的训练和测试分布相似,那么在测试语料库中看不见的术语应该很少见。因此,即使删除了一些术语,您仍然有很多术语可以对文档进行分类。
【讨论】:
所以如果我有一个测试文档,其中包含训练语料库中从未出现过的单词,我的 tfidf 文档向量将全为零,对吗? 仅当文档是所有看不见的单词时。 是的。当我使用像 libSVM 这样的库时,它遵循稀疏向量格式。因此,由于所有条目都是 0 ,因此稀疏向量表示为空。如果你熟悉 libSVM ,你知道这是如何处理的吗? 您无需费心在向量中放入 0 个条目,它们什么都不做。如果你给 LibSVM 一个 0 向量,它只会使用 SVM 中的偏差项,这可能对应于选择训练数据中最受欢迎的类。以上是关于在向量空间模型中表示文档的主要内容,如果未能解决你的问题,请参考以下文章