Количество тем скрытого семантического индексирования

Я использую пакет gensim для реализации LSI в корпусе. Моя цель — выявить наиболее часто встречающиеся отдельные темы, встречающиеся в корпусе.

Если я не знаю количество тем в корпусе (по моим оценкам от 5 до 20), как лучше всего установить количество тем, которые должна искать LSI? Лучше искать большое количество тем (20-30) или небольшое количество тем (~5)?


person John Ma    schedule 18.07.2014    source источник
comment
Вы можете найти ответ на аналогичный вопрос здесь: stackoverflow.com/a/9759218/230636   -  person jbochi    schedule 24.09.2016


Ответы (2)


От самого Радима:

это хороший вопрос, но, к сожалению, без хорошего ответа.

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

Если вам интересна математическая сторона вопроса, взгляните на этот выпуск: https://github.com/piskvorky/gensim/issues/28 В противном случае просто установите размеры в несколько сотен~тысяч, что является общепринятым стандартом. Или попробуйте несколько разных вариантов, измерьте точность и выберите размерность, которая лучше всего подходит для вашей задачи.

Лучший, Радим

person binaryaaron    schedule 10.11.2014

Это то, что я иногда делаю, когда я в замешательстве. Поскольку вы уже сузили свои темы от 5 до 20, вы можете перебрать некоторые из этих значений в черно-белом режиме и посмотреть, какое значение подходит лучше всего.

##Declare values for N_TOPICS
for i in lda.show_topics(topics=-N_TOPICS, topn=20, log=False, formatted=True): 
  print "TOPIC {0}: {1}\n".format(count, i) 
person nEO    schedule 10.11.2014