Естественный язык и общий алгоритм его обработки (Neural networks and NLP, часть 1.1)

Что такое естественный язык, и как с ним можно работать?
В подготовке использовались материалы курса Stepik.org по нейронным сетям и обработке текста (Neural networks and NLP, Natural Language Processing) Часть 1.1

Формально, язык можно определить как множество цепочек символов из некоторого алфавита. Не всех цепочек, а только тех, которые удовлетворяют некоторым правилам
Отдельно взятая цепочка, построенная по этим правилам — это и есть текст.
Алфавит — это множество символов, которые можно использовать для построения текстов.
По идее, каждая цепочка должна нести какую-то информацию, но на практике — нет. Самое интересное в этом всём — это правила построения цепочек

! Правила построения цепочек - это самое главное !

Если мы хотим работать с текстами на естественном языке, то общий алгоритм сводится к двум глобальным шагам. Сначала, вполне понятно, нам нужно выучить правила, то есть понять их самим, запрограммировать, или обучить какой-нибудь классификатор, а затем нам дают какой-нибудь текст, и мы применяем наши правила к этому тексту, чтобы понять — как именно было построено каждое конкретное предложение.

! Анализ языка сводится к двум глобальным задачам: !
1) Обучение: понять правила языка (выучить, запрограммировать и т.п.)
2) Применение (inference, вывод): для некоторого заданного текста понять по каким именно правилам он построен

Рассмотрим известный пример, придуманный советским лингвистом Львом Владимировичем Щербой в тридцатых годах (1930гг). Звучит он так:

"Глокая куздра штеко бодланула бокра и кудрячит бокрёнка".

Как понять, что здесь происходит?
Правила русского языка позволяют нам определить следующее:
1) есть три действующих лица ("куздра", "бокр" и "бокрёнок"),
2) ещё из этого предложения можно понять, что первое лицо что-то делает с остальными двумя,
3) про эти действующие лица мы можем понять, что "куздра" — какая? — "глокая" и "бокрёнок" — там есть суффиксы, которые говорят нам о том, что это как "бокр" только маленький.

Есть и другие примеры наподобие этого. В этих текстах много незнакомых слов, поэтому нельзя детально нарисовать картину, описываемую в этих текстах, но можно до какой-то степени понять, что  там происходит — кто с чем что делает, какая последовательность действий, и так далее.
Почему же мы можем это понять? Потому, что тексты написаны на русском языке, правила которого мы знаем.

Правила бывают разные. Обычно их разбивают на уровни — от низкоуровневых до высокоуровневых.

! Правила бывают разных уровней: !
- графематические (как разделять слова и предложения между собой)
- морфологические (как строить и изменять слова)
- синтаксические (как согласовывать словоформы друг с другом, чтобы не было "красивая стул")
- семантические (как нужно применить все предыдущие виды правил, чтобы сообщить необходимую информацию)
- стилистические ("уместность" словоупотребления в данной конкретной ситуации, эмоциональное окрашивание)

Графематические правила — это правила разбиения текста на отдельные единицы: на предложения и слова. 
Морфологические правила управляют процессом словообразования и словоизменения. Синтаксические правила управляют согласованием слов, чтобы было понятно, что к чему относится.
Семантические правила управляют процессом передачи смысла посредством правильного использования всех вышеперечисленных правил.
Ну и наконец — стилистические правила говорят нам, что уместно в данной конкретной ситуации, что неуместно и как мы должны говорить, если хотим вызвать какие-то определённые эмоции у слушателя.

Надо заметить, что существуют и другие виды правил, но сейчас это не так важно. Язык — это неотделимая часть культуры, в которой он используется и развивается. И, вроде бы, один и тот же язык может иметь различия на разных уровнях правил — например, "испанский" испанский и "южно-американский" испанский имеют общий синтаксис, но стилистика употребления слов у них разная. 

Рассмотрим обработку текста с точки зрения искусственного интеллекта, а именно общий алгоритм обработки текстов в программе (например, в питоне). 
Как правило, процесс строится снизу вверх (от низкоуровневых правил к высокоуровневым), от графематики к семантике, и дальше. И, как правило, на каждом шаге используются результаты всех предыдущих шагов, т.е. на выходе каждого этапа обработки получается новая структура данных.


Итак, в самом начале у нас есть сырой текст, который представляется просто цепочкой символов — в питоне это строковый тип.
На выходе графематического анализа мы уже получаем "список списков", каждый список представляет предложение, а внутри предложения есть отдельные "токены" или "лексемы".
Следующий уровень — это морфологический анализ. Он обогащает каждую лексему информацией о словоформе, то есть о морфологических признаках и начальной форме слова. На приведенном примере видно, что простые строки заменены уже на структуры и для каждого слова указа начальная форма и часть речи. Например, "мама" — это существительное. 


На выходе синтаксического анализа мы получаем дерево, характеризующие подчинение слов. В структуре данных оно может задаваться, например, ссылкой на родительский узел.
В указанном примере, синтаксическое дерево может иметь следующую конструкцию: главное слово в предложении — глагол. Глаголу подчиняются главные слова в словосочетаниях — как правило, это существительные. А существительным подчиняются определения.
В итоге получается дерево для приведенного примера, и в структуре данных оно задаётся ссылкой на номер токена в предложении.


Семантический анализ строит ещё более многосвязную структуру — граф или семантическую сеть. Этот граф описывает ситуацию на самом верхнем уровне: что происходит, какие есть участники и какие роли они выполняют. 
В указанном примере: главное слово, которое задаёт структуру ситуации — опять же, глагол. Вместо глагола может использоваться также отглагольное существительное, также такие слова называют предикатными словами. Кроме предикатного слова в предложении есть какие-то аргументы, "мама", "оконная рама" и "тряпка". Аргументы в контексте глагола получают какие-то роли. Например, мама это — субъект, "оконная рама" — это объект, к нему применяются действие, а "тряпка" — это инструмент.
Что здесь граф: рёбра обычно проводятся между главным словом и аргументами, а также между аргументами напрямую — это называется "семантические отношения".
Затем результаты всех выполненных шагов агрегируются для того, чтобы решать конечную задачу — то, для чего была начала обработка текста.

Итоги: в данном блоке рассмотрено - что такое естественный язык, что правила бывают разных уровней, и что, когда в предложении все слова неизвестны, его смысл все равно можно понять. Также рассмотрен общий алгоритм обработки текста — снизу вверх, от графематического анализа до семантического, и дальше.


Источник материалов https://stepik.org/course/54098/syllabus
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

Комментариев нет :

Отправить комментарий