Почему не все биграммы создаются в инструменте gensim `Phrases '? - PullRequest
0 голосов
/ 07 февраля 2020

Я создал биграмную модель с использованием gensim и попытался получить биграмные предложения, но он не выбирает все биграмные предложения, почему?

from gensim.models.phrases import Phrases, Phraser
phrases = Phrases(sentences, min_count=1, threshold=1)
bigram_model = Phraser(phrases)
sent = [u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
print(bigram_model[sent])
[u'the', u'mayor', u'of', u'new_york', u'was', u'there']

Может кто-нибудь объяснить, как получить все биграммы.

Почему только "new_york", а не "the_mayor" и другие?

1 Ответ

1 голос
/ 07 февраля 2020

Алгоритм Phrases решает, какие пары слов превратить в биграммы путем статистического анализа, который сравнивает базовые частоты каждого слова в отдельности с их частотой вместе.

Итак, некоторые пары слов пройдут этот тест и будут объединены, а другие - нет. Если вы не получаете ожидаемые пары, то вы можете немного настроить алгоритм, используя опции класса Phrases, включая threshold, min_count и хотя бы один альтернативный механизм оценки.

Но, даже будучи максимально настроенным, он, как правило, не будет создавать все фразы, которые мы, как носители естественного языка, воспринимаем - поскольку он ничего не знает о грамматике или о логически связанных объектах мира , Он знает только статистику частоты в учебном тексте.

Таким образом, будут пропущенные пары, которые мы сочтем естественными и желательными, и пары, которые он создает, мы сочтем нелогичными. Тем не менее, даже с этими неэстетичными парами c - созданием текста, который не выглядит подходящим для людей - преобразованный текст часто может работать лучше в определенных последующих классификационных или информационно-поисковых задачах.

Если бы вы на самом деле просто хотели получить все возможные биграммы, это было бы гораздо более простым преобразованием текста, не требующим многократного прохода и сбора внутренней статистики Phrases от gensim.

Но также, если вы хотите использовать технику gensim Phrases, она будет хорошо работать только тогда, когда у нее много тренировочных данных. Тексты размером с игрушку, состоящие из нескольких десятков слов или даже десятков тысяч слов, не дадут хороших результатов. Вы бы хотели, чтобы от миллионов до десятков миллионов обучающих слов имели хоть какой-то шанс, что они действительно обнаружат статистически достоверные пары слов.

...