Программные системы для латентно-семантического анализа

3,441 views
3,275 views

Published on

3 декабря 2010
Семенов Алексей

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,441
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
39
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Программные системы для латентно-семантического анализа

  1. 1. Программные системы длялатентно-семантического анализа Семенов Алексей, 524 гр. 2010г.
  2. 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. 3. Латентно-семантический анализМатрица – большая – разреженная – содержит «шумы»Решение - приближение матрицей меньшего ранга.Сингулярное разложение:
  4. 4. ПримерКоллекция «текстов»:c1: Human machine interface for ABC computer applicationsc2: A survey of user opinion of computer system response timec3: The EPS user interface management systemc4: System and human system engineering testing of EPSc5: Relation of user perceived response time to error measurementm1: The generation of random, binary, ordered treesm2: The intersection graph of paths in treesm3: Graph minors IV: Widths of trees and well-quasi-orderingm4: Graph minors: A survey
  5. 5. ПримерМатрица до сингулярного разложения: 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
  6. 6. ПримерПосле сингулярного разложения: 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
  7. 7. ПримерКластеризация по исходной матрице: 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
  8. 8. Применение• Сравнение данных (кластерный анализ, классификация документов)• Информационный поиск с использованием векторной модели.• Поиск схожих документов на разных языках (межъязыковой информационный поиск).• Нахождение отношений между термами (выявление синонимии, многозначности).• Определение наиболее подходящего под контекст терма (вопросно-ответные системы).
  9. 9. 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/
  10. 10. SenseClustersОсновная функция – кластеризация схожих контекстов.Применение:• Разрешение неоднозначности слов (в частности, имен)• Классификация документов разного рода (электронных писем, новостных статей)• Классификация лексики (нахождение синонимов, антонимов и других классов отношений)Сайт проекта: http://www.d.umn.edu/~tpederse/senseclusters.html
  11. 11. SenseClustersДва типа контекстов : • с целевым словом (headed context) • без целевого слова (headless context).Биграммы – «термы», характеризующие контекст (документ).Ngram Statistics Package (NSP) – пакет для выявления биграмм.Формат входных и выходных данных - SENSEVAL-2
  12. 12. SenseClustersПрограммный пакет, написанный на Perl.Лицензия – GPL.Структура: • /preprocess - предварительная обработка входных данных: – text2sval.pl - конвертация в формат Senseval-2. – maketarget.pl - разметка целевого слова. – prepare_sval2.pl - завершающая проверка на корректность. • /nsp - поиск биграмм в документах. • /vector – построение векторного представления контекстов. • /svd - сингулярное разложение. Используется библиотека SVDPACKC. • /evaluate – кластеризация. Используется пакет CLUTO.
  13. 13. SenseClustersВходной файл в формате SENSEVAL-2:
  14. 14. SenseClustersВыходной файл с кластеризованными документами:
  15. 15. SenseClustersВеб-интерфейс: http://marimba.d.umn.edu/cgi-bin/SC-cgi/index.cgi
  16. 16. S-SpaceОсновная функция - универсальное средство для построения и обработки векторной модели. • Содержит реализации большого количества алгоритмов. (разные векторные модели, некоторые методы их последующей обработки) • Ориентированность на скорость работы. • Интуитивно понятное представление данных.Сайт проекта: http://code.google.com/p/airhead-research/
  17. 17. S-SpaceФормат входных данных: – Текстовый корпус – один файл. – Каждый документ – отдельная строка. – Предварительная разметка с помощью встроенных средств.Минимизация затрат на чтение информации.Формат выходных данных (.sspace):Два способа представления – бинарный и текстовый.Особое представление для сильно разреженной матрицы.
  18. 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. 19. Semantic VectorsОсновная функция – построение модели семантическихвекторов для определения схожести понятий и поиска поинформационной базе.«Вторая жизнь» проекта Infomap NLP.Большой акцент на кроссплатформенности.Cайт проекта: http://code.google.com/p/semanticvectors/
  20. 20. Semantic VectorsДва этапа на архитектурном уровне: • построение векторной модели • поиск по запросамИспользование библиотек Apache Lucene для построения матрицы.Два способа хранения полученной информации (векторной модели): • простой текст с разделительными символами • оптимизированный формат Lucene (бинарный)Создаются отдельные файлы с векторами для термов и документов.
  21. 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. 22. Заключение• Каждый из рассмотренных пакетов имеет свои достоинства и свою область применения.• SenseClusters и Semantic Vectors разработаны для конкретных задач.• Для научной работы наиболее удобным, гибким и разносторонним можно назвать пакет S-Space.
  23. 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

×