相似文档如何转换为 TFIDF 值向量在向量中的外观 space
How do similar documents transformed into TFIDF valued vector look in vector space
这可能是一个奇怪的问题,但我忍不住想知道。如果我说有三个文件:
- d1 = "My name is Stefan."
- d2 = "My name is David."
- d3 = "Hello, how are you?"
如果我将所有这 3 个文档转换为 TFIDF
值向量,在向量 space 中,文档 d1
和 d2
是否会彼此更接近例如文档 d2
和 d3
?抱歉,如果这是一个愚蠢的问题,但我真的很想以某种方式想象一下,以便更好地理解它。提前致谢!
是的,他们会更近。
演示:
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?']
这可能是一个奇怪的问题,但我忍不住想知道。如果我说有三个文件:
- d1 = "My name is Stefan."
- d2 = "My name is David."
- d3 = "Hello, how are you?"
如果我将所有这 3 个文档转换为 TFIDF
值向量,在向量 space 中,文档 d1
和 d2
是否会彼此更接近例如文档 d2
和 d3
?抱歉,如果这是一个愚蠢的问题,但我真的很想以某种方式想象一下,以便更好地理解它。提前致谢!
是的,他们会更近。
演示:
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?']