Есть ли способ удалить слово из словаря KeyedVectors?

Мне нужно удалить недопустимое слово из словаря "gensim.models.keyedvectors.Word2VecKeyedVectors".

Я пытался удалить его с помощью del model.vocab[word], если я печатаю model.vocab, слово исчезает, но когда я запускаю model.most_similar, используя другие слова, слово, которое я удалил, все еще отображается как похожее. Итак, как я могу удалить слово из model.vocab таким образом, чтобы это не повлияло на model.most_similar?


person Matheus Tramontini    schedule 14.02.2019    source источник
comment
Возможный дубликат Как удалить слово полностью из модели Word2Vec в gensim?   -  person Ryan Y    schedule 17.04.2019


Ответы (2)


Не существует метода, поддерживающего удаление отдельных слов.

Быстрый и грязный обходной путь может состоять в том, чтобы одновременно с удалением записи vocab отметить index существующего вектора (в базовом большом векторном массиве), а также изменить строку в списке kv_model.index2entity по этому индексу на некоторое значение плагина (например, '***DELETED***').

Затем, после выполнения любого most_similar(), отбросьте все записи, соответствующие '***DELETED***'.

person gojomo    schedule 15.02.2019
comment
Хорошо понял! Спасибо! - person Matheus Tramontini; 18.02.2019

Ссылаться на:

Как полностью удалить слово из Модель Word2Vec в gensim?

  1. Возможный способ 1: Я решаю это, редактируя сам файл текстовой модели.
  2. Возможный способ 2: обратитесь к ответу @zsozso. (Хотя я так и не понял

Работа).

person Ryan Y    schedule 17.04.2019