这可能是一个奇怪的问题,但我忍不住想知道。如果我有三份文档:
- d1 = “我的名字是Stefan。”
- d2 = “我的名字是David。”
- d3 = “你好,你好吗?”
如果我将这三份文档全部转换为TFIDF
值向量,在向量空间中,文档d1
和d2
是否会比文档d2
和d3
更接近?如果这是一个愚蠢的问题,我很抱歉,但我真的很想通过某种方式可视化这些内容,以便更好地理解。提前谢谢你!
回答:
是的,它们会更接近。
演示:
In [21]: from sklearn.feature_extraction.text import TfidfVectorizerIn [22]: from sklearn.metrics.pairwise import cosine_similarityIn [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]: sOut[26]:array([[1. , 0.53634991, 0. ], [0.53634991, 1. , 0. ], [0. , 0. , 1. ]])In [27]: dataOut[27]: ['My name is Stefan.', 'My name is David.', 'Hello, how are you?']