Upload
-
View
2.424
Download
1
Embed Size (px)
DESCRIPTION
3 декабря 2010Семенов Алексей
Citation preview
Программные системы для латентно-семантического анализа
Семенов Алексей, 524 гр.
2010г.
Латентно-семантический анализ
Построение векторной модели для анализа связей и зависимостей между набором «документов» и содержащимися в них «термами».
Матрица «терм-документ»:
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
Латентно-семантический анализ
Матрица
– большая
– разреженная
– содержит «шумы»
Решение - приближение матрицей меньшего ранга.
Сингулярное разложение:
Пример
Коллекция «текстов»:
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
Пример
Матрица до сингулярного разложения:
c1 c2 c3 c4 c5 m1 m2 m3 m4
human 1 0 0 1 0 0 0 0 0
interface 1 0 1 0 0 0 0 0 0
computer 1 1 0 0 0 0 0 0 0
user 0 1 1 0 1 0 0 0 0
system 0 1 1 2 0 0 0 0 0
response 0 1 0 0 1 0 0 0 0
time 0 1 0 0 1 0 0 0 0
EPS 0 0 1 1 0 0 0 0 0
survey 0 1 0 0 0 0 0 0 1
trees 0 0 0 0 0 1 1 1 0
graph 0 0 0 0 0 0 1 1 1
minors 0 0 0 0 0 0 0 1 1
Пример
После сингулярного разложения:
c1 c2 c3 c4 c5 m1 m2 m3 m4
human 0.16 0.40 0.38 0.47 0.18 -0.05 -0.12 -0.16 -0.09
interface 0.14 0.37 0.33 0.40 0.16 -0.03 -0.07 -0.10 -0.04
computer 0.15 0.51 0.36 0.41 0.24 0.02 0.06 0.09 0.12
user 0.26 0.84 0.61 0.70 0.39 0.03 0.08 0.12 0.19
system 0.45 1.23 1.05 1.27 0.56 -0.07 -0.15 -0.21 -0.05
response 0.16 0.58 0.38 0.42 0.28 0.06 0.13 0.19 0.22
time 0.16 0.58 0.38 0.42 0.28 0.06 0.13 0.19 0.22
EPS 0.22 0.55 0.51 0.63 0.24 -0.07 -0.14 -0.20 -0.11
survey 0.10 0.53 0.23 0.21 0.27 0.14 0.31 0.44 0.42
trees -0.06 0.23 -0.14 -0.27 0.14 0.24 0.55 0.77 0.66
graph -0.06 0.34 -0.15 -0.30 0.20 0.31 0.69 0.98 0.85
minors -0.04 0.25 -0.10 -0.21 0.15 0.22 0.50 0.71 0.62
ПримерКластеризация по исходной матрице:
Кластеризация по полученной матрице:
c1 c2 c3 c4 c5 m1 m2 m3
c2 -0.19
c3 0.00 0.00
c4 0.00 0.00 0.47
c5 -0.33 0.58 0.00 -0.31
m1 -0.17 -0.30 -0.21 -0.16 -0.17
m2 -0.26 -0.45 -0.32 -0.24 -0.26 0.67
m3 -0.33 -0.58 -0.41 -0.31 -0.33 0.52 0.77
m4 -0.33 -0.19 -0.41 -0.31 -0.33 -0.17 0.26 0.56
c1 c2 c3 c4 c5 m1 m2 m3
c2 0.91
c3 1.00 0.91
c4 1.00 0.88 1.00
c5 0.85 0.99 0.85 0.81
m1 -0.85 -0.56 -0.85 -0.88 -0.45
m2 -0.85 -0.56 -0.85 -0.88 -0.44 1.00
m3 -0.85 -0.56 -0.85 -0.88 -0.44 1.00 1.00
m4 -0.81 -0.50 -0.81 -0.84 -0.37 1.00 1.00 1.00
Применение
• Сравнение данных(кластерный анализ, классификация документов)
• Информационный поиск с использованием векторной модели.
• Поиск схожих документов на разных языках(межъязыковой информационный поиск).
• Нахождение отношений между термами(выявление синонимии, многозначности).
• Определение наиболее подходящего под контекст терма(вопросно-ответные системы).
Open-source проекты
• SenseClusters: http://www.d.umn.edu/~tpederse/senseclusters.html
• S-Space: http://code.google.com/p/airhead-research/
• Semantic Vectors (ex-Infomap)http://code.google.com/p/semanticvectors/
SenseClusters
Основная функция – кластеризация схожих контекстов.
Применение:
• Разрешение неоднозначности слов (в частности, имен)
• Классификация документов разного рода (электронных писем, новостных статей)
• Классификация лексики (нахождение синонимов, антонимов и других классов отношений)
Сайт проекта:http://www.d.umn.edu/~tpederse/senseclusters.html
SenseClusters
Два типа контекстов :• с целевым словом (headed context)
• без целевого слова (headless context).
Биграммы – «термы», характеризующие контекст (документ).
Ngram Statistics Package (NSP) – пакет для выявления биграмм.
Формат входных и выходных данных - SENSEVAL-2
SenseClusters
Программный пакет, написанный на Perl.Лицензия – GPL.
Структура:
• /preprocess - предварительная обработка входных данных:
– text2sval.pl - конвертация в формат Senseval-2.
– maketarget.pl - разметка целевого слова.
– prepare_sval2.pl - завершающая проверка на корректность.
• /nsp - поиск биграмм в документах.
• /vector – построение векторного представления контекстов.
• /svd - сингулярное разложение. Используется библиотека SVDPACKC.
• /evaluate – кластеризация. Используется пакет CLUTO.
SenseClusters
Входной файл в формате SENSEVAL-2:
SenseClusters
Выходной файл с кластеризованными документами:
SenseClustersВеб-интерфейс: http://marimba.d.umn.edu/cgi-bin/SC-cgi/index.cgi
S-Space
Основная функция - универсальное средство для построения и обработки векторной модели.
• Содержит реализации большого количества алгоритмов.(разные векторные модели, некоторые методы их последующей обработки)
• Ориентированность на скорость работы.
• Интуитивно понятное представление данных.
Сайт проекта:
http://code.google.com/p/airhead-research/
S-Space
Формат входных данных:– Текстовый корпус – один файл. – Каждый документ – отдельная строка. – Предварительная разметка с помощью встроенных средств.
Минимизация затрат на чтение информации.
Формат выходных данных (.sspace):Два способа представления – бинарный и текстовый.Особое представление для сильно разреженной матрицы.
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
Semantic Vectors
Основная функция – построение модели семантических векторов для определения схожести понятий и поиска по информационной базе.
«Вторая жизнь» проекта Infomap NLP.Большой акцент на кроссплатформенности.
Cайт проекта:
http://code.google.com/p/semanticvectors/
Semantic Vectors
Два этапа на архитектурном уровне:
• построение векторной модели
• поиск по запросам
Использование библиотек Apache Lucene для построения матрицы.
Два способа хранения полученной информации (векторной модели):
• простой текст с разделительными символами
• оптимизированный формат Lucene (бинарный)
Создаются отдельные файлы с векторами для термов и документов.
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
Заключение
• Каждый из рассмотренных пакетов имеет свои достоинства и свою область применения.
• SenseClusters и Semantic Vectors разработаны для конкретных задач.
• Для научной работы наиболее удобным, гибким и разносторонним можно назвать пакет S-Space.
Литература и ресурсы
• 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