Как стать автором
Обновить

Заметки об NLP (часть 3)

Время на прочтение5 мин
Количество просмотров9.7K
(Начало: 1, 2) Что ж, подходим к самому интересному — разбору предложений. Тема эта многогранна и многоуровнева, так что подступиться к ней не очень просто. Но ведь трудности лишь закаляют :) Да и выходные, текст пишется легко…

Начнём с такого понятия, как синтаксический анализ предложений (по-английски parsing). Суть этого процесса состоит в построении графа, «каким-либо образом» отражающего структуру предложения.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии53

Заметки об NLP (часть 4)

Время на прочтение5 мин
Количество просмотров4.7K
(Начало: 1, 2, 3) На сей раз хочу немного отвлечься и порассуждать (а точнее, похоливарить) на тему статистических алгоритмов и вообще «обходных путей» компьютерной лингвистики.
В первых частях нашего разговора речь шла о «классическом пути» анализа текста — от слов к предложениям, от предложений к связному тексту. Но в наше безумное время появились и соблазны решить проблему «одним махом», найдя, если угодно, баг в системе или «царскую дорогу».
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии52

Заметки об NLP (часть 5)

Время на прочтение5 мин
Количество просмотров6.5K
Что ж, продолжим. (Первые части: 1 2 3 4). Долго выбирал, что будет лучше для следующей темы — пофилософствовать о прагматике языка или поговорить конкретно об алгоритмах разбора. Учитывая, что предыдущая часть была неформальной, решил всё-таки переключиться на конкретику, а там посмотрим.

Итак, синтаксический анализ предложения. Давайте сразу определимся, что речь пойдёт о разборе в рамках концепции dependency parsing, причём определяющей методологией разбора будет точный анализ (не статистический). Начнём с небольшого обзора происходящего вокруг.
Читать дальше →
Всего голосов 55: ↑41 и ↓14+27
Комментарии41

Заметки об NLP (часть 6)

Время на прочтение6 мин
Количество просмотров3.5K
(Первые части: 1 2 3 4 5). Надеюсь, разговор о естественном языке читателей ещё не утомил! По-моему, тематика действительно интересная (хотя популярность топиков явно идёт на убыль :) ). Что ж, посмотрим, на сколько частей меня ещё хватит. Думаю, экватор мы уже прошли, но три-четыре темы затронуть ещё можно.

На сей раз заметка полностью посвящена проекту XDG/XDK, который я пытаюсь изучать на досуге. Назвать себя специалистом по XDG пока ещё не могу. Но потихоньку двигаюсь.
Читать дальше →
Всего голосов 68: ↑53 и ↓15+38
Комментарии24

Заметки об NLP (часть 7)

Время на прочтение6 мин
Количество просмотров4.2K
(Первые части: 1 2 3 4 5 6). Как и обещал вчера, продолжаем обсуждать XDG и движемся к следующим темам. Возможно, мы двигаемся слишком быстро, и действительно имело бы смысл публиковать одну статью раз в два-три дня, чтобы оставалось время всё обсудить. Но, наверно, пока «бензин есть», я буду продолжать писать. А потом можно будет вернуться и обговорить ранее освещённые вопросы. Мне кажется, что в компьютерной лингвистике разные темы настолько тесно связаны друг с другом, что разговор об одной из них без связи с другими малопродуктивен. А мы ещё не обо всём беседовали, так что лучше охватить взглядом как можно больше аспектов компьютерного анализа текста, а потом уже рассуждать о конкретике в рамках общей картины происходящего.
Читать дальше →
Всего голосов 39: ↑29 и ↓10+19
Комментарии17

Заметки об NLP (часть 8)

Время на прочтение5 мин
Количество просмотров3.4K
(Первые части: 1 2 3 4 5 6 7). В этой части я расскажу о синтактико-семантическом анализаторе — как я его вижу. Обратите, кстати, внимание на часть 7 — она до главной страницы не добралась, так что не уверен, что все интересующиеся её видели.
Читать дальше →
Всего голосов 54: ↑36 и ↓18+18
Комментарии45

Заметки об NLP (часть 9)

Время на прочтение7 мин
Количество просмотров5.5K
(Первые части: 1 2 3 4 5 6 7 8). Да возрадуются минусующие, сегодня представляю вниманию читателей последнюю, по всей видимости, часть «Заметок». Как и предполагалось, мы поговорим о дальнейшем семантическом анализе; также я порассуждаюю немного о том, чем в принципе можно заняться в нашей области и какие есть трудности «научно-политического» характера.
Читать дальше →
Всего голосов 60: ↑46 и ↓14+32
Комментарии16

