Относительно выбора количества измерений:
1) http://en.wikipedia.org/wiki/Latent_semantic_indexing:
Еще одной проблемой для LSI стала предполагаемая сложность в определении оптимального количества используемых размеров.для выполнения СВД.Как правило, меньшее количество измерений позволяет проводить более широкие сравнения концепций, содержащихся в наборе текста, в то время как большее количество измерений позволяет проводить более конкретные (или более релевантные) сравнения концепций.Фактическое количество измерений, которое можно использовать, ограничено количеством документов в коллекции.Исследования показали, что около 300 измерений, как правило, дают наилучшие результаты при работе с документами среднего размера (сотни тысяч документов) и, возможно, 400 измерений для больших коллекций документов (миллионы документов).Тем не менее, последние исследования показывают, что 50-1000 измерений подходят в зависимости от размера и характера коллекции документов.
Проверка количества отклонений в данных после вычисления SVD может использоваться для определения оптимального числаразмеры сохранить.Дисперсию, содержащуюся в данных, можно просмотреть, нанеся сингулярные значения (S) на график осадки.Некоторые специалисты по LSI выбирают размерность, связанную с коленом кривой, в качестве точки отсечения для количества измерений, которые необходимо сохранить.Другие утверждают, что некоторое количество отклонений должно быть сохранено, а количество отклонений в данных должно диктовать правильную размерность для сохранения.Семьдесят процентов часто упоминается как сумма отклонений в данных, которые следует использовать для выбора оптимальной размерности для повторного расчета SVD.
2) http://www.puffinwarellc.com/index.php/news-and-articles/articles/33-latent-semantic-analysis-tutorial.html?showall=1:
Хитрость в использовании SVD состоит в том, чтобы выяснить, сколько измерений или «концепций» использовать при аппроксимации матрицы.Остается слишком мало измерений и важных шаблонов, слишком много, и шум, вызванный случайным выбором слов, снова закрадывается. Алгоритм SVD немного сложен, но, к счастью, в Python есть функция библиотеки, которая делает его простым в использовании.Добавив метод из одной строки ниже к нашему классу LSA, мы можем разделить нашу матрицу на 3 другие матрицы.Матрица U дает нам координаты каждого слова в нашем «концептуальном» пространстве, матрица Vt дает нам координаты каждого документа в нашем «концептуальном» пространстве, а матрица S единичных значений дает нам подсказку о том, сколько измеренийили «понятия», которые мы должны включить.
def calc(self): self.U, self.S, self.Vt = svd(self.A)
Чтобы выбрать правильное количество используемых измерений, мы можем составить гистограмму квадрата единичных значений.Это показывает, насколько важна каждая особая величина для аппроксимации нашей матрицы.Вот гистограмма в нашем примере.
Для больших коллекций документов число используемых измерений находится в диапазоне от 100 до 500.В нашем небольшом примере, поскольку мы хотим построить его график, мы будем использовать 3 измерения, выбросить первое измерение и построить график второго и третьего измерений.
Причина, по которой мы выбрасываем первое измерение, интересна.Для документов первое измерение соотносится с длиной документа.Для слов это соотносится с тем, сколько раз это слово использовалось во всех документах.Если бы мы центрировали нашу матрицу, вычитая среднее значение столбца из каждого столбца, мы бы использовали первое измерение.В качестве аналогии рассмотрим результаты игры в гольф.Мы не хотим знать фактический счет, мы хотим знать счет после вычитания его из номинала.Это говорит нам, сделал ли игрок птичку, тележку и т. Д.
3) Ландауэр Т.К., Фольц П.В., Лахам Д., (1998), «Введениек латентному семантическому анализу ', Дискурсивные процессы, 25, 259-284: