Как похожие документы, преобразованные в вектор со значениями TFIDF, выглядят в векторном пространстве

Это может быть странный вопрос, но я не могу не задаться вопросом. Допустим, у меня есть три документа:

  • d1 = "Меня зовут Стефан."
  • d2 = «Меня зовут Дэвид».
  • d3 = "Привет, как дела?"

И если я преобразую все эти 3 документа в вектора со значениями TFIDF в векторном пространстве, будут ли документы d1 и d2 ближе друг к другу, чем, например, документы d2 и d3? Извините, если это глупый вопрос, но мне бы очень хотелось как-то визуализировать это, чтобы лучше понять это. Заранее спасибо!


person Ćepa    schedule 12.06.2018    source источник


Ответы (1)


Да, они будут ближе.

Демо:

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?']
person MaxU    schedule 12.06.2018