Результаты и перспективы небольшого анализа русских текстов

Время на прочтение1 мин
Количество просмотров1.1K
Представляю читателям статистику, собранную во время создания простейшего робота-генератора русских фраз

Распределение слов


Приведу сначала некоторые цифры.
На 12.5Мб русского текста (в основном классическая литература разных авторов), на 142114 разных слов в нём, чаще всего встречается союз «и» — 83575 раз (слова берутся во всех словоформах). И это больше, чем половина!
Вторым по частоте встречаемости оказывается предлог «в» — 52124 раз, на третьем месте — частица «не»: 36268 раз.
Глагол «сказал» (ед.ч., 3л.) встречается 6566 раз и находится на 28-м месте.
А вот слово «да» находится на 36-м месте и встречается 5039 раз, тогда как «нет» — встречается 2948 раз и находится на 53 месте.
Остальные слова выбраны достаточно случайно, исходя из предпочтений автора.



Частотность слов на корпусе текстов изучалась со времён открытия закона Ципфа для английского языка (т.е., уже более 60-ти лет), публиковались различные словари и обзоры по этой теме, но мы посмотрим на русскую речь немного внимательнее и нагляднее.
Подробные графики и примеры с выводами
Всего голосов 18: ↑12 и ↓6+6
Комментарии21

Заметки об NLP (часть 10)

Время на прочтение9 мин
Количество просмотров8.3K
(Первые части: 1 2 3 4 5 6 7 8 9). Как говорилось в известной рекламе, «вы не ждали, а мы пришли» :)

За время, прошедшее после публикации девятой части, я прочитал одну хорошую книжку по теме (в to-read списке ещё парочка), множество статей, а также пообщался с несколькими специалистами. Соответственно, накопился новый объём материала, заслуживающий отдельной заметки. Как обычно, знакомлю других, параллельно структурирую знания для себя.

Сразу прошу прощения: эта часть для чтения и понимания достаточно трудна. Ну да, как говорится, не всё коту масленица. Сложным задачам соответствуют сложные тексты :)
Читать дальше →
Всего голосов 41: ↑31 и ↓10+21
Комментарии12

Программа проверки грамматики

Время на прочтение3 мин
Количество просмотров96K
Большинство систем редактирования текста имеют инструмент для автоматической проверки орфографических ошибок (когда в слове написаны неправильно одна или несколько букв; по-английски — speller). Их принцип действия: программа анализирует в тексте каждое слово и ищет такое же в Базе Данных всех слов и их всевозможных форм.

Такая проверка текста гарантирует, что слова в тексте будут написаны правильно (как в словаре), но не защищает от ошибок согласования и синтаксических ошибок в предложении. Например, предложение «Я читаешь интересными журналом» неправильно, но система редактирования текста не покажет правильный вариант: «Я читаю интересный журнал».
Избежать таких ошибок помогает программа проверки грамматических ошибок в предложении (по-английски — grammar checker).
Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии40

Не надо вычислять смысл и знания, когда их можно доставать из машинной памяти

Время на прочтение3 мин
Количество просмотров2K
Как говорил великий классик Аристотель, «известное, оказывается, известно немногим».

Языковеды всего мира подвержены одной пагубной иллюзии, полагая, что если они сумеют построить «правильный синтаксический граф», (то есть, «дерево фразы»), то они в этом случае, наконец-таки, решат это треклятую проблему машинной обработки естественно-язычных текстов (еят). Вот и ищут лингвисты денно и нощно какие-то мифические связи и отношения между словами (семантическими единицами) в предложениях и абзацах текстов. Да ещё и кибернетиков подключили к этим своим безуспешным поискам. Прошло уже полвека таких изысканий, а воз, как говорится, и поныне там. Не строится никак этот граф, давая много лет устойчивые 50% ошибок. Уже и сотни миллионов долларов потрачены. Один только проект «Watson» чего стоит. А ведь, в принципе, этих «связей и отношений» и нет на самом-то деле. Всё это, если внимательно вдуматься, искусственные наукообразные выдумки, из-за которых, собственно, прогресс в деле создания технологии осмысленной обработки еят зашел в тот тупик, где сейчас и пребывает.

