Генерация документов из тематической модели LDA

Я изучаю модель темы из набора документов, и это работает хорошо. Но мне интересно, действительно ли какая-либо существующая система будет генерировать новые документы из тем и слов в модели.

Т.е. скажем, я хочу новый документ по теме 0, будет ли какой-либо из инструментов Gensim/MALLET/других фактически создавать новый документ с учетом моего выбора темы (или вариантов)? Или это самостоятельная проблема?

Скажем, у меня есть две темы:

topic #0: 0.009*river + 0.008*lake + 0.006*island + 0.005*mountain + 0.004*area + 0.004*park + 0.004*antarctic + 0.004*south + 0.004*mountains + 0.004*dam
topic #1: 0.026*relay + 0.026*athletics + 0.025*metres + 0.023*freestyle + 0.022*hurdles + 0.020*ret + 0.017*divisão + 0.017*athletes + 0.016*bundesliga + 0.014*medals

Есть ли какой-нибудь инструмент, который возьмет «тему 0: .5, тему 1: .5, длину: 7» и красиво создаст документ вроде:

island freestyle river south medals mountains area

Или что-то вдоль этих линий? Я не хочу дублировать это, если оно уже существует.


person ten    schedule 21.08.2015    source источник


Ответы (1)


Читали ли вы руководство разработчика и учебные пособия на Mallet? Веб-сайт? В нем описывается, как создать документ с высокой вероятностью определенной темы:

    StringBuilder topicZeroText = new StringBuilder();
    Iterator<IDSorter> iterator = topicSortedWords.get(0).iterator();

    int rank = 0;
    while (iterator.hasNext() && rank < 5) {
        IDSorter idCountPair = iterator.next();
        topicZeroText.append(dataAlphabet.lookupObject(idCountPair.getID()) + " ");
        rank++;
    }

Этот код создает новый документ с высокой вероятностью того, что он относится к теме 0. Этот код можно легко изменить, чтобы он содержал более одной темы и имел определенную длину.

person SJB    schedule 13.10.2015
comment
Спасибо - я решил это некоторое время назад и использовал многоязычную модель, так что это было немного сложнее, но я думаю, что это хороший совет для других. - person ten; 20.10.2015