#gensim
Вопрос:
Я пытаюсь генерировать биграммы и триграммы для моделирования темы LDA. Мой код приведен ниже;
bigram = gensim.models.Phrases(data.normalized, min_count=5, threshold=5,
connector_words=gensim.models.phrases.ENGLISH_CONNECTOR_WORDS)
bigram_mod = gensim.models.phrases.Phraser(bigram)
trigram = gensim.models.Phrases(bigram_mod[data.normalized], min_count=5, threshold=2)
trigram_mod = gensim.models.phrases.Phraser(trigram)
По какой-то причине, по крайней мере для одного образца из корпуса, выполнение trigram[sample]
дает мне другой результат, чем выполнение trigram_mod[sample]
. Насколько я понимаю trigram_mod
, это замороженный фразер для trigram
и наследует те же параметры.
Почему результат отличается?
Комментарии:
1. Насколько я могу судить, этого никогда не должно произойти. Вы можете создать самодостаточный пример, который демонстрирует влияние, либо, начиная от подготовки данных (некоторые сведения вы можете поделиться или, возможно, уже общественный данных), или начиная с
.save()
д экземплярPhrases
вы можете поделиться (что бы утечка слово/биграмм-частота данных из набора данных, но не полных текстов) показывает, что проблема с тестовым текстом?2. Да, я тоже так думал. Я не имею права делиться своим набором данных, но если вы не возражаете, я мог бы отправить вам по электронной почте приглашение в частное хранилище GitHub, где я могу поделиться с вами модулем «маринованные фразы». Тебе это нравится?
3. В конечном итоге мы хотели бы получить что-то, что могло бы показать проблему, которой можно было бы поделиться в репозитории Github Gensim, любому, кто сможет провести расследование. Кроме того, в
Phrases
Gensim-4.0 есть множество рефакторингов функций, включая переименованиеPhraser
вFrozenPhrases
. Поэтому было бы полезно знать, может ли проблема все еще отображаться в последнем генсиме.4. В этом случае я продолжу расследование и посмотрю, смогу ли я надежно воспроизвести проблему с помощью данных, которыми я могу поделиться. Тем временем я просто буду избегать использования модуля Фразера и напрямую использовать фразы.
5. Еще один способ копнуть глубже-изучить состояние
Phrases
amp;Phraser
вокруг того, что биграм по-разному трактуетtrigram
иtrigram_mod
. То есть сведите свой текст к минимальному примеру из 2 символов. Изучите статистику/пороговые значения вtrigram
amp;trigram_mod
только для этих 2 токенов, чтобы выяснить, почему они проходят тест, который нужно объединить в один, а не в другой. (Это, скорее всего, прямо укажет на то, на каком этапе, либо при созданииtrigram_mod
, либо после, возникает проблема.) Конечно, такой анализ более ценен, если в текущем Gensim-4.0FrozenPhraser
.