Yahoo! Вопросы реализации LDA - PullRequest
3 голосов
/ 12 сентября 2011

All

Я запускаю Y! LDA (https://github.com/shravanmn/Yahoo_LDA) на наборе документов, и результаты выглядят великолепно (или, по крайней мере, как я ожидал). Теперь я хочу использовать полученные темы для выполнения обратного запроса к корпусу Кто-нибудь знает, является ли 3 текстовых файла, читаемых человеком, которые генерируются после запуска исполняемого файла Learntopics, конечным выходом для этой библиотеки? Если да, то это то, что мне нужно проанализировать для выполнения моих запросов? пожимает плечами в этот момент ...

Спасибо, Адам

1 Ответ

1 голос
/ 31 декабря 2012

Если LDA работает так, как мне кажется (я использую Java-реализацию, поэтому объяснения могут отличаться), вы получите следующие три вещи:

  1. P (слово, понятие) - вероятность получения слова с учетом понятия. Итак, когда LDA заканчивает выяснение того, какие понятия существуют в корпусе, этот P (w, c) скажет вам (в теории), какие слова соответствуют каким понятиям.

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

    Обратите внимание, что вышеуказанный метод не распознает различные отклонения, вызванные слабо представленными темами или доминирующими темами в LDA. Для этого вам понадобятся более сложные алгоритмы (например, выборка Гиббса), но это даст вам некоторые результаты.

  2. P (концепция, документ) - если вы пытаетесь найти внутренние концепции в документах в корпусе, вы можете посмотреть здесь. Вы можете использовать документы в качестве примеров документов, которые имеют конкретную концепцию распространения, и сравнивать ваши документы с корпусными документами LDA ... Для этого есть способы, но они могут быть не такими полезными, как P (w, c).

  3. Что-то еще, вероятно, касающееся веса слов, документов или понятий. Это может быть простой набор примеров концептов с бета-весами (для концепций) или некоторые другие переменные, которые выводятся из LDA. Это может или не может быть важным в зависимости от того, что вы делаете. (Если вы пытаетесь добавить документ в пространство LDA, имея значения альфа или бета - очень важно.)

Чтобы ответить на ваш вопрос «обратного просмотра», чтобы определить понятия тестового документа, используйте P (w, c) для каждого слова w в тестовом документе.

Чтобы определить, какой документ наиболее похож на тестовый документ, определите вышеупомянутые концепции, затем сравните их с концепциями для каждого документа, найденного в P (c, d) (используя каждую концепцию как измерение в векторном пространстве, а затем определение косинуса между двумя документами работает нормально).

Чтобы определить сходство между двумя документами, как и выше, просто определите косинус между двумя концептуальными векторами.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...