Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Лингвистическая загадка. Переводим с «мертвого» языка. [§2] Разбор полётов

Криптография
Это — продолжение, вернее ответ на задачу из статьи "Лингвистическая загадка. Переводим с мертвого языка".

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

Ответ

Для нетерпеливых сразу ответ, который кстати на момент написания статьи, кроме единственного человека (не с хабра), полностью не разгадал никто. Но об этом ниже…
Упомянутая известная фраза про «Глокую куздру» (привет AndreyDmitriev), что есть цитата из книги Успенского «Слово о словах», была коварно помещена мной в середину текста. Остальное, как уже говорилось, добил другими из той же темы, причем немного даже в «старорусской» манере…
Читать дальше →
Всего голосов 36: ↑32 и ↓4 +28
Просмотры14.1K
Комментарии 19

Библиотека Strutext обработки текстов на языке C++

ПрограммированиеC++Алгоритмы

Введение



Этот текст можно рассматривать как обзор библиотеки Strutext, задуманной автором как набор эффективных алгоритмов лингвистической обработки текста на языке C++. Код библиотеки находится в репозитории на Github. Библиотека имеет открытый исходный код и поставляется под лицензией Apache License 2.0, т.е. может быть использована совершенно бесплатно без каких-либо существенных ограничений.

Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры12.8K
Комментарии 32

Строго типизированные комбинаторы для построения парсера и синтезатора естественного языка

Блог компании ПраймтолкРегулярные выраженияScalaNatural Language Processing
Известные ParserCombinator'ы и Parboiled предназначены исключительно для разбора формальных языков. Мы же решаем задачу разбора естественного языка и при этом хотим, чтобы с помощью той же грамматики можно было осуществлять синтез фраз на естественном языке, отражающих требуемую нам семантику. Было бы удобно иметь возможность описывать языковые конструкции вместе с правилами абстрагирования/конкретизации.

Например,

  1. Преобразование числительных в число («десять» -> 10:Int)
  2. и обратно (10:Int -> «десять» («десятый», «десяток» ...))
  3. Преобразование числительных вместе с единицей измерения («десять рублей» <-> NumberWithMeasurement(10, RUB))
  4. Неполный адрес («ул. Яблочная» <-> Address(street=«Яблочная»))
  5. Адрес в пределах города («улица Яблочная дом сто двадцать три квартира сорок пять» <-> Address(street=«Яблочная», building=123, flat=45))
  6. Телефон (256-00-21 («двести пятьдесят шесть ноль ноль двадцать один») <-> NumericalSequence(256,0,0,21))

Причём хотелось бы иметь следующие системные свойства:

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

Под катом — описание подхода, реализованного в библиотеке synapse-typed-expressions. Рассмотрены только числительные, но подход естественным образом распространяется на другие вышеупомянутые формальные языковые конструкции.
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Просмотры6.7K
Комментарии 2

Библиотека Strutext обработки текстов на C++ — реализация лексического уровня

ПрограммированиеC++Алгоритмы

Базовые принципы


Этот текст является продолжением поста о библиотеке Strutext обработки текстов на языке C++. Здесь будет описана реализация лексического уровня представления языка, в частности, реализация морфологии.
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры12.1K
Комментарии 4

Онтоинженер: работа по понятиям

Блог компании ABBYYПоисковые технологииСемантика
Привет, Хабр! Меня зовут Даня, и я работаю в группе извлечения знаний ДогадайтесьКакойКомпании. В двух постах я расскажу,
  • как мы извлекаем факты и сущности из текстов,
  • кто такие онтоинженеры,
  • зачем они отделяют трупы от костей,
  • причём здесь Лев Толстой.

На Хабре уже было несколько публикаций, посвященных извлечению информации из неструктурированного текста (много чего ищется по тегами Text Mining, Information Extraction). Вот здесь, например, приведен краткий джентльменский набор того, что желательно сделать с текстом, прежде чем из него будет удобно что-нибудь извлечь (спойлер: мы все это тоже делаем). А вот тут коллеги из Яндекса описывают свой подход с использованием КС-грамматик (кстати, там тоже замешан Толстой). В общем, тема для Хабра не новая, но и нельзя сказать, что достаточно раскрытая. Потому мы и решили поделиться нашим опытом.
Читать дальше →
Всего голосов 35: ↑29 и ↓6 +23
Просмотры22.4K
Комментарии 13

