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

Комментарии 54

При аббревиатуре NLP сразу почему-то вспомнилось нейролингвистическое программирование)
я тоже по началу не смог связать содержимое статьи с психологией)
Именно поэтому аббревиатура расшифрована во второй строчке сверху, ещё до ката. По ошибке прочесть две строчки не страшно :)
Обычная ошибка тех, кто не в теме.
НЛО прилетело и опубликовало эту надпись здесь
Очень даже информативно, т.к. разложено по полочкам :)
Добавил в закладки, буду следить!
Заинтересовали вы меня. С наступающим.
Совершенно неинформативно. Хабралюдям надо что-нибудь полезное рассказывать, например про словарь Зализняка-Старостина и как его использовать для поиска словоформ. А вы даже терминологию предметной области ввести не удосужились.
Не всё сразу.
Касательно словаря Зализняка — как раз указал, что вряд ли будем заниматься морфологией, меня больше интересует синтаксический анализ фраз.
Кстати, а никто не знает, как дело обстоит с лицензированием словаря Зализняка? Кому на него права принадлежат, можно ли его свободно использовать? А то у нас вся морфология на Зализняке. Просто берут и используют, или все договариваются как-то?
Лет 10 назад то со Старостиным мой тогдашний работодатель подписывал договор на использование словаря Зализняка. Стоило это дело где-то тыщи две евро, ЕМНИП. Но это скорее исключение, где-то в инете есть цитата Зализняка по поводу того, что он не претендует на лицензионные отчисления от использование оцифрованной версии его словаря для морфологического анализа в ПО.
Спасибо, интересная информация.
> Например, на японский невозможно перевести фразу «мой брат — студент», так как в японском нет слова «брат» — есть только «старший брат» и «младший брат»

Во блин. А как же они обозначают брата-близнеца? Ведь он не старше и не младше.
Строго говоря, всё же младше или старше, хотя и незначительно.
Если не по времени зачатия, то по времени рождения уж точно, интерфейс родовых путей строго последовательный )
По теме же, онлайн-переводчики выдали действительно два варианта перевода для слова «брат»:
兄弟 и ブラト; а в таком аниме как Shingetsutan Tsukihime я и вовсе третий слышал.
Второе — врут :)
Это просто транслитерация на катакану русского слова «брат» :)))
Если не по времени зачатия, то по времени рождения уж точно, интерфейс родовых путей строго последовательный )


Есть запасной интерфейс — КС.
Этот запасной тоже не сильно параллелен…
В японском есть слово «близнецы» :) Наверно, его и используют.
Спасибо за пост.
Было бы здорово прочитать небольшой обзор «who is who» в среде NLP, от инсайдера. Персоналии, фирмы, продукты — чтобы понять положение дел в отрасли.
К сожалению, не обещаю. Попробуем.

Проблема в том, что «масло слишком тонко размазано». Одни занимаются морфологией, другие синтаксисом, третьи — извлечением фактов… К тому же, всё завязано на конкретные языки. Если вас интересует, скажем, русский, толку с того, что такая-то фирма имеет кучу алгоритмов для работы с английским или немецким. И борьба подходов, методов ещё не завершена :)
Заинтересовался. Хочу продолжения, и в первую очередь интересуют практические мысли по поводу разбора предложений — не в смысле программного кода, а в смысле идей, которые можно использовать для распознавания смысла написанного.
«Надо сказать, гугл-переводчик в разборе совсем плох»

Гугл-переводчик не разбирает синтаксис, так как работает по статистическому принципу, на основе параллельных (выравненных) корпусов, лингвистическое описание системы языка при таком подходе не используется. Описанная в статье схема морфологического — синтаксического — семантического анализа соответствует «алгебраическому» (= алгоритмическому) подходу к автоматической переработе текста, который работает на основе формализованных описаний соответствующих уровней языка.
Да, об этом ещё будет идти речь.
И своё мнение о подходах гугла я ещё выскажу :))
«o, bella, ciao! bella, ciao! bella, ciao, ciao, ciao!!»
с итальянского на русский переводится как
«или, лучше сказать, Hello! Ницца, Hello! Ницца, алло, алло, алло!»

«Ницца» тут возникла ну совсем не из выровненного корпуса :)

да и «статистики» по конкретно этой фразе более, чем достаточно.
Откуда возникла «Ницца»?
я тоже не сразу догадался :)
но ответ очевидный :)

bella — nice — Ницца
Изумительно! Оно, оказывается, «через английский» не гнушается переводить… Совсем как переводчики на конференциях ООН :-) Спасибо за пример.
Год назад делал программу, которая автоматически генерит транскрипцию введенного слова. и, заодно, делает фонетический разбор :)
некоторые мелочи правда не учтены, но в целом работает правильно
Для какого языка?
для украинского
А в украинском есть случаи, когда произношение отличается от написания? Там ведь весьма однозначное соответствие орфографии и транскрипции, разве нет?
Да, благодаря таким эффектам как ассимиляция по звонкости-глухости, мягкости, упрощения (выпадение согласных), удлинение шипящих, сочетания свистящих и шипящих звуков, и многих других.
А соответствие достаточно однозначное, поэтому и есть возможность автоматизировать получение транскрипции. На самом деле нужно просто знать правила и в любом языке будет однозначное соответствие. По крайней мере во многих.
:) Ну если все исключения запихать в правила, конечно, исключений не будет вообще :))
В разных языках транскрипция разной степени сложности.

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

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

