Рубрика «эллипсис»

Каждый год в Москве проходит конференция "Диалог", в которой участвуют лингвисты и специалисты по анализу данных. Они обсуждают, что такое естественный язык, как научить машину его понимать и обрабатывать. В рамках конференции традиционно проводятся соревнования (дорожки) Dialogue Evaluation. В них могут участвовать как представители крупных компаний, создающих решения в области обработки естественного языка (Natural Language Processing, NLP), так и отдельные исследователи. Может показаться, что если ты простой студент, то тебе ли тягаться с системами, которые крупные специалисты больших компаний создают годами. Dialogue Evaluation — это как раз тот случай, когда в итоговой турнирной таблице простой студент может оказаться выше именитой компании.

Этот год станет уже 9-ым по счету, когда на «Диалоге» проводится Dialogue Evaluation. Каждый год количество соревнований разное. Темами для дорожек уже становились такие задачи NLP, как анализ тональности (Sentiment Analysis), разрешение лексической многозначности (Word Sense Induction), нахождение опечаток (Automatic Spelling Correction), выделение сущностей (Named Entity Recognition) и другие.

Соревнование ML-систем на лингвистическом материале. Как мы учились заполнять пропуски - 1В этом году четыре группы организаторов подготовили такие дорожки:

  • Генерация заголовков для новостных статей.
  • Разрешение анафоры и кореференции.
  • Морфологический анализ на материале малоресурсных языков.
  • Автоматический анализ одного из видов эллипсиса (гэппинга).

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

Чем занимаются в департаменте R&D ABBYY: NLP Advanced Research Group - 1Чем занимаются в департаменте R&D в ABBYY? Чтобы ответить на этот вопрос, мы начинаем серию публикаций о том, как наши разработчики создают новые технологии и совершенствуют существующие решения. Сегодня расскажем про направление Natural Language Processing (NLP).

Мы в ABBYY занимаемся исследованиями в сфере обработки естественного языка и беремся за сложные научные задачи, для которых пока нет готовых решений. Так мы создаем инновации, которые ложатся в основу продуктов и помогают нашим заказчикам, да и нам двигаться вперед. Кстати, 24 ноября на лекции в Школе глубокого обучения при МФТИ руководитель NLP Advanced Research Group в департаменте R&D ABBYY Иван Смуров расскажет, какие в мире есть задачи по анализу текста и как современные нейросети позволяют их решать. А в этом посте Иван рассказал нам о трех задачах, которыми занимается сейчас. Читать полностью »

Началось все, как водится, с ошибки. Я первый раз работал с Java Native Interface и делал в C++ части обертку над функцией, создающей Java объект. Эта функция — CallVoidMethod — вариативна, т.е. помимо указателя на среду JNI, указателя на тип создаваемого объекта и идентификатора вызываемого метода (в данном случае конструктора), она принимает произвольное число других аргументов. Что логично, т.к. эти другие аргументы передаются вызываемому методу на стороне Java, а методы могут быть разные, с разным числом аргументов любых типов.

Соответственно и свою обертку я тоже сделал вариативной. Для передачи произвольного числа аргументов в CallVoidMethod использовал va_list, потому что по-другому в данном случае никак. Да, так и отправил va_list в CallVoidMethod. И уронил JVM банальным segmentation fault.

За 2 часа я успел перепробовать несколько версий JVM, от 8-ой до 11-ой, потому что: во-первых это мой первый опыт с JVM, и в этом вопросе я StackOverflow доверял больше, чем себе, а во-вторых кто-то на StackOverflow посоветовал в таком случае использовать не OpenJDK, а OracleJDK, и не 8, а 10. И лишь потом я наконец заметил, что помимо вариативной CallVoidMethod есть CallVoidMethodV, которая произвольное число аргументов принимает через va_list.

Что мне больше всего не понравилось в этой истории, так это то, что я не сразу заметил разницу между эллипсисом (многоточием) и va_list. А заметив, не смог объяснить себе, в чем принципиальное отличие. Значит, надо разобраться и с эллипсисом, и с va_list, и (поскольку речь все-таки о C++) с вариативными шаблонами.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js