Есть ли предварительно обученная модель фраз Gensim?

Существует ли предварительно обученная модель Gensim Phrases? Если нет, можно ли было бы реконструировать и создать модель фразы, используя предварительно обученное встраивание слов?

Я пытаюсь использовать GoogleNews-vectors-negative300.bin с Word2Vec Gensim. Во-первых, мне нужно сопоставить свои слова с фразами, чтобы я мог найти их векторы из предварительно обученного встраивания Google.

Я ищу в официальной документации Gensim, но не могу найти никакой информации. Спасибо!


person E.K.    schedule 15.10.2020    source источник


Ответы (1)


Я не знаю, чтобы кто-нибудь разделял Phrases модель. Любая такая модель будет очень чувствительна к этапу предварительной обработки / токенизации и конкретным параметрам, используемым создателем.

Кроме высокоуровневого описания алгоритма, я не видел, чтобы Google где-либо задокументировал точный выбор токенизации / канонизации / фразового комбинирования для данных, которые вводятся в словосочетания GoogleNews 2013. Некоторые предположения о предварительной обработке можно сделать, просмотрев имеющиеся токены, но мне неизвестен какой-либо код, применяющий аналогичные варианты к другому тексту.

Вы можете попытаться имитировать их токенизацию униграммы, затем спекулятивно объединить строки униграмм в все более длинные мультипрограммы до некоторого максимума, проверить, присутствуют ли эти комбинации, а если их нет, вернуться к униграммам (или самой большой из имеющихся комбинаций). Это может быть дорого, если сделано наивно, но поддается оптимизации, если действительно важно - особенно для некоторого подмножества наиболее часто встречающихся слов - поскольку набор GoogleNews, похоже, подчиняется соглашению о перечислении слов по убыванию частоты.

(В целом, хотя это быстрый и простой начальный набор слов-векторов, я думаю, что на GoogleNews слишком много полагаются. В нем не будет слов / фраз и новых смыслов, которые развились с 2013 года, и любые значения, которые он улавливает, являются определяется новостными статьями за годы до 2013 года ... которые могут не соответствовать доминирующим значениям слов в других доменах. Если ваш домен не является новостным и у вас достаточно данных, вы можете выбрать собственную токенизацию для конкретного домена. комбинация, вероятно, будет работать лучше.)

person gojomo    schedule 15.10.2020
comment
Спасибо, что поделились своими мыслями. Да, имеет смысл. Что вы думаете об этом взломе? Если мы присвоим np.inf gensim.models.phrases 'словарь для фраз из GoogleNews-vectors-negative300.bin, мы можем принудительно создать фразы. - person E.K.; 16.10.2020
comment
Может работать! Хотя, если у вас есть фиксированный набор биграмм, полный класс Phrases может оказаться излишним. См. stackoverflow.com/questions / 58839049 / - пример небольшого кода объединителя. В таких случаях, и особенно при попытке обратной разработки поведения Google, рассмотрение порядка, в котором объединяются униграммы, может быть сложной проблемой. Результаты Google (& Phrases для фраз из нескольких слов) требуют нескольких проходов, каждый из которых объединяет только биграммы. Но это может иметь результаты, которые зависят от пути или неясны. - person gojomo; 16.10.2020
comment
Например, если вы видите a_b_c на выходе двухпроходного процесса, это результаты (a, b), c) или (a, (b, c)? И если вы видите a_b_c_d, было ли это обязательно результатом трехпроходного процесса? Нет: один проход мог создать a_b & c_d, второй проход a_b_c_d. (И далее: возможно, исходный материал начинается с underscored_tokens неотличимо от вывода фразера.) При условии удовлетворительной проработки этих предостережений, выведение комбинаций в GoogleNews и последующее написание кода для их применения к новым потокам токенов может работать достаточно хорошо. . - person gojomo; 16.10.2020
comment
Да, имеет смысл! Спасибо, Годзомо! - person E.K.; 16.10.2020