Онтоинженер: от сотворения мира к порождению сущностей

Блог компании ABBYYПоисковые технологииСемантика
В этом посте я продолжу рассказ о той части Compreno, которая связана с профессией онтоинженера. Ну или о той работе онтоинженера, которая связана с упомянутой технологией — это уж кому как удобнее воспринимать.

Напомню, первая часть подвела нас к тому, что онтоинженеры строят онтологии, чтобы технология могла работать (без них — никуда, так уж всё устроено).
Чуть более полное описание первой части:
  • Наша система извлечения информации опирается на представление текста в виде синтактико-семантических деревьев Compreno.
  • Узлы деревьев примерно соответствуют словам в предложении, а дуги отражают зависимости между ними (с точки зрения грамматики зависимостей).
  • Деревья являются формальным представлением «смысла» высказывания, поэтому в них уже разрешены языковые неоднозначности.
  • Получив на вход эти деревья, на выходе система выдает информационные объекты — сущности (персоны, организации, локации и т.п.) или факты (аресты, смерти, покупки, родство, получение образования и т.п.).
  • Формальные модели действительности, внутри которых существуют все эти факты и сущности, называются онтологиями. Онтоинженеры разрабатывают онтологии, используя стандарт OWL.

О том, что ещё, и, конечно, зачем делают онтоинженеры, я предлагаю узнать прямо сейчас.

Семь битв – одно поддерево


Основную часть рабочего времени онтоинженер посвящает не «моделированию мира» (хотя это и звучит очень гордо), а созданию системы извлечения. И хотя мы всё больше экспериментируем со статистикой, машинным обучением и автоматическим извлечением паттернов, пока в наших продуктах и проектах используются правила, написанные вручную. Однако правила эти представляют собой не какие-то жесткие шаблоны, опирающиеся на линейный порядок слов в предложении, а описания фрагментов семантико-синтаксических деревьев ABBYY Compreno. Это позволяет нам сравнительно легко обходить вариативность и неоднозначность языка, кратко задавая множество вариантов, используемых для выражения одного и того же смысла.
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры15.2K
Комментарии 21

Сериал: Big Data — как мечта. 6-я серия. BD (Bolt Data) — Быстрые Big Data данные

Блог компании PalitrumLabВысокая производительностьПоисковые технологииАнализ и проектирование системBig Data
В предыдущих сериях: Big Data — это не просто много данных. Big Data — процесс с положительной обратной связью. «Кнопка Обамы» как воплощение rtBD&A. Философия развития Big Data. В новой серии впервые упомянем о новом E-ngine — воплощении мечт IBM, Google и др.

Только ленивый (включая и сценаристов нашего сериала) уже не высказался со своим мнением по поводу «Who is Big Data?» Сегодня давайте порассуждаем не про объемы, а про скорострельность потоков данных. Англоязычное слово Bolt имеет так много смыслов, что легко можно подобрать другой смысл для двухбуквия BD вместо Big Data — Bolt Data, в том числе: удар молнии, вылетать, выболтать, говорить быстро и невнятно.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры8.4K
Комментарии 9

Теги в социальных сетях и синтетические (флективные) языки

Поисковые технологииJavaScriptHTMLБраузеры
Tutorial

I. В чём проблема


Многие компьютерные технологии, разработанные изначально в мире аналитического языка , при переносе в сообщество с синтетическим языком натыкаются на дополнительные трудности.

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

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

Мы с #муж в ресторане.

С завтрашнего дня в #Москва.

Вернулись с #море.

Возникает очень странное чувство, некоторое языковое головокружение и раздвоение.
Читать дальше →
Всего голосов 19: ↑13 и ↓6 +7
Просмотры13.4K
Комментарии 32

Сколько твитов нужно, чтобы узнать ваш характер?

Блог компании PalitrumLabСемантикаData MiningBig Data
Экстенсивный рост количества неструктурированных данных (твитов, постов, комментов, фото и видео), генерируемый человечеством – и фантастические возможности, и головная боль для многих старых и новых индустрий.

На днях мы уже приводили фактографию по объемам количества сообщений, производимых человечеством в сутки, понятно, что миллиарды высказываний требуют совершенно других решений и технологий. «Старые» (ужас, прошло 3-5 лет, и уже старые) подходы и люди, их разрабатывающие, борются за место под солнцем. Но…

