Я использую молоток из проекта Scala.После обучения моделей тем и получения файла логического вывода я попытался назначить темы для новых текстов.Проблема в том, что я получил разные результаты с разными методами вызова.Вот что я попробовал:
создание нового InstanceList и получение всего одного документа и получение результатов по теме из InstanceList
somecontentList.map(text=>getTopics(text, model))
def getTopics(text:String, inferencer: TopicInferencer):Array[Double]={
val testing = new InstanceList(pipe)
testing.addThruPipe(new Instance(text, null, "test instance", null))
inferencer.getSampledDistribution(testing.get(0), iter, 1, burnIn)
}
Поместите все в InstanceList и прогнозируйте темы вместе.
val testing = new InstanceList(pipe)
somecontentList.foreach(text=>
testing.addThruPipe(new Instance(text, null, "test instance", null))
)
(0 until testing.size).map(i=>
ldaModel.getSampledDistribution(testing.get(i), 100, 1, 50))
Эти два метода дают очень разные результаты, за исключением первого экземпляра.Как правильно использовать логический вывод?
Дополнительная информация: я проверил данные экземпляра.
0: topic (0)
1: beaten (1)
2: death (2)
3: examples (3)
4: forum (4)
5: wanted (5)
6: contributing (6)
Я предполагаю, что число в скобках - это индекс слов, используемых в предсказании.Когда я помещаю весь текст в InstanceList, индекс отличается, потому что в коллекции больше текста.Не уверен, как именно эта информация учитывается в процессе прогнозирования модели.