Так уж повелось, что каждый релиз лингво-независимой библиотеки обработки естественных текстов AIF сопровождается заметкой о том, что было сделано и как все работает. Подобные тексты о предыдущих двух релизах Alpha1 и Alpha2 можно найти вот тут и тут. Не исключением из этого правила стал и текущей релиз Alpha3, в котором появилась возможность строить словарь токенов для входного текста. О том, как все работает под капотом и как это можно использовать в своём проекте и пойдёт сегодня речь.
Читать полностью »
Рубрика «nlp» - 20
Построение словаря текста на примере NLP библиотеки AIF
2014-12-26 в 14:44, admin, рубрики: data mining, java, nlpInterSystems iKnow. Загружаем данные из Вконтакте
2014-12-25 в 7:06, admin, рубрики: cache, data mining, iKnow, intersystems cache, natural language processing, nlp, Блог компании InterSystems, Вконтакте API, разработка, социальные сети Эта статья продолжает цикл рассказов (раз, два) об основных способах/сценариях использования iKnow — инструмента Natural Language Processing'а из стека технологий InterSystems.
Предыдущие посты на эту тему были в основном посвящены работе с данными уже после того, как те были помещены в домен (место, в котором и проходит весь анализ текста). Эта же статья будет о том, как правильно и удобно загрузить информацию в iKnow. В качестве примера рассмотрим загрузку информации о пользователях Вконтакте: их личных данных, постах и т.д.
Статья подразумевает некий базовый бэкграунд в области технологий InterSystems (в частности, Caché ObjectScript).
Читать полностью »
SpeechMarkup API — превращаем речь в данные
2014-11-10 в 20:27, admin, рубрики: api, natural language processing, nlp, исскусственный интелект, Программирование, разработка, распознавание речи 
В статье пойдет речь о том, как из любого запроса на естественном языке получить реальные данные, с которыми может работать ваше приложение. А именно, о REST API сервиса SpeechMarkup, который преобразует обычную строчку текста в JSON со всеми найденными смысловыми сущностями с конкретными данными в каждой из них.
Да-да, это та самая технология, которая лежит в основе любого голосового ассистента и используется в поисковиках.
Она позволяет однозначно интерпретировать запрос и «понять», о чем говорит пользователь, а затем вернуть вашему приложению результат в виде обычного набора данных.
В статье я расскажу, для чего можно использовать данный API и приведу небольшой пример работающего приложения.
Латентно-семантический анализ и искусственный интеллект (ЛСА и ИИ)
2014-07-16 в 13:07, admin, рубрики: LDA, nlp, искусственный интеллект, обучениеЭтот пост хотелось бы написать скорее в философском ключе, нежели в математическом (точнее алгебраическом): не что это за страшный зверь — ЛСА, а какая от него может быть польза «нашему колхозу», т.е. ИИ.
Ни для кого уже не секрет, что ИИ состоит из многих взаимонепересекающихся или слабо пересекающихся областей: распознавание образов, распознавание речи, реализации моторных функций в пространстве и пр. Но одной из главных целей ИИ – научить «железо» думать, что включает в себя не только процессы понимания, но и генерирование новой информации: свободного или творческого мышления. В связи с этим возникают вопросы не столько разработки методов обучения систем, сколько осмысления процессов мышления, возможности их реализации.
На основах работы ЛСА, как уже упоминалось в начале статьи, я не буду сейчас останавливаться (планирую в следующем посте), а пока отошлю к Википедии, лучше даже английской (LSA). А вот основную идею этого метода постараюсь изложить на словах.
Формально:
ЛСА используется для выявления латентных (скрытых) ассоциативно-семантических связей между термами (словами, н-граммами) путем сокращения факторного пространства термы-на-документы. Термами могут выступать как слова, так и их комбинации, т.наз. н-граммы, документами – в идеале: наборы тематически однородных текстов, либо просто любой желательно объемный текст (несколько млн. словоформ), произвольно разбитый на куски, например абзацы.
«На пальцах»:
Основная идея латентно-семантического анализа состоит в следующем: если в исходном вероятностном пространстве, состоящим из векторов слов (вектор = предложение, абзац, документ и т.п.), между двумя любыми словами из двух разных векторов может не наблюдаться никакой зависимости, то после некоторого алгебраического преобразования данного векторного пространства эта зависимость может появиться, причем величина этой зависимости будет определять силу ассоциативно-семантической связи между этими двумя словами.
Например, рассмотрим два простых сообщения из разных источников (просто пример для наглядности):Читать полностью »
Процессинг текстовых объектов в ERP-системах
2013-11-20 в 14:13, admin, рубрики: data mining, ERP-системы, nlp, Алгоритмы, обработка текстов, метки: nlp, обработка текстовНеобходимость сложной обработки текстовых данных, хранящихся в ERP-системах (и не только) возникает достаточно часто. В качестве вводных примеров можно привести следующие:
- Унификация наименований товарной номенклатуры
- Автоматическая расстановка формализованных атрибутов товаров на основании их наименований или описаний
- Преобразование почтовых адресов как с целью унификации так и для формального структурирования
- Определение пола человека по его имени
- Извлечение информации из примечаний к документам (например, для автоматического связывания записи из выписки с отгрузочными документами)
- и т.д. (фантазировать можно еще долго)
Искусственный интеллект под Android с открытым API
2013-11-14 в 13:19, admin, рубрики: android, api, nlp, siri, Блог компании i-Free, искусственный интеллект, Программирование, Программирование на Android, распознавание речи, синтез речи, метки: android, api, nlp, siri, искусственный интеллект, Программирование, Программирование на Android, распознавание речи, синтез речи 
Только ленивый не знает сегодня о том, что такое голосовой помощник Siri. Когда два года назад этот продукт был показан на презентации нового iPhone 4S, многие посмотрели на развитие IT-индустрии по-новому. Действительно, искусственный интеллект в кармане, понимающий естественную речь, еще не показывал никто.
Многие в то время начали говорить о том, что Apple может уже на следующем WWDC предоставить всем программистам под iOS возможность использовать открытое API ассистента Siri для своих собственных программ. Картина вырисовывалась радужной — любое приложение смогло бы реагировать на пользовательские фразы, исполняя различные команды. Действительно, если в магазине AppStore так много разных полезных приложений, почему бы им не дать возможность управления голосом? Тем более что такой вид коммуникации с пользователем, как речь, быстро стал трендовым после выхода iPhone 4s.
О том, удалось ли это сделать Apple, и что удалось сделать нам, читайте далее.
Petrovich просклоняет русские имена
2013-10-06 в 20:25, admin, рубрики: nlp, ruby, ruby on rails, обработка текста, Программирование, русский язык, метки: nlp, ruby, ruby on rails, обработка текста, русский языкВам часто приходится иметь дело со склонением имён пользователей на русском языке? При рассылке писем, при отображении страниц и упоминаний, при генерации рекламных объявлений? Скорее всего, приходится изворачиваться и писать все сообщения в именительном падеже — Иванов Пётр Сергеевич.
Это не всегда удобно, не всегда красиво, не всегда уместно. Русский язык одарён богатой морфологией, которая несколько затрудняет его автоматическую обработку. Всем известно, что антропонимы, как полагается именам существительным, подчиняются всем правилам словообразования.
Для решения этой проблемы при использовании Ruby существует Petrovich — удобная легковесная библиотека для автомагического склонения русскоязычных имён, фамилий и отчеств.
Искусственный интеллект и почему мой компьютер меня не понимает?
2013-09-09 в 13:21, admin, рубрики: BigData, nlp, siri, анафора, искусственный интеллект, поисковые системы 
Гектор Левекwiki утверждает, что его компьютер тупой. И ваш тоже. Siri и голосовой поиск Google умеют понимать заготовленные предложения. Например «Какие фильмы будут показывать неподалёку в 7 часов?» Но что насчёт вопроса «Может ли аллигатор пробежать стометровку с барьерами?» Такой вопрос никто раньше не задавал. Но любой взрослый может найти ответ на него (Нет. Аллигаторы не могут участвовать в беге с барьерами). Но если вы попытаетесь ввести этот вопрос в Google, то получите тонны информации о спортивной команде по лёгкой атлетике Florida Gators. Другие поисковые системы, такие как Wolfram Alpha, тоже не способны найти ответ на поставленный вопрос. Watson, компьютерная система выигравшая викторину «Jeopardy!», вряд ли покажет себя лучше.
Читать полностью »
pymorphy2
2013-04-15 в 0:48, admin, рубрики: natural language processing, nlp, pymorphy2, python, trie, Алгоритмы, искусственный интеллект, метки: natural language processing, nlp, pymorphy2, trieВ далеком 2009 году на хабре уже была статья "Кузявые ли бутявки.." про pymorphy — морфологический анализатор для русского языка на Python (штуковину, которая умеет склонять слова, сообщать информацию о части речи, падеже и т.д.)
В 2012м я начал потихоньку делать pymorphy2 (github, bitbucket) — думаю, самое время представить эту библиотеку тут: pymorphy2 может работать в сотни раз быстрее, чем pymorphy (втч без использования C/C++ расширений) и при этом требовать меньше памяти; там лучше словари, лучше качество разбора, лучше поддержка буквы ё, проще установка и более «честный» API. Из негатива — не все возможности pymorphy сейчас реализованы в pymorphy2.
Эта статья о том, как pymorphy2 создавался (иногда с довольно скучными техническими подробностями), и сколько глупостей я при этом наделал; если хочется просто все попробовать, то можно почитать документацию.
Обзор предложений Coursera: первые 5 курсов
2012-12-17 в 3:31, admin, рубрики: coursera, game theory, logic, model thinking, nlp, метки: coursera, game theory, logic, model thinking, nlpСегодня я хотел бы начать серию заметок, в которых даётся обзор различных курсов на прекрасном образовательном ресурсе Coursera, про который не слышал, мне кажется, только лишь глухой аутист. С начала 2012 года я систематически прохожу на этом сайте различные интересные курсы, и с тех пор у меня накопилось предостаточно материала, чтобы поделиться им с почтеннейшей публикой. Надеюсь, что эта серия заметок будет полезна всем, кто хочет продолжать продвигать свой уровень образования.
Сегодня я расскажу про первые пять курсов, которые были прослушаны мною с начала 2012 года по его середину. Вот они:
Если кто-то заинтересовался хотя бы одним из перечисленных курсов, то добро пожаловать под кат.

