Машинная обработка естественных языков Петр Новиков Санкт-Петербург, 13.04.2014.

Презентация:



Advertisements
Похожие презентации
Тема урока: « Главные члены предложения в русском и английском языках »
Advertisements

Учимся задавать вопросы. Что необходимо для этого знать? Что необходимо для этого знать?
Компьютерный анализ естественно-языкового текста Кафедра информационных систем в искусстве и гуманитарных науках.
Introduction Microsoft Access 41 Database models 2 Database management system 3 What is database?
Машинный перевод Лидия Михайловна Пивоварова Системы понимания текста.
Text Mining. Анализ текстовой информации. Text Mining- методы анализа неструктурированного текста Обнаружение знаний в тексте Обнаружение знаний в тексте.
Home, Sweet Home.. Цели и задачи урока: Систематизировать знания по теме «Любимый дом», полученные на предыдущих занятиях. Систематизировать знания по.
Компьютерный анализ естественно-языкового текста Кафедра информационных систем в искусстве и гуманитарных науках.
50/codd.pdf 50/codd.pdf
Троицкий Д.И. Лингвистическое и программное обеспечение САПР 1 Классификация грамматик и языков Лекция 9 Кафедра «Автоматизированные станочные системы»
Глагол «быть» Бурдина Ирина Михайловна МОУ «СОШ 1» г. Гурьевск.
ИНТЕГРАЦИЯ МЕТОДОВ ИНЖЕНЕРИИ ЗНАНИЙ И ИНЖЕНЕРИИ ПРОГРАММ СИСТЕМА УПРАВЛЕНИЯ ЗНАНИЯМИ KNOWLEDGE.NET Участники проекта Новиков Антон Владимирович Сигалин.
1 Системный подход в моделировании. 2 Система является совокупностью взаимосвязанных объектов, которые называются элементами системы. Состояние системы.
Каникулы Chapter 24 Lesson 1 Prepared by Naya Lekht.
Gerund. Its forms and functions Герундий. Формы и функции.
There is/There are Грамматический практикум. Что означает? Когда используется? Конструкция there is/there are обозначает «есть, находится». Мы используем.
Оборот There is/ there are Оборот There is/ there are Введение оборота.
Tambov Instrument-making college The Complex Object Has executed by the teacher of English language Gorbacheva Irina Igorevna 2012.
На дом: §17 Системы перевода и распознавания текстов.
Формальное представление лексических отношений русских глаголов Магистерская диссертация Галушко Надежды Леонидовны (филологический факультет, кафедра.
Транксрипт:

Машинная обработка естественных языков Петр Новиков Санкт-Петербург,

Why Natural Language Processing? Проблема взаимодействия человек- компьютер Проблема автоматизированной обработки неструктурированных баз знаний

Языки программирования Не ломимся ли мы в открытую дверь?

Что автор хотел сказать? То, что понятно машине, непонятно человеку, и наоборот. Для человека наиболее предпочтительно изъясняться на своем родном языке Человеческий язык неоднозначен и сильно зависит от контекста => Используем вероятностные методы!

Вероятностный подход. Наивный байесовский подход Задача классификации документа Предположим, что есть база знаний (корпус), из которых мы можем получить априорные вероятности nltk.download() Предположим, что имеем в распоряжении «стеммер» – средство, позволяющее извлекать основу слова from nltk import stem stem.SnowballStemmer.languages russian_stemmer = stem.SnowballStemmer('russian') print russian_stemmer.stem(u'поиска') print russian_stemmer.stem(u'строим') pymorph?

Вероятностный подход. Наивный байесовский метод Томас Байес (1702 – 1761)

Вероятностный подход. Наивный байесовский метод Как классифицировать документ? D1: Строим дерево поиска. КОМП -- Компьютерные науки D2: Строим из дерева. СТРО -- Строительство и ремонт P( КОМП | строим дерево поиска ) = > P(СТРО | строим дерево поиска) = = P( КОМП ) = P( СТРО ) * P( строим | КОМП ) * P( строим | СТРО ) * P( дерево | КОМП ) * P( дерево | СТРО ) * P( поиска | КОМП ) * P( поиска | СТРО ) / P( строим дерево поиска ) P( КОМП | строим дом из дерева ) = P( СТРО | строим дом из дерева ) = = P( КОМП ) < = P( СТРО ) * P( строим | КОМП ) * P( строим | СТРО ) * P( дом | КОМП ) * P( дом | СТРО ) * P( из | КОМП ) * P( из | СТРО ) * P( дерева | КОМП ) * P( дерева | СТРО ) / P( строим дом из дерева )

Вероятностный подход. Наивный байесовский метод Как классифицировать документ? D1: Строим дерево поиска. КОМП -- Компьютерные науки D2: Строим из дерева. СТРО -- Строительство и ремонт P( КОМП | строим дерево поиска ) = > P(СТРО | строим дерево поиска) = = P( КОМП ) = P( СТРО ) * P( строим | КОМП ) * P( строим | СТРО ) * P( дерево | КОМП ) * P( дерево | СТРО ) * P( поиска | КОМП ) * P( поиска | СТРО ) / P( строим дерево поиска ) P( КОМП | строим из дерева ) = P( СТРО | строим из дерева ) = = P( КОМП ) = = P( СТРО ) * P( строим | КОМП ) * P( строим | СТРО ) * P( из | КОМП ) * P( из | СТРО ) * P( дерева | КОМП ) * P( дерева | СТРО ) / P( строим из дерева )

Вероятностный подход. Наивный байесовский метод Как классифицировать документ? D1: Строим дерево поиска. КОМП -- Компьютерные науки D2: Строим из дерева. СТРО -- Строительство и ремонт P( КОМП | строим дерево поиска ) = > P(СТРО | строим дерево поиска) = = P( КОМП ) = P( СТРО ) * P( строим | NULL, КОМП ) * P( строим | NULL, СТРО ) * P( дерево | строим, КОМП ) * P( дерево | строим, СТРО ) * P( поиска | дерево, КОМП ) * P( поиска | дерево, СТРО ) / P( строим дерево поиска ) P( КОМП | строим из дерева ) = P( СТРО | строим из дерева ) = = P( КОМП ) < = P( СТРО ) * P( строим | NULL, КОМП ) * P( строим | СТРО ) * P( из | строим, КОМП ) * P( из | СТРО ) * P( дерева | из, КОМП ) * P( дерева | СТРО ) / P( строим из дерева )

Вероятностный подход. Наивный байесовский метод Как правильно перевести слово «дерево»: «arbo» или «ligno»? ARBO -- дерево (растение или структура данных) LIGNO -- дерево (строительный материал) P( ARBO | строим дерево поиска ) = = P(LIGNO | строим дерево поиска) = = P( ARBO ) = P( LIGNO ) * P( строим | ARBO ) * P( строим | LIGNO ) * P( дерево | ARBO ) * P( дерево | LIGNO ) * P( поиска | ARBO ) * P( поиска | LIGNO ) / P( строим дерево поиска ) P( ARBO | строим дом из дерева ) = P( LIGNO | строим дом из дерева ) = = P( ARBO ) < = P( СТРLIGNO ) * P( строим | ARBO ) * P( строим | LIGNO ) * P( дом | ARBO ) * P( дом | LIGNO ) * P( из | ARBO ) * P( из | LIGNO ) * P( дерева | ARBO ) * P( дерева | LIGNO ) / P( строим дом из дерева )

Вероятностный подход. Векторная модель документа Дан набор из n документов, в которых встречается m слов. Пусть X=[x ij ], i=1,.., m, j=1,..., n - матрица с m строк и n столбцов, у которой (i,j)-й элемент описывает вероятность встретить слово i в документе j К этой матрице можно относиться, как к матрице ковариаций Для такой ситуации разработаны статистические методы Попробовать использовать спектральное разложение? Метод главных компонент?

Чего не хватает «чистым» вероятностным методам Теряется информация о частях речи Никак не используется структура предложения и связи слов в предложении … (дополните)

Контекстно-свободная грамматика import nltk groucho_grammar = nltk.parse_cfg(""" S -> NP VP PP -> P NP NP -> Det N | Det N PP | 'I' VP -> V NP | VP PP Det -> 'an' | 'my' N -> 'elephant' | 'pajamas' V -> 'shot' P -> 'in' """) sent = nltk.word_tokenize('I shot an elephant in my pajamas') parser = nltk.ChartParser(groucho_grammar) trees = parser.nbest_parse(sent) for tree in trees: print tree for tree in trees: tree.draw() NP – noun phrase (именная группа) N – noun (существительное) S – sentence (предложение) JJ – adjective (прилагательное) V – verb (глагол) VP – verb phrase (глагольная группа) Det – determiner (определитель) P – preposition (предлог)

Контекстно-свободная грамматика I saw an elephant in my pajamas. NP – noun phrase (именная группа) N – noun (существительное) S – sentence (предложение) JJ – adjective (прилагательное) V – verb (глагол) VP – verb phrase (глагольная группа) Det – determiner (определитель) P – preposition (предлог)

Контекстно-свободная грамматика import nltk badboy_grammar = nltk.parse_cfg(""" S -> NP VP PP -> P NP NP -> Det NP | N | Det N PP | JJ NP | 'I' VP -> V NP | VP PP Det -> 'an' | 'my' | 'The' | 'that' N -> 'elephant' | 'pajamas' | 'boy' | 'mess' V -> 'shot' | 'made' P -> 'in' JJ -> 'bad' """) sent = nltk.word_tokenize('The bad boy made that mess') parser = nltk.ChartParser(badboy_grammar) trees = parser.nbest_parse(sent) for tree in trees: print tree for tree in trees: tree.draw() NP – noun phrase (именная группа) N – noun (существительное) S – sentence (предложение) JJ – adjective (прилагательное) V – verb (глагол) VP – verb phrase (глагольная группа) Det – determiner (определитель) P – preposition (предлог)

Контекстно-свободная грамматика The bad boy made that mess. NP – noun phrase (именная группа) N – noun (существительное) S – sentence (предложение) JJ – adjective (прилагательное) V – verb (глагол) VP – verb phrase (глагольная группа) Det – determiner (определитель) P – preposition (предлог)

Категориальная грамматика NP – noun phrase (именная группа) N – noun (существительное) S – sentence (предложение) JJ – adjective (прилагательное) V – verb (глагол) VP – verb phrase (глагольная группа) Det – determiner (определитель) Правила вывода: JJ = N/N V = (NP\S)/N P Det = N P /N

Еще пример import nltk sentence = """At eight o'clock on Thursday morning Arthur didn't feel very good.""" tokens = nltk.word_tokenize(sentence) tokens tagged = nltk.pos_tag(tokens) tagged[0:6] entities = nltk.chunk.ne_chunk(tagged) entities from nltk.corpus import treebank t = treebank.parsed_sents('wsj_0001.mrg')[0] t.draw()

Проблемы формальных грамматик Даже языки с фиксированным порядком слов (английский, французский) трудно формализуемы, не говоря о языках с произвольным порядком слов (русский, эсперанто) При построении контекстно-свободной грамматики с некоторого момента обнаруживается, что используемые абстракции перестают содержать лингвистический смысл (похоже на проблему современной физики) => В базах знаний ограничимся «легко» формализуемым подмножеством языка!

Formal English / Formeel Nederlands / gellish.net Left hand objectRelation typeRight hand object The Eiffel toweris located inParis The Eiffel toweris classified as atower Parisis classified as acity The Eiffel tower is located in Paris. The Eiffel tower is classified as a tower. Paris is classified as a city.

Formal English / Formeel Nederlands / gellish.net GELLISH ENGLISH A structured and formalized subset of natural English that is computer interpretable. Its definition includes a Formal English Dictionary-Taxonomy of concepts in which the concepts are arranged in a taxonomy hierarchy and is an ontology as far as required to define the language. The Gellish Formal English Dictionary-Taxonomy contains the following Domain Dictionaries-Taxonomies: Generic concepts and relation types (TOPini) Units of Measures, scales and currencies Activities, Events, Processes and Functions Physical objects of various kinds, such as: - Static equipment, process units and piping - Buildings, civil and structural items - Electrical and Instrumentation, Control and Valves - Rotating equipment, Transport equipment and Solids Handling - Roles of physical objects (applications) Aspects, Properties, Qualities and Roles of aspects Materials of constructions (steel and non-steel), Fluids and Waves Documents and Identification, Information, Symbols and Annotation Geographic objects, including countries Biology Organizations and Procurement Mathematics, Geometry and Shapes Waste water and water treatment

В реальности методы комбинируются Например, можно использовать формальные грамматики там, где это применимо, а в остальных частях «догадываться» статистически Несколько машин, работающих по разным алгоритмам, вырабатывают каждая свое решение, а затем вопрос решается «голосованием»

Полезные ссылки Сайт автора лекции: Natural Language ToolKit (NLTK) Parsing of Esperanto, диссертация на тему автоматизированного разбора языка эсперанто Онлайн-курсы Natural Language Processing на Coursera: (Jurafsky & Manning) (Collins) Как стать хорошим компьютерным лингвистом? linguist/ linguist/ Gellish English Wolfram Alpha