Лингвисты как те инопланетяне, в руки которых попало обыкновенное для землян куриное яйцо. Вот они его могут изучать и так и сяк. И обмерить вдоль и поперек, и взвесить, и рентгеном просветить, и скорлупу исследовать на состав, и её твердость по Моосу замерить, и хрупкость уточнить, и цвет откалориметрировать. В общем провести всё, что только можно измерить, а вот понять, как оно образуется, того бедняги никак не смогут, поскольку самой курицы не знают и не ведали. Точно также не могли туземцы океанических островов нашей планеты понять, каким это образом транзисторный приемник, занесенный к ним западной цивилизацией, может издавать членораздельные звуки или звуковые мелодии. И как-бы они не изучали этот приемник, не пробовали его на зуб или на вкус, того бы вовек сами не поняли, что к такому устройству еще и радиостанция нужна. Подобная картина наблюдается и с языковедами, изучающими еят, как продукт (яйцо, транзистор) человеческого мышления (курицы, радиостанции), не обращая, при этом, внимания на самого «генератора (производителя) яйца».
Читать дальше →
Всего голосов 27: ↑13 и ↓14-1
Комментарии14

Почему у украинских ребят не получится эффективный жестовый переводчик?

Время на прочтение3 мин
Количество просмотров4.4K
После интересной публикации об изобретении для глухо-немых (См. «Украинские студенты создали перчатки, переводящие язык жестов в речь»), за авторов которых был искренне рад, я выразил в комментариях своё сомнение о практической пользе такого новшества на текущий момент, будучи уверен в том, что на сегодня вряд ли получится какой-либо действенный инструмент, способный реально помочь понимать язык жестов.

А не получится он ровно по той же самой причине, которая препятствует созданию качественного естественно-язычного машинного переводчика. И причина эта кроется ровно в том, что компьютер, как мы знаем, не обучен понимать СМЫСЛ языкового сообщения, будь оно представлено, хоть, в вербальном виде, хоть, в эпистолярном (текстовом) виде, или даже в виде жестов.
Читать дальше →
Всего голосов 24: ↑9 и ↓15-6
Комментарии58

Какая же сила нужна «сильному ИИ»?

Время на прочтение3 мин
Количество просмотров2K
В принципе, любой Интеллект какого-либо Объекта или Системы определяется ПОВЕДЕНИЕМ этого Объекта или этой Системы, которое, в свою очередь, определяется в общем случае двумя технологиями: ФИЗИОЛОГИИ (Психики), как рефлекторные реакции на входное воздействие, и РАЗУМА (Сознания), как осмысленные решения на оценку обстановки.

Уровень известных «перцептронных» технологий (и иже с ними различной «нейро-кванто-семанто-статистико-математико-сетевой лабуды) это, как раз, технология Физиологии. То есть, пришёл сигнал на вход, значит, выполнил соответствующее действие. Но это просто «безмозглые автоматы» и вот они называются «слабым ИИ».
Однако, естественный Интеллект человека базируется, в основном, на второй технологии – на Разуме. А это уже «сильный ИИ». Вот в чём их принципиальная разница – в Сознании.
Читать дальше →
Всего голосов 38: ↑12 и ↓26-14
Комментарии82

О том, как мы ворпсиманием теcкт

Время на прочтение4 мин
Количество просмотров172K
Помните, в интернете, году этак в 2003, проходила картинка, в которой сообщалось, что неважно в каком порядке идут буквы в слове, лишь бы первая и последняя были на местах, а остально мозг сам скомпонует и вычленит смысл. Вот оригинальный текст:

По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы чиатем не кдаужю бкуву по отдльенотси, а все солво цликеом.


В английском варианте это звучало так:
Arocdnicg to rsceearch at Cmabrigde Uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer are in the rghit pcale. The rset can be a toatl mses and you can sitll raed it wouthit pobelrm. Tihs is buseace the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.


Попытка поэкспериментировать с разными текстами показала, что с русским языком все не так безоблачно, как с английским и алгоритм эффективного и readable-перемешивания все-таки немного другой.

Читать дальше →
Всего голосов 125: ↑107 и ↓18+89
Комментарии86

ReText — редактор для Markdown и reStructuredText

Время на прочтение2 мин
Количество просмотров22K
Привет Хабру!
Хочу представить вам простой текстовый редактор для легковесных языков разметки, таких как Markdown и reStructuredText.

Редактор написан на Python с использованием библиотек PyQt и работает на Linux и других UNIX-подобных операционных системах. Поддерживает вкладки, «живой просмотр», подсветку синтаксиса и экспорт в популярные форматы.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии17

Классификация предложений с помощью нейронных сетей без предварительной обработки

