vector - 转换为 TFIDF 值向量的相似文档在向量空间中看起来如何

标签 vector machine-learning scikit-learn tf-idf

这可能是一个奇怪的问题,但我忍不住想知道。如果我说有三个文档:

  • d1 =“我叫斯特凡。”
  • d2 =“我叫大卫。”
  • d3 =“你好,你好吗?”

如果我将所有这 3 个文档转换为 TFIDF 值向量,在向量空间中,文档 d1d2 是否会更接近例如,彼此记录 d2d3 ?抱歉,如果这是一个愚蠢的问题,但我真的很想以某种方式形象化这一点,以便更好地理解它。预先感谢您!

最佳答案

是的,他们会更接近。

演示:

In [21]: from sklearn.feature_extraction.text import TfidfVectorizer

In [22]: from sklearn.metrics.pairwise import cosine_similarity

In [23]: tfidf = TfidfVectorizer(max_features=50000, use_idf=True, ngram_range=(1,3))

In [24]: r = tfidf.fit_transform(data)

In [25]: s = cosine_similarity(r)

In [26]: s
Out[26]:
array([[1.        , 0.53634991, 0.        ],
       [0.53634991, 1.        , 0.        ],
       [0.        , 0.        , 1.        ]])

In [27]: data
Out[27]: ['My name is Stefan.', 'My name is David.', 'Hello, how are you?']

关于vector - 转换为 TFIDF 值向量的相似文档在向量空间中看起来如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50826651/

相关文章:

c++ - 如何将 "const_reverse_iterator"参数传递给 "std::vector::erase()"?

r - 在 R 中将两个向量合二为一

machine-learning - CNN中的滤波器数量是多少?

python - 值错误: The number of classes has to be greater than one; got 1

python - 如何在 ColumnTransformer 的管道中实现逆变换?

c++ - std::unique 可以用来确定自定义类的对象是否具有相同的值吗?

pandas - 值错误 :Wrong number of items passed 2, 放置意味着 1

python - 如何部署我们的 ML 训练模型?

python - 将大数据集 PCA 保存在磁盘上以供以后在磁盘空间有限的情况下使用

c++ - 为什么 vector 上的这段代码会出现运行时错误?