image

В качестве классического примера приводим перевод недавнего материала от подразделения IBM Watson:
Читать дальше →
Всего голосов 19: ↑14 и ↓5 +9
Просмотры16.5K
Комментарии 7

Алгоритм извлечения информации в ABBYY Compreno. Часть 1

Блог компании ABBYYПоисковые технологииСемантика
Привет, Хабр!

Меня зовут Илья Булгаков, я программист отдела извлечения информации в ABBYY. В серии из двух постов я расскажу вам наш главный секрет – как работает технология Извлечения Информации в ABBYY Compreno.

Ранее мой коллега Даня Скоринкин DSkorinkin успел рассказать про взгляд на систему со стороны онтоинженера, затронув следующие темы:

В этот раз мы опустимся глубже в недра технологии ABBYY Compreno, поговорим про архитектуру системы в целом, основные принципы ее работы и алгоритм извлечения информации!



Читать дальше →
Всего голосов 44: ↑40 и ↓4 +36
Просмотры27K
Комментарии 15

Алгоритм извлечения информации в ABBYY Compreno. Часть 2

Блог компании ABBYYПоисковые технологииСемантика
И снова здравствуйте!

Надеюсь, вас заинтересовал наш вчерашний пост про систему извлечения информации ABBYY Compreno, в котором мы рассказали про архитектуру системы, семантико-синтаксический парсер и его роль и, самое главное, про информационные объекты.

Теперь настало время поговорить о самом интересном – как устроен сам движок извлечения информации.


Читать дальше →
Всего голосов 34: ↑33 и ↓1 +32
Просмотры10.5K
Комментарии 13

Война, мир и ABBYY Compreno: продолжение нашего романа с Толстым

Блог компании ABBYYСемантикаData MiningВизуализация данных
Недавно мы рассказывали здесь о том, как делался проект «Весь Толстой в один клик». С помощью 3249 (трех тысяч двухсот сорока девяти) волонтеров и 1 (одной) хорошей OCR-технологии мы оцифровали 46820 страниц 90-томного собрания сочинений писателя, тщательно вычитали их и выложили во всеобщий доступ.

Но если вы думали, что наш «роман с Толстым» на этом закончился, то вы ошибались – оцифровав тексты писателя, мы начали исследовать их при помощи технологии извлечения информации ABBYY Compreno – не пропадать же такому богатому материалу. О том, что дал нам «text mining Толстого» и где теперь используются полученные результаты, читайте дальше.

Введение


Главной целью проекта «Весь Толстой в один клик» было сделать творчество Толстого по-настоящему всеобщим достоянием, чтобы все вышедшие из-под его пера тексты были доступны в один клик в любой точке Земли. Как, кстати, и завещал сам автор, еще при жизни отказавшийся от всех прав на свои тексты (да-да, анонимус, Лев Толстой знал про копилефт и опендату задолго до этих ваших интернетов и Ричарда Столлмана).

Однако возможность загрузить книжку в удобном формате в ридер или планшет – не единственный плюс оцифровки. Теперь тексты Толстого можно не только читать, но и «измерять», то есть исследовать разными количественными методами, используя весь арсенал средств автоматической обработки текста (АОТ, она же NLP). Ведь если у вас есть все тексты писателя в электронном виде, даже с помощью одного-двух грамотных поисковых запросов вы можете получить любопытные данные, на добычу которых в иные времена мог потратить недели и месяцы упорного труда какой-нибудь литературовед. А уж если у вас к тому же имеется продвинутая технология анализа естественного языка, то есть шансы сделать серьезное филологическое открытие (даже не будучи филологом). Ниже я расскажу, что удалось намерить и узнать нам, но перед этим – пара слов о том, кто, как и зачем занимается автоматической обработкой художественных текстов и что интересного может при этом получиться.
Читать дальше →
Всего голосов 35: ↑34 и ↓1 +33
Просмотры12.8K
Комментарии 7

Что такое современная лингвистика. Лекция в Яндексе