Время на прочтение6 мин
Количество просмотров71K
Довольно часто встречается задача классификации текстов — например, определение тональности (выражает ли текст позитивное мнение или отрицательное о чем-либо), или разнесения текста по тематикам. На Хабре уже есть хорошие статьи с введением в данный вопрос.

Сегодня я хочу поговорить о проблеме классификации отдельных предложений. Решение этой задачи позволяет делать много интересного, например, выделять положительные и отрицательные моменты из длинных текстов, определять тональность твитов, является компонентом многих систем отвечающих на естественно-языковые вопросы (классификация типа вопроса), помогает сегментировать веб-страницы на смысловые блоки и многое другое. Однако, классификация отдельных предложений значительно сложнее классификации больших блоков текста — в одном предложении значительно меньше полезных признаков, и велико влияние порядка слов. Например: «как положено фильму ужасов, этот фильм был ну очень жутким» — содержит негативные слова («ужас», «жуткий»), но выражает положительное мнение о фильме, «все было ужасно красиво», или даже «отличный фильм, ничего не скажешь, только зря деньги потратили».
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии21

Text Analytics as Commodity: обзор приложений текстовой аналитики

Время на прочтение11 мин
Количество просмотров17K
text analytics landscapeЕсли бы мне дали миллиард долларов на научные исследования, я бы создал большую программу в масштабе NASA по обработке естественного языка (NLP).[из Reddit AMA Майкла Джордана, 2015]. Из данной публикации вы узнаете, есть ли рынок для приложений текстовой аналитики. И не слишком ли оптимистичен заслуженный профессор М. Джордан по поводу потенциала NLP, а лучше потратить миллиард долларов на что-то другое.

Введение


Вначале определимся с терминами. Интеллектуальный анализ текста (англ., text mining) — это технологии получения структурированной информации из коллекций текстовых документов. Обычно в это понятие включают такие крупные задачи, как
  • категоризация текста
  • извлечение информации
  • информационный поиск.

Часто, когда говорят о применении интеллектуального анализа текста в бизнесе — текстовой аналитики (англ., text analytics) — имеют в виду не просто структурированную информацию, а т.н. углубленное понимание предмета анализа (insights), которое помогает в принятии бизнес-решений. Известный эксперт Сэт Граймс определяет текстовую аналитику как технологические и бизнес процессы применения алгоритмических подходов к обработке и извлечению информации из текста и получению глубокого понимания.

Принято считать, что формируется новый рынок когнитивно-вычислительных (cognitive computing) продуктов. По оценкам MarketsandMarkets глобальный рынок продуктов на основе обработки естественного языка должен составить $13.4 млрд. к 2020 году при росте в 18.4% по CAGR. Таким образом, сейчас этот рынок оценивается примерно в $5.8 млрд. В последние годы этот растущий рынок ознаменовался целым рядом громких сделок, вроде покупки Alchemy API компанией IBM. По другим оценкам, аналогичный рынок в Европе уже сейчас превосходит пол-миллиарда долларов и удвоится к 2019 году. Рынок Северной Америки составляет почти 40% глобального рынка текстовой аналитики и имеет оптимистичные оценки роста.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

ACM SIGIR 2015: ключевые тренды развития поисковых технологий

Время на прочтение8 мин
Количество просмотров5.2K



С 9 по 13 августа в г. Сантьяго (Чили) прошла 38я международная научная конференция по информационному поиску ACM SIGIR. Представляем вашему вниманию основные события данного мероприятия и ключевые тренды развития области информационного поиска как с точки зрения академической среды, так и индустрии.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии6

Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Статья #2 — Алгоритмы

Время на прочтение18 мин
Количество просмотров6.5K
image

Привет, Хабр! Сегодня будет продолжение темы Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Данная статья является продолжением первой статьи.



Статья будет содержать Теорию, и реализацию алгоритмов который я применял.


Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Работаем с текстами на Python: кодировки, нормализация, чистка

Время на прочтение9 мин
Количество просмотров81K

Об обработке текстов на естественном языке сейчас знают все. Все хоть раз пробовали задавать вопрос Сири или Алисе, пользовались Grammarly (это не реклама), пробовали генераторы стихов, текстов... или просто вводили запрос в Google. Да, вот так просто. На самом деле Google понимаетот него хотите, благодаря ш, что вы тукам, которые умеют обрабатывать и анализировать естественную речь в вашем запросе.

При анализе текста мы можем столкнуться с ситуациями, когда текст содержит специфические символы, которые необходимо проанализировать наравне с "простым текстом" или формулы, например. В таком случае обработка текста может усложниться.

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

Так как всё-таки происходит обработка таких запросов?

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии1