【发布时间】:2017-03-20 17:30:27
【问题描述】:
我正在使用词袋模型对文本进行分类。我阅读了 800 个文本文件,每个文件都包含一个句子。
然后句子表示如下:
[{"OneWord":True,"AnotherWord":True,"AndSoOn":True},{"FirstWordNewSentence":True,"AnSoOn":True},...]
我的数据有多少维度?
它是最大向量中的条目数吗?或者是唯一词的数量?还是别的什么?
【问题讨论】:
我正在使用词袋模型对文本进行分类。我阅读了 800 个文本文件,每个文件都包含一个句子。
然后句子表示如下:
[{"OneWord":True,"AnotherWord":True,"AndSoOn":True},{"FirstWordNewSentence":True,"AnSoOn":True},...]
我的数据有多少维度?
它是最大向量中的条目数吗?或者是唯一词的数量?还是别的什么?
【问题讨论】:
对于每个文档,词袋模型都有一组稀疏特征。例如(在你的例子中使用你的第一句话):
OneWord
AnotherWord
AndSoOn
以上三个是文档的三个active 特征。它是稀疏的,因为我们从不明确列出那些inactive 特征并且我们有一个非常大的词汇表(您认为是特征的所有可能的唯一词)。换句话说,我们没有说:
OneWord
AnotherWord
AndSoOn
FirstWordNewSentence: false
我们只包含那些“真实”的词。
我的数据有几个维度? 它是最大向量中的条目数吗?或者是唯一词的数量?还是别的什么?
如果您坚持使用 sparse 特征表示,您可能希望改为估计每个文档的平均活动特征数。在您的示例中,该数字为 2.5 ((3+2)/2 = 2.5)。
如果您使用密集表示(例如,one-hot encoding,虽然词汇量很大,但不是一个好主意),输入维度等于您的词汇量大小。
如果您使用具有 100 维的词嵌入并将所有词的嵌入组合成一个新的输入向量来表示文档,那么您的输入维数为 100。在这种情况下,您可以通过 embedding 将稀疏特征转换为 密集 特征。
【讨论】: