Да, вы можете время от времени находить для загрузки предварительно обученные векторы других групп, которые могут лучше охватывать любые проблемные области, на которых они обучались: как более специализированные слова, так и векторы слов, соответствующие значению слова в этом смысле. домен.
Например, векторы-слова GoogleNews
были обучены в новостных статьях примерно в 2012 году, поэтому в его векторе для 'Java'
могут доминировать истории острова Индоснезия Java так же, как и язык программирования. , И многие другие векторные наборы обучаются на тексте Википедии, где будут преобладать использования в этом конкретном эталонном стиле письма. Но могут быть и другие наборы, которые лучше подчеркивают нужные вам слова.
Тем не менее, лучшим подходом часто является обучение ваших собственных векторов слов из учебного корпуса, который близко соответствует темам / документам, которые вас интересуют. Затем, векторы слова хорошо настроены для вашей предметной области. Пока у вас есть «достаточно» разнообразных примеров слова, используемого в контексте, результирующий вектор, вероятно, будет лучше, чем обобщенные c векторы из чужого корпуса. («Достаточно» не имеет четкого определения, но обычно составляет не менее 5, а в идеале от десятков до сотен репрезентативных, разнообразных применений.)
Давайте рассмотрим пример вашего примера - показать некоторое сходство между идеями «полиморфизма». и «входное наследование». Для этого вам понадобится учебный корпус, в котором обсуждаются эти концепции, в идеале много раз, от многих авторов, во многих проблемных контекстах. (Учебники, онлайн-статьи и страницы переполнения стека могут быть возможными источниками.)
Вам также понадобится стратегия токенизации, которая удастся создать токен из одного слова для концепции из двух слов 'input_inheritance'
, которая это отдельная задача, и ее можно решить с помощью (1) созданного вручную глоссария из нескольких словосочетаний, которые следует объединить; (2) статистический анализ пар слов, которые, по-видимому, встречаются так часто вместе, их следует объединить; (3) более сложная грамматическая предобработка обнаружения фраз и сущностей.
(Фразы из нескольких слов в наборе GoogleNews
были созданы с помощью статистического алгоритма, который также доступен в библиотеке gensim
Python как класс Phrases
. Но точные параметры, используемые Google, имеют насколько я знаю, не было выявлено. И для хороших результатов этого алгоритма может потребоваться много данных и настроек, и все же приводить к некоторым комбинациям, которые человек посчитал бы бессмыслицей, и пропустить другие, которые человек посчитал бы естественным.)