Инструменты для  обработки текста  на естественном языке Татьяна Ландо  [email_address] Виктор Бочаров  [email_address]
Подзадачи обработки текста <ul><ul><li>Разбиение текста на предложения и слова </li></ul></ul><ul><ul><li>Лемматизация (мо...
задачи продукты mystem snowball Gate AOT Wordnet графематика морфология синтаксис семантика
Mystem, Snowball <ul><li>Модули для морфологических задача </li></ul><ul><li>Mystem ( http://company.yandex.ru/technology/...
Mystem <ul><ul><li>Программный вызов на C# </li></ul></ul><ul><ul><li>//Задаем параметры для запуска mystem Process mystem...
Gate <ul><li>http://gate.ac.uk </li></ul><ul><ul><li>Framework для разработки приложений для обработки естественного языка...
Gate <ul><ul><li>имеет плагины mystem и snowball </li></ul></ul><ul><ul><li>содержит плагины для включения в общий framewo...
<ul><li>framework c  унифицированными интерфейсами лингвистических компонентов </li></ul><ul><li>GUI  для прототипирования...
AOT <ul><li>http://aot.ru </li></ul><ul><ul><li>Разработан для русского, английского и немецкого языков </li></ul></ul><ul...
AOT <ul><ul><li>Компоненты: </li></ul></ul><ul><ul><ul><li>Граффематика: выделение слов, цифровых комплексов, формул, …  <...
Wordnet <ul><ul><li>Семантический словарь </li></ul></ul><ul><ul><li>Реализован для английского ( http://wordnet.princeton...
Wordnet <ul><ul><li>Для русского две версии: одна закрытая, другая не выложена в открытый доступ </li></ul></ul><ul><ul><l...
ВОПРОСЫ?
Морфология <ul><ul><li>Вход: словоформа </li></ul></ul><ul><ul><li>Выход: лемма, часть речи, грамматические признаки </li>...
Морфология (термины) <ul><li>Словоформа - слово, как оно встретилось в тексте.  </li></ul><ul><li>  </li></ul><ul><li>Лемм...
Морфология (дальше - хуже) <ul><li>  </li></ul><ul><ul><ul><li>  СТЕКЛО </li></ul></ul></ul><ul><ul><ul><li>   -> СТЕЧЬ, Г...
Морфология (омонимия) <ul><li>Это когда одной и той же единице уровня выражения соответствует несколько единиц уровня соде...
Морфология (английский) <ul><li>>mother </li></ul><ul><li>+ {MOTHER, NOUN, &quot;&quot;,  (&quot;narr,sg&quot;,) } Id=5370...
Морфология (варианты) <ul><li>АОТ – словарь + эвристика (для неизвестных слов) </li></ul><ul><li>Mystem –  словарь + эврис...
Вызов  AOT <ul><li>bash-3.2$ Bin/TestLem.exe Russian rusmorph.txt </li></ul><ul><li>Loading.. </li></ul><ul><li>read rusmo...
Вызов АОТ <ul><li>СИНЕЕ -> СИНИЙ ймйпйю# </li></ul><ul><li>СТЕКЛО -> СТЕКЛО еаег#СТЕЧЬ кй# </li></ul><ul><li>РАЗБИЛОСЬ -> ...
Вызов  Mystem <ul><li>mystem.exe  –i –n  rusmorph.txt > rusmorph.lem </li></ul><ul><li>синее{синий=A=им,ед,сред|синий=A=ви...
Snowball <ul><li>важно - >  важн </li></ul><ul><li>важнее ->  важн </li></ul><ul><li>важнейшие  ->  важн </li></ul><ul><li...
Синтаксис <ul><li>Вход: цепочка словоформ + грамматическая информация </li></ul><ul><li>Выход: </li></ul><ul><ul><li>дерев...
Синтаксис <ul><li>Предложение делится на клаузы </li></ul><ul><li>Внутри клауз делается синтаксический анализ </li></ul><u...
Синтаксис (демонстрация) <ul><li>VisualSynan </li></ul>
Синтаксис (а нафига?) <ul><li>помогает ответить на вопросы: </li></ul><ul><ul><li>какие слова в предложении связаны? </li>...
Синтаксис :  снятие омонимии До   После Лемм / слово 1,27 1,06 Морфологических вариантов / слово 2,26 1,64
Синтаксис АОТ (как вызвать) <ul><li>bash-3.2$ Bin/TestSynan.exe Russian _t.txt </li></ul><ul><li>EMPTY  =  В 1941 году Ник...
WordNet <ul><li>Семантическая сеть для английского языка, разработанная в Принстонском университете. </li></ul><ul><li>Син...
WordNet (“chair”) <ul><li>Noun </li></ul><ul><li>S:  (n)  chair  (a seat for one person, with a support for the back)  &qu...
wordnet.ru <ul><li>базы английского  WordNet  переведены автоматически </li></ul><ul><li>GUI  запустить не удалось :( </li...
ВОПРОСЫ!
Upcoming SlideShare
Loading in …5
×

Hackday Ml

2,089 views
2,014 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,089
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Hackday Ml

  1. 1. Инструменты для обработки текста на естественном языке Татьяна Ландо [email_address] Виктор Бочаров [email_address]
  2. 2. Подзадачи обработки текста <ul><ul><li>Разбиение текста на предложения и слова </li></ul></ul><ul><ul><li>Лемматизация (морфология) – приведение слова к нормальной форме </li></ul></ul><ul><ul><li>Синтаксис – определение связей между словами в предложении </li></ul></ul><ul><ul><li>Семантика – анализ значения слов и связей между ними </li></ul></ul>
  3. 3. задачи продукты mystem snowball Gate AOT Wordnet графематика морфология синтаксис семантика
  4. 4. Mystem, Snowball <ul><li>Модули для морфологических задача </li></ul><ul><li>Mystem ( http://company.yandex.ru/technology/mystem/ ) </li></ul><ul><li>– возвращает начальную форму (неск вариантов) и грамматические характеристики текстовой формы </li></ul><ul><li>Лицензия – для некоммерческого исп. </li></ul><ul><li>Snowball ( http://snowball.tartarus.org/algorithms/russian/stemmer.html ) </li></ul><ul><ul><li>возвращает основу слова </li></ul></ul><ul><li>Лицензия – BSD http://www.opensource.org/licenses/bsd-license.html </li></ul>
  5. 5. Mystem <ul><ul><li>Программный вызов на C# </li></ul></ul><ul><ul><li>//Задаем параметры для запуска mystem Process mystem = new Process(); mystem.StartInfo.File Name = &quot; mystem.exe &quot;; mystem.StartInfo.Argu ments = &quot;-n -r&quot;; mystem.StartInfo.UseS hellExecute = false; mystem.StartInfo.Redi rectStandardInput = true; mystem.StartInfo.Redi rectStandardOutput = true; //тут запускаем mystem.exe //текст, разобранный по словам помещаем в переменную outputText. StreamWriter mystemStreamWriter; StreamReader mystemStreamReader; String outputText = &quot;&quot;; //mystem не может работать со слишком большими блоками текста, //поэтому даем ему текст из inputText порциями длиной bufferSize. int c = 0; //текущая позиция курсора в inputText. int bufferSize = 8128; String s = SubstringWords(inputText, c, bufferSize); //порция текста для обработки. while (s.Length != 0) { mystem.Star t(); mystemStreamWriter = mystem.Stan dardInput; mystemStreamReader = mystem.Stan dardOutput; mystemStreamWriter.Writ eLine(s); mystemStreamWriter.Clos e(); outputText += mystemStreamReader.Read ToEnd() + &quot; &quot;; mystem.Wait ForExit(); mystem.Clos e(); c += s.Length; s = SubstringWords(inputText, c, bufferSize); } </li></ul></ul>
  6. 6. Gate <ul><li>http://gate.ac.uk </li></ul><ul><ul><li>Framework для разработки приложений для обработки естественного языка </li></ul></ul><ul><ul><li>Содержит Java библиотеку (gate.jar) для применения и встраивания приложения </li></ul></ul><ul><ul><li>Язык документации – английский, документация не прозрачная </li></ul></ul><ul><ul><li>Лицензия - GPL </li></ul></ul>
  7. 7. Gate <ul><ul><li>имеет плагины mystem и snowball </li></ul></ul><ul><ul><li>содержит плагины для включения в общий framework почти всех известных сторонних приложений </li></ul></ul><ul><ul><li>Позволяет делать многоуровневый анализ текста (от графематики до извлечения фактов) </li></ul></ul>
  8. 8. <ul><li>framework c унифицированными интерфейсами лингвистических компонентов </li></ul><ul><li>GUI для прототипирования </li></ul><ul><li>JAPE – регулярные выражения поверх разметки с java вставками ( реально: грамматики ) </li></ul><ul><li>ANNIE – Information Extraction System </li></ul>Gate
  9. 9. AOT <ul><li>http://aot.ru </li></ul><ul><ul><li>Разработан для русского, английского и немецкого языков </li></ul></ul><ul><ul><li>Язык реализации – С++ </li></ul></ul><ul><ul><li>Язык документации – русский </li></ul></ul><ul><ul><li>Есть GUI для демонстрации работы модулей </li></ul></ul><ul><ul><li>Лицензия – LGPL </li></ul></ul>
  10. 10. AOT <ul><ul><li>Компоненты: </li></ul></ul><ul><ul><ul><li>Граффематика: выделение слов, цифровых комплексов, формул, … </li></ul></ul></ul><ul><ul><ul><li>Морфология: построение морфологической интерпретации слов входного текста. </li></ul></ul></ul><ul><ul><ul><li>Синтаксис: построение дерева зависимостей всего предложения </li></ul></ul></ul>
  11. 11. Wordnet <ul><ul><li>Семантический словарь </li></ul></ul><ul><ul><li>Реализован для английского ( http://wordnet.princeton.edu ) </li></ul></ul><ul><ul><li>Лицензия – свободная с сохранением копирайта </li></ul></ul><ul><ul><li>имеет API для обращения программ на С, а так же спец. модули API для других языков программирования, например как COM-объект </li></ul></ul>
  12. 12. Wordnet <ul><ul><li>Для русского две версии: одна закрытая, другая не выложена в открытый доступ </li></ul></ul><ul><ul><li>http://www.pgups.ru/WebWN/wordnet.uix?event=ChangeLocale - одна </li></ul></ul><ul><ul><li>http://project.phil.pu.ru/RussNet/index_ru.shtml - вторая </li></ul></ul><ul><ul><li>http://wordnet.ru – автоматически переведенные базы принстонского ворднета, установить не удалось </li></ul></ul>
  13. 13. ВОПРОСЫ?
  14. 14. Морфология <ul><ul><li>Вход: словоформа </li></ul></ul><ul><ul><li>Выход: лемма, часть речи, грамматические признаки </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Например: </li></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>  ТАБУРЕТОМ </li></ul></ul></ul><ul><ul><ul><li>  -> ТАБУРЕТ, С мр,ед,тв </li></ul></ul></ul><ul><li>  </li></ul>
  15. 15. Морфология (термины) <ul><li>Словоформа - слово, как оно встретилось в тексте. </li></ul><ul><li>  </li></ul><ul><li>Лемма - каноническая форма слова (та, что указана в словаре). </li></ul><ul><li>  </li></ul><ul><li>стол, стул, красный, бежать - леммы и словоформы </li></ul><ul><li>столу, стулом, красному, бегу - словоформы (не леммы) </li></ul><ul><li>Часть речи: </li></ul><ul><li>  С, Г, П, ПРЕДЛ, ... </li></ul><ul><li>Грамматические признаки: </li></ul><ul><li>  мр, жр, ср, ед, мн, прш, 1л, 2л, 3л, ... </li></ul>
  16. 16. Морфология (дальше - хуже) <ul><li>  </li></ul><ul><ul><ul><li>  СТЕКЛО </li></ul></ul></ul><ul><ul><ul><li>  -> СТЕЧЬ, Г 3л,ср,прш, </li></ul></ul></ul><ul><ul><ul><li>  -> СТЕКЛО, С ср,ед,им, </li></ul></ul></ul><ul><ul><ul><li>  -> СТЕКЛО, С ср,ед,вн, </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><ul><li>  ИЗ </li></ul></ul></ul><ul><ul><ul><li>  -> ИЗ, ПРЕДЛ </li></ul></ul></ul><ul><ul><ul><li>  -> ИЗА, С жр,мн,рд,имя, </li></ul></ul></ul><ul><li>  </li></ul>
  17. 17. Морфология (омонимия) <ul><li>Это когда одной и той же единице уровня выражения соответствует несколько единиц уровня содержания. </li></ul><ul><li>Словоформа – лемма </li></ul><ul><li>Словоформа – грамматическая информация </li></ul>
  18. 18. Морфология (английский) <ul><li>>mother </li></ul><ul><li>+ {MOTHER, NOUN, &quot;&quot;, (&quot;narr,sg&quot;,) } Id=53706 </li></ul><ul><li>All forms: MOTHER MOTHERS </li></ul><ul><li>+ {MOTHER, VERB, &quot;&quot;, (&quot;inf&quot;,) } Id=76501 </li></ul><ul><li>All forms: MOTHER MOTHERS MOTHERED MOTHERED MOTHERING </li></ul><ul><li>>computer </li></ul><ul><li>+ {COMPUTER, NOUN, &quot;&quot;, (&quot;narr,sg&quot;,) } Id=35532 </li></ul><ul><li>All forms: COMPUTER COMPUTERS </li></ul><ul><li>+ {COMPUTER, ADJECTIVE, &quot;&quot;, (&quot;&quot;,) } Id=7333 </li></ul><ul><li>All forms: COMPUTER </li></ul><ul><li>>table </li></ul><ul><li>+ {TABLE, NOUN, &quot;&quot;, (&quot;narr,sg&quot;,) } Id=68272 </li></ul><ul><li>All forms: TABLE TABLES </li></ul><ul><li>+ {TABLE, VERB, &quot;&quot;, (&quot;inf&quot;,) } Id=87025 </li></ul><ul><li>All forms: TABLE TABLES TABLED TABLED TABLING </li></ul>
  19. 19. Морфология (варианты) <ul><li>АОТ – словарь + эвристика (для неизвестных слов) </li></ul><ul><li>Mystem – словарь + эвристика </li></ul><ul><li>Snowball – правила отрезания изменяемой части слова </li></ul>
  20. 20. Вызов AOT <ul><li>bash-3.2$ Bin/TestLem.exe Russian rusmorph.txt </li></ul><ul><li>Loading.. </li></ul><ul><li>read rusmorph.txt </li></ul><ul><li>process rusmorph.txt </li></ul><ul><li>Count of words = 3 </li></ul><ul><li>Time = 0 seconds; 0 ticks </li></ul><ul><li>too few words to measure the speed </li></ul><ul><li>writing to rusmorph.lem </li></ul>
  21. 21. Вызов АОТ <ul><li>СИНЕЕ -> СИНИЙ ймйпйю# </li></ul><ul><li>СТЕКЛО -> СТЕКЛО еаег#СТЕЧЬ кй# </li></ul><ul><li>РАЗБИЛОСЬ -> РАЗБИТЬСЯ кй# </li></ul><ul><li>DictsMorph gramtab.tab: </li></ul><ul><li>йм Y П ср,ед,им,од,но </li></ul><ul><li>йп Y П ср,ед,вн,од,но </li></ul>
  22. 22. Вызов Mystem <ul><li>mystem.exe –i –n rusmorph.txt > rusmorph.lem </li></ul><ul><li>синее{синий=A=им,ед,сред|синий=A=вин,ед,сред|синий=A=срав} </li></ul><ul><li>стекло{стекать=V=прош,ед,изъяв,сред,сов|стекло=S,сред,неод=им,ед|стекло=S,сред,неод=вин,ед} </li></ul><ul><li>разбилось{разбиваться=V=прош,ед,изъяв,сред,сов} </li></ul>
  23. 23. Snowball <ul><li>важно - > важн </li></ul><ul><li>важнее -> важн </li></ul><ul><li>важнейшие -> важн </li></ul><ul><li>важничал -> важнича </li></ul><ul><li>вагон - > вагон </li></ul><ul><li>вагона - > вагон </li></ul><ul><li>вагоном -> вагон </li></ul>
  24. 24. Синтаксис <ul><li>Вход: цепочка словоформ + грамматическая информация </li></ul><ul><li>Выход: </li></ul><ul><ul><li>дерево зависимостей </li></ul></ul><ul><ul><li>дерево составляющих </li></ul></ul><ul><li>Из дерева составляющих можно сделать дерево зависимостей, но не наоборот. </li></ul>
  25. 25. Синтаксис <ul><li>Предложение делится на клаузы </li></ul><ul><li>Внутри клауз делается синтаксический анализ </li></ul><ul><li>Отдельные клаузы связываются между собой </li></ul>
  26. 26. Синтаксис (демонстрация) <ul><li>VisualSynan </li></ul>
  27. 27. Синтаксис (а нафига?) <ul><li>помогает ответить на вопросы: </li></ul><ul><ul><li>какие слова в предложении связаны? </li></ul></ul><ul><ul><li>какое из двух слов в группе главнее? </li></ul></ul><ul><li>а также: </li></ul><ul><ul><li>снижает уровень омонимии </li></ul></ul><ul><ul><li>нужен для перехода к семантическому анализу </li></ul></ul><ul><li>если можно обойтись без синтаксического анализа – обойдитесь без него. </li></ul>
  28. 28. Синтаксис : снятие омонимии До После Лемм / слово 1,27 1,06 Морфологических вариантов / слово 2,26 1,64
  29. 29. Синтаксис АОТ (как вызвать) <ul><li>bash-3.2$ Bin/TestSynan.exe Russian _t.txt </li></ul><ul><li>EMPTY = В 1941 году Николая Ананьева призвали в Красную Армию </li></ul><ul><li>EMPTY = и отправили на фронт . </li></ul><ul><li>GP = году Николая </li></ul><ul><li>GP = году Николая Ананьева </li></ul><ul><li>NP = Красную Армию </li></ul><ul><li>PP = в Красную Армию </li></ul><ul><li>PP = на фронт </li></ul>
  30. 30. WordNet <ul><li>Семантическая сеть для английского языка, разработанная в Принстонском университете. </li></ul><ul><li>Синсет – множество синонимов + краткие определения </li></ul><ul><li>Отношения: </li></ul><ul><li>синонимия </li></ul><ul><li>гипо/гиперонимия </li></ul>
  31. 31. WordNet (“chair”) <ul><li>Noun </li></ul><ul><li>S: (n) chair (a seat for one person, with a support for the back) &quot;he put his coat over the back of the chair and sat down&quot; </li></ul><ul><li>S: (n) professorship , chair (the position of professor) &quot;he was awarded an endowed chair in economics&quot; </li></ul><ul><li>S: (n) president , chairman , chairwoman , chair , chairperson (the officer who presides at the meetings of an organization) &quot;address your remarks to the chairperson&quot; </li></ul><ul><li>S: (n) electric chair , chair , death chair , hot seat (an instrument of execution by electrocution; resembles an ordinary seat for one person) &quot;the murderer was sentenced to die in the chair&quot; </li></ul><ul><li>S: (n) chair (a particular seat in an orchestra) &quot;he is second chair violin&quot; </li></ul><ul><li>Verb </li></ul><ul><li>S: (v) chair , chairman (act or preside as chair, as of an academic department in a university) &quot;She chaired the department for many years&quot; </li></ul><ul><li>S: (v) moderate , chair , lead (preside over) &quot;John moderated the discussion&quot; </li></ul>
  32. 32. wordnet.ru <ul><li>базы английского WordNet переведены автоматически </li></ul><ul><li>GUI запустить не удалось :( </li></ul>
  33. 33. ВОПРОСЫ!

×