Существует ли реализация LSI с открытым исходным кодом в Java? Я хочу использовать эту библиотеку для своего проекта. Я видел jLSI, но он реализует какую-то другую модель LSI. Я хочу стандартную модель.
Любое скрытое семантическое индексирование?
Ответы (6)
Рассматривали ли вы LDA (скрытое распределение Дирихле)? Я тоже не сталкивался, но недавно столкнулся с той же проблемой с LSI (патенты). Насколько я понимаю, LDA - это родственная/более мощная техника. http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation, по-видимому, содержит несколько ссылок на открытые Исходные реализации.
Поиск в Google java LSI приводит к похожему вопросу, который рекомендует SemanticVectors. Пакет, созданный на основе Lucene и «похожий» на LSI. Я не знаю, ближе ли это, чем реализация jLSI.
В этой ветке также упоминается, что LSI запатентована и существует не так много его реализаций. Поэтому, если вам нужна стандартная реализация, вам, возможно, придется использовать язык, отличный от java.
пакет S-Space содержит версию LSA с открытым исходным кодом и привязками. для векторов документов LSI. (Оба подхода работают с одной и той же матрицей документа термина и эквивалентны, за исключением вывода.) Это довольно масштабируемый подход, использующий тонкий SVD. Я использовал его для запуска LSI во всей Википедии без проблем (после удаления нечастых терминов с менее чем 5 вхождениями).
Как упомянул Скотт Рэй, пакет SemanticVectors также имеет хорошую реализацию LSI, которая недавно переключилась на использование того же тонкого SVD (SVDLIBJ), так что вы можете проверить это, как если бы вы этого не делали раньше.
поиск инструментов НЛП в Google предоставляет эти слайды, которые, я думаю, помогают...
Я считаю, что LSA/LSI был запатентован в 1989 году, что означает, что срок действия патента должен был только что истечь. Надеюсь, мы скоро увидим несколько хороших приложений с открытым исходным кодом.
Вы пробовали пакет Semantic Vector?
http://code.google.com/p/semanticvectors/