Вообще скорость изменений в английском языке потрясает по сравнению с другими языками. Разумеется, на то есть исторические причины. Сравните с русским. Носитель современного русского языка вполне поймёт «Слово о полку Игореве» (12 в.): «Не лепо ли ны бяшеть, братiе, начяти старыми словесы трудныхъ повестiи о пълку Игореве, Игоря Святъславличя! Начяти же ся тои песни по былинамъ сего времени, а не по замышленiю Бояню...» А попробуйте показать носителю современного английского языка (11 в.): «Hwæt! We Gardena in geardagum, þeodcyninga, þrym gefrunon, hu ða æþelingas ellen fremedon...» Узнаются, наверно, только we и in :-)
(Это «Беовульф», конечно.)
Интересная тема. Не подкинете ли список рекомендованой литературы?
С этим та же проблема, что и с выбором метода и т.п. — слишком велико разнообразие вариантов, чтобы все их охватить в одной книге.
Например, много где цитируют монографию Журафски. Быть может, по уровню охвата и вправду это самая обширная книга.
Однако про dependency parsing в ней вообще ничего или два слова (могу ошибаться, давно её листал).

К сожалению, вам сначала придётся определиться с узкой задачей, а потом уже смотреть литературу по теме. По крайней мере, для меня самого это проблема.
Практическое воплощение dependency parsing для русского языка описано 15 лет назад в этой книге (формат DjVu)

Лингвистический процессор

Книга выпущена лабораторией компьютерной лингвистики ИППИ

ИППИ

Ох, видел эту книгу. Не хочу никого обижать, но как-то я скептически к ней отношусь, хотя написано много чего любопытного… Грубо говоря, если бы всё и вправду было бы так хорошо, про переводчики ПРОМТ бы вообще никто не услышал.
Коллеги, знающие японский, подсказали, что в японском всё-таки есть общее слово для старшего и младшего брата — «nii (nii-chan)». Сам я японского не знаю, потому корректность примера не могу оценить. Пример с финским, в котором нет грамматической категории рода («он — она — оно»), разумеется, корректен.
Хм, интересно…
Я сейчас проверил по большому словарю — да, «нии-чан» даётся как «просто брат», хотя в электронном словаре такой расшифровки нет.

Но что характерно, это явно контекстно-зависимый перевод, т.к. для написания используется тот же иероглиф, что и для «старшего брата». Хотя лучше уточнить, я пока ещё специалистом в японском себя назвать не могу.
А вот меня сопутствующая тема сильно интересует. Хотелось бы почитать научно-популярную (более популярную чем научную) статью о различиях и сходствах языков, о всяких интересных особенностях. Не знаете таких трудов? Или может сами напишете? Знания-то и умения, я вижу, имеются :-)

Вот например о чём я: в финском нет различия между «он» и «она», где-то нет падежей, в японском много разных слов для обозначения одного и того же различного уровня вежливости.
Ну если вот так сходу, почитайте статью о лингвистической относительности в «Кругосвете». Там и по ссылкам побродить можно.
спасибо!
задача создания синтаксического анализатора более менее разрешена, было разработано десятки различных грамматик на эту тему, начиная с грамматик Холмского до стохастических грамматик.Проблема как раз состоит в анализе семантическом. На сегодняшний день пока не известно ни одной системы которая была бы сдана в промышленную эксплуатацию, поэтому на месте автора я бы занялся именно этой темой. И вот это как раз действительно то, чем сейчас занимается наука. Последний интересный проект на эту тему известен как «интерсемантика», в основе которого лежит построение так называемого единого семантического кода языка (рус, укр, англ и т.д.)
извините Хомского
А нет случайно ссылок на алгоритмы или на готовые реализации разбора текста на предложения? Мне сейчас как раз нужно разбивать на предложения тексты на европейских языках, так не нашёл решения лучше по качеству, чем открывать на сервере документы вордом и использовать встроенные коллекции текста sentences[] и words[].

Всё бы хорошо, да работает аццки долго, смерть просто… Было бы круто, если бы у Вас нашлась ссылочка другая на невордовые реализации =)
Тут главное знать, что гуглить :) Штука популярная, ищите «sentence splitter»… не даю конкретных ссылок, т.к. можете найти довольно много разного — на нужном языке программирования, для нужного языка входного текста; это не редкость.
Это я гуглил, но мною нагугливается только шлак один, да к тому же в основном для инглиша.
Есть у меня внутреннее ощущение, что придумана библиотечка умеющая сплиттить кучу языков, точно придумана. На каком языке — без разницы, прикручу к своему дотнету по любому.
Ох, тогда не знаю — что шлак, а что не шлак… Для начала хотя бы эти: opennlp.sourceforge.net/projects.html
В OpenNLP Tools есть sentence detector/splitter, да и вроде там не сильно завязано на конкретные языки…
Ещё вот это вроде на язык не завязано: alias-i.com/lingpipe/
Вот за это спасибо, кажется весьма гут)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.