Если вы просто хотите знать, что слово 'hello'
отсутствует в некоторых других документах, для этого может даже не потребоваться вспомогательная библиотека на естественном языке, такая как gensim
.Вы могли бы просто вести учет всех увиденных слов - и для этого должно быть достаточно простого Python dict
или set
или Counter
.(После загрузки его со всеми словами просто проверяйте каждое слово вашего нового текста по очереди.)
Сравнение TfidfModel
и Similarity
Генсима на самом деле.имеет дело с более тонкими относительными степенями сравнения (не «да / нет» присутствия слова).
И метод gensim.corpora.Dictionary.doc2bow()
обычно игнорирует слова, неизвестные словарю, - потому что у них нет назначенных слотов, и, следовательно, они, возможно, редки / не важны - скорее, чемвключить их в возвращенные данные.Таким образом, представления «мешка слов», которые он возвращает по умолчанию, которые по сути являются списками (known_word_index, count)
, не могут помочь в простом, еще не замеченном обнаружении еще не известных слов.
Однако вы можете посмотреть на его необязательный параметр return_missing
и запросить return_missing=True
.Затем он возвращает кортеж (bag_of_words, dict_of_missing_words) - и, посмотрев на это второе возвращаемое значение, посмотрите, какие слова не были уже в объекте gensim.corpora.Dictionary
.См .:
https://radimrehurek.com/gensim/corpora/dictionary.html#gensim.corpora.dictionary.Dictionary.doc2bow