2. Латентно-семантический анализ
Построение векторной модели для анализа связей
и зависимостей между набором «документов» и
содержащимися в них «термами».
Матрица «терм-документ»:
Cxt1 Cxt2 Cxt3 Cxt4 Cxt5
Trm1 1 1 1 1 1
Trm2 0 1 0 1 1
Trm3 0 0 0 0 0
Trm4 1 0 1 0 1
3. Латентно-семантический анализ
Матрица
– большая
– разреженная
– содержит «шумы»
Решение - приближение матрицей меньшего ранга.
Сингулярное разложение:
4. Пример
Коллекция «текстов»:
c1: Human machine interface for ABC computer applications
c2: A survey of user opinion of computer system response time
c3: The EPS user interface management system
c4: System and human system engineering testing of EPS
c5: Relation of user perceived response time to error measurement
m1: The generation of random, binary, ordered trees
m2: The intersection graph of paths in trees
m3: Graph minors IV: Widths of trees and well-quasi-ordering
m4: Graph minors: A survey
8. Применение
• Сравнение данных
(кластерный анализ, классификация документов)
• Информационный поиск с использованием векторной модели.
• Поиск схожих документов на разных языках
(межъязыковой информационный поиск).
• Нахождение отношений между термами
(выявление синонимии, многозначности).
• Определение наиболее подходящего под контекст терма
(вопросно-ответные системы).
10. SenseClusters
Основная функция – кластеризация схожих контекстов.
Применение:
• Разрешение неоднозначности слов (в частности, имен)
• Классификация документов разного рода
(электронных писем, новостных статей)
• Классификация лексики
(нахождение синонимов, антонимов и других классов отношений)
Сайт проекта:
http://www.d.umn.edu/~tpederse/senseclusters.html
11. SenseClusters
Два типа контекстов :
• с целевым словом (headed context)
• без целевого слова (headless context).
Биграммы – «термы», характеризующие контекст (документ).
Ngram Statistics Package (NSP) – пакет для выявления биграмм.
Формат входных и выходных данных - SENSEVAL-2
12. SenseClusters
Программный пакет, написанный на Perl.
Лицензия – GPL.
Структура:
• /preprocess - предварительная обработка входных данных:
– text2sval.pl - конвертация в формат Senseval-2.
– maketarget.pl - разметка целевого слова.
– prepare_sval2.pl - завершающая проверка на корректность.
• /nsp - поиск биграмм в документах.
• /vector – построение векторного представления контекстов.
• /svd - сингулярное разложение. Используется библиотека SVDPACKC.
• /evaluate – кластеризация. Используется пакет CLUTO.
16. S-Space
Основная функция - универсальное средство для построения
и обработки векторной модели.
• Содержит реализации большого количества алгоритмов.
(разные векторные модели, некоторые методы их последующей обработки)
• Ориентированность на скорость работы.
• Интуитивно понятное представление данных.
Сайт проекта:
http://code.google.com/p/airhead-research/
17. S-Space
Формат входных данных:
– Текстовый корпус – один файл.
– Каждый документ – отдельная строка.
– Предварительная разметка с помощью встроенных средств.
Минимизация затрат на чтение информации.
Формат выходных данных (.sspace):
Два способа представления – бинарный и текстовый.
Особое представление для сильно разреженной матрицы.
18. S-Space
Программный пакет на Java.
Лицензия – GPL.
Сборка с помощью Apache Ant.
Структура:
• /mains - исполняемые классы, реализующие разные векторные модели:
– Beagle
– COALS
– Latent-Semantic Analysis
– Incremental Semantic Analysis
– Explicit Semantic Analysis
• /evaluation – алгоритмы кластеризации, определения меры схожести и др.
• /matrix - работа с матрицами.
• /text – препроцессоры и конвертеры текстовой информации.
java mains.lsa -d corpus.txt -F exclude=stopwords.txt -n 500 out.sspace
19. Semantic Vectors
Основная функция – построение модели семантических
векторов для определения схожести понятий и поиска по
информационной базе.
«Вторая жизнь» проекта Infomap NLP.
Большой акцент на кроссплатформенности.
Cайт проекта:
http://code.google.com/p/semanticvectors/
20. Semantic Vectors
Два этапа на архитектурном уровне:
• построение векторной модели
• поиск по запросам
Использование библиотек Apache Lucene для построения матрицы.
Два способа хранения полученной информации (векторной модели):
• простой текст с разделительными символами
• оптимизированный формат Lucene (бинарный)
Создаются отдельные файлы с векторами для термов и документов.
21. Semantic Vectors
Программный пакет на Java
Лицензия - new BSD.
Структура:
• /lucene – базовые утилиты Apache Lucene.
• /semanticvectors – построение и обработка векторной модели
– BuildIndex – генерация и запись векторов для термов и документов.
– CompareTerms – исполняемый класс для сравнения термов.
– Search – поиск похожих термов или документов.
– VectorUtils – функции над векторами.
– LSA – сингулярное разложение (реализация SVDPACKC).
java semanticvectors.Search -queryvectorfile termvectors.bin
-searchvectorfile docvectors.bin Abraham
22. Заключение
• Каждый из рассмотренных пакетов имеет свои
достоинства и свою область применения.
• SenseClusters и Semantic Vectors разработаны для
конкретных задач.
• Для научной работы наиболее удобным, гибким
и разносторонним можно назвать пакет S-Space.
23. Литература и ресурсы
• Dominic Widdows, Kathleen Ferraro. 2008. Semantic Vectors : A Scalable Open-
Source Package and Online Technology Management Application. LREC 2008.
• Ted Pedersen. 2006. Language Independent Methods of Clustering Similar
Contexts (with applications). University of Minnesota, Duluth.
• О.А.Митрофанова, А.С.Мухин, П.В.Паничева. 2007. Автоматическая
классификация лексики в русскоязычных текстах на основе латентного
семантического анализа. СПбГУ, кафедра математической лингвистики.
• http://code.google.com/p/airhead-research/wiki/LatentSemanticAnalysis
• http://en.wikipedia.org/wiki/Latent_semantic_analysis
• http://en.wikipedia.org/wiki/Probabilistic_latent_semantic_analysis