Блог компании ЯндексЗанимательные задачкиПрофессиональная литература
В лингвистике сосуществуют две традиции описания языка: одна из них, до сих пор продолжающая традицию шумеров и древних греков, описывает язык фрагментарно — отдельно фонетику и фонологию, отдельно морфологию, отдельно синтаксис и т. д. Другая, идущая с четвертого — пятого веков до н. э. от индийского монаха Панини, описывает язык как интегральное целое — описание фонетики, морфологии, синтаксиса, семантики строится в виде взаимно ориентированных правил, с помощью которых из элементарных языковых единиц строятся тексты.

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



Лектор Александр Николаевич Барулин — сотрудник Института языкознания РАН. Закончил отделение структурной и прикладной лингвистики филологического факультета МГУ им. М. В. Ломоносова. Учился в аспирантуре Института востоковедения АН СССР, защитил диссертацию на тему «Теоретические проблемы описания турецкой именной словоформы» (1984). Проработал в Институте востоковедения 12 лет. В 1991 году совместно с В. К. Финном и Д. Г. Лахути организовал факультет информатики РГГУ и возглавил созданное на этом факультете отделение теоретической и прикладной лингвистики. В 1992 по проекту Барулина был организован факультет теоретической и прикладной лингвистики — он стал деканом этого факультета, а также заведующим кафедрой теоретической и прикладной лингвистики.

Под катом — подробная расшифровка лекции.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры18K
Комментарии 14

Реализация семантического новостного агрегатора с широкими поисковыми возможностями

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

Зачем это нужно?


В идеале, семантическая система «понимает» содержание обрабатываемых статей в виде системы смысловых понятий и выделяет из них главные («о чем» текст). Это дает огромные возможности по более точной кластеризации, автоматическому реферированию и семантическому поиску, когда система ищет не по словам запроса, а по смыслу, который стоит за этими словами.

Семантический поиск – это не только ответ по смыслу на набранную в поисковой строке фразу, а в целом способ взаимодействия пользователя с системой. Семантическим запросом может быть не только простое понятие или фраза, но и документ — система при этом выдает семантически связанные документы. Профиль интересов пользователя – это тоже семантический запрос и может действовать в «фоновом режиме» параллельно с другими запросами.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры9.2K
Комментарии 14

Писать тексты для машин: почему журналисты в истерике?

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

Вышеперечисленные требования сильно отличаются от требований печатного СМИ. Там всё наоборот. Например, те же заголовки часто делают заумными и двусмысленными, а смысл заголовка расшифровывается в лиде.

Дошло до того, что некоторые газеты начали публиковать на сайте по два заголовка. Один заголовок — умный и изысканный — находится на первой странице сайта и должен привлечь читателей-людей. Второй заголовок — простой, буквальный — в самом тексте статьи. Например, для больших статей так обычно поступают редакторы сайта BBC News. Ещё в прошлом году NY Times опубликовала интересную статью на эту тему.

Казалось бы, всё понятно — онлайновая журналистика вынуждает писать тексты с учётом требований поисковых систем. Но почему-то некоторых журналистов ужасно раздражает тот факт, что они пишут для машин. Откуда такая надменность и нежелание изучать технику SEO — не совсем понятно.

На самом деле здесь нет ничего сложного. Просто нужно переделывать заголовки по определённому алгоритму. Здесь тоже есть где проявить литературный талант.
Всего голосов 19: ↑17 и ↓2 +15
Просмотры665
Комментарии 28

Сериал: Big Data — как мечта. 6-я серия. BD (Bolt Data) — Быстрые Big Data данные

Блог компании PalitrumLabБлог компании Brand AnalyticsИсследования и прогнозы в IT
В предыдущих сериях: Big Data — это не просто много данных. Big Data — процесс с положительной обратной связью. «Кнопка Обамы» как воплощение rtBD&A. Философия развития Big Data. В новой серии впервые упомянем о новом E-ngine — воплощении мечт IBM, Google и др.

Только ленивый (включая и сценаристов нашего сериала) уже не высказался со своим мнением по поводу «Who is Big Data?» Сегодня давайте порассуждаем не про объемы, а про скорострельность потоков данных. Англоязычное слово Bolt имеет так много смыслов, что легко можно подобрать другой смысл для двухбуквия BD вместо Big Data — Bolt Data, в том числе: удар молнии, вылетать, выболтать, говорить быстро и невнятно.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры4.1K
Комментарии 4

Четыре слова, которые нельзя (часть 2)

Блог компании PalitrumLabБлог компании Brand AnalyticsЧитальный зал
По просьбе хабрачан продолжим публикации об исследовании обсценной лексики. (Если кто не читал первую часть, то можете ознакомиться).

