【问题标题】:Difference between VectorSize in word2Vec and numFeatures in TF-IDFword2Vec 中的 VectorSize 和 TF-IDF 中的 numFeatures 之间的区别
【发布时间】:2021-04-29 00:00:14
【问题描述】:

Word2Vec中的vectorSizeHashingTF中的numFeatures有什么区别?我指的是pyspark中的类Word2VecHashingTF

WORD2VEC:类 pyspark.ml.feature.Word2Vec(*, vectorSize=100, minCount=5, numPartitions=1, stepSize=0.025, maxIter=1,种子=None, inputCol=None, outputCol=None, windowSize=5, maxSentenceLength=1000)

HashingTF:类 pyspark.ml.feature.HashingTF(*, numFeatures=262144, binary=False, inputCol=None, outputCol=None)

【问题讨论】:

    标签: python gensim word2vec tf-idf


    【解决方案1】:

    它们都是表示的维度,但值将在不同的范围内并以不同的方式有用。

    Word2Vec 中,每个单词都有一个vectorSize 维度的向量——其中每个维度都是一个浮点数(而不是一个整数)。这些值将是正数和负数,并且基本上永远不会为零。因此,所有单词在原点周围的模糊空间“云”中都有坐标。

    因此,word2vec 向量被认为是单词的“密集嵌入”:它将单词表示到较小的向量空间(“嵌入”它),其中每个维度都变化并保存一些信息(“密集” )。因此,所有(在您的示例中为 100 个)维度将用于表示任何一项(单词)。

    HashingTF(可能代表“散列词频”或“散列技巧频率”)中,包含许多单词的文本文档会获得一个具有numFeatures 维度的向量 - 其中每个维度都是非负整数计数某些单词在文档中出现的次数。

    通过使用一种称为“哈希技巧”的技术,它可以确保任何单词,无论之前是否见过,都被分配(通过哈希值)到一组固定的计数桶中的一个。向量中每个维度的值是分配给一个桶的单词的计数。在典型情况下,如果不是几乎所有的桶,很多桶都是空的,因此相应维度中的值为零。

    因此,HashingTF 向量被认为是文档的“稀疏嵌入”:它将文档表示为较小的向量空间(“嵌入”它),其中大多数维度通常保持为零,但相关的小子集的维度变为非零(“稀疏”)。因此,(在您的示例中为 262,144)维度可能仅由非零维度及其值的简短列表表示。

    【讨论】:

    • 谢谢!但是如何为 hashingTF 中的 numFeatures 选择和设置正确的参数?
    • 您是否有任何理由认为默认值 262,144(如您的问题所示)对您不起作用? (“散列技巧”的本质是它对词汇量大小的变化相当宽容。)
    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2018-09-19
    • 2016-10-13
    • 2019-09-28
    • 2014-06-24
    • 2015-04-17
    相关资源
    最近更新 更多