Когда вы используете набор предварительно обученных векторов, таких как GoogleNews-vectors-negative300.bin.gz
, создатель этих векторов определил, какие слова и с какой обработкой включаются.
После загрузки поиск в такой модели осуществляется путем точного сравнения строк с учетом регистра.
В Gensim нет встроенной возможности для последующей нормализации регистра, такой как преобразование всех ключей в нижний регистр.И если бы это было так, остался бы открытый вопрос о том, как справляться с ситуациями, когда несколько существующих ключей все сгладили бы к одному и тому же ключу.
Например, что если векторный набор включает в себя отдельные векторы для «США», "США" и "США", но вы хотите, чтобы регистр "США" не зависел от регистра.Должен ли быть сохранен только один из векторов, отбрасывая остальные?Должен ли возвращаемый вектор быть средним из трех?Что, если есть какой-то странный смешанный регистр, скажем «usA», который опаздывает в списке всех векторов (и, следовательно, был относительно редким в данных обучения).Если этот вектор не имеет веса, меньшего веса или веса, равного тому, который используется в наиболее частом случае обсадной колонны?
Если вы знаете, как вы хотите разрешать такие случаи, вы, безусловно, можете изменить саму модель для измененияего отображения.Например, вы можете просмотреть список w2v_model.index2entity
, который показывает слово в каждом «слоте» модели, и изменить как последний, так и словарь w2v_model.vocab
, чтобы он включал только те отображения, которые вы предпочитаете.