Начнем сразу с картинок.

Итак, картинка первая.


Рис.1. Распределение обсценной лексики по источникам.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры11.6K
Комментарии 19

Конкурс по классификации слов от Hola или «где взять ещё один процент?»

Спортивное программированиеJavaScriptАлгоритмы
Из песочницы
Recovery mode
Увидел пост о конкурсе, когда прошло уже две недели после начала. Но задача показалась крайне увлекательной, и я не ошибся в этом, нырнув в решение с головой. Хочу поделиться решением на 80+% и своими впечатлениями в этом посте.

Всё моё участие прошло под вопросом «где взять ещё один процент?», но в ответ я чаще получал сотые доли процента или ничего. Итак, обо всём по порядку.
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры5.5K
Комментарии 21

Математические обозначения: Прошлое и будущее

Блог компании Wolfram ResearchЗанимательные задачкиПрограммированиеМатематикаПрофессиональная литература
Перевод


Перевод поста Стивена Вольфрама (Stephen Wolfram) "Mathematical Notation: Past and Future (2000)".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Содержание


Резюме
Введение
История
Компьютеры
Будущее
Примечания
Эмпирические законы для математических обозначений
Печатные обозначения против экранных
Письменные обозначения
Шрифты и символы
Поиск математических формул
Невизуальные обозначения
Доказательства
Отбор символов
Частотное распределение символов
Части речи в математической нотации
Стенограмма речи, представленной на секции «MathML и математика в сети» первой Международной Конференции MathML в 2000-м году.

Резюме


Большинство математических обозначений существуют уже более пятисот лет. Я рассмотрю, как они разрабатывались, что было в античные и средневековые времена, какие обозначения вводили Лейбниц, Эйлер, Пеано и другие, как они получили распространение в 19 и 20 веках. Будет рассмотрен вопрос о схожести математических обозначений с тем, что объединяет обычные человеческие языки. Я расскажу об основных принципах, которые были обнаружены для обычных человеческих языков, какие из них применяются в математических обозначениях и какие нет.

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

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

Традиционная математическая нотация представляет математические объекты, а не математические процессы. Я расскажу о попытках разработать нотацию для алгоритмов, об опыте реализации этого в APL, Mathematica, в программах для автоматических доказательств и других системах.

Обычный язык состоит их строк текста; математическая нотация часто также содержит двумерные структуры. Будет обсуждён вопрос о применении в математической нотации более общих структур и как они соотносятся с пределом познавательных возможностей людей.

Сфера приложения конкретного естественного языка обычно ограничивает сферу мышления тех, кто его использует. Я рассмотрю то, как традиционная математическая нотация ограничивает возможности математики, а также то, на что могут быть похожи обобщения математики.
Читать дальше о математической нотации, её прошлом и будущем...
Всего голосов 52: ↑51 и ↓1 +50
Просмотры45.3K
Комментарии 9

Как Яндекс научил машину самостоятельно создавать переводы для редких языков

Блог компании ЯндексПоисковые технологииАлгоритмыМашинное обучение
В одной только России насчитывается более сотни языков, многие из которых являются родными для десятков и сотен тысяч человек. Причем часть из них ограничена в употреблении или даже находится на грани исчезновения. Машинный перевод мог бы помочь в сохранении этих языков, но для этого надо решить главную проблему всех подобных систем – отсутствие примеров для обучения.

Яндекс работает над технологией машинного перевода с 2011 года, и сегодня я расскажу о нашем новом подходе, благодаря которому становится возможным создать переводчик для тех языков, для которых ранее это было сделать затруднительно.



Правила против статистики

Машинный перевод, то есть автоматический перевод с одного человеческого языка на другой, зародился в середине прошлого века. Точкой отсчета принято считать Джорджтаунский эксперимент, проведенный 7 января 1954 года, в рамках которого более 60 фраз на русском языке были переведены компьютером на английский. По сути, это был вовсе и не эксперимент, а хорошо спланированная демонстрация: словарь включал не более 250 записей и работал с учетом лишь 6 правил. Тем не менее результаты впечатлили публику и подстегнули развитие машинного перевода.
Читать дальше →
Всего голосов 87: ↑85 и ↓2 +83
Просмотры18K
Комментарии 58