[icon] Boris Smilga -
View:Recent Entries.
View:Archive.
View:Friends.
View:User Info.

Time:08:28 pm
В корнельском арХиве эл. препринтов довольно симпатичная статья с кратким изложением истории автоматической обработки текста (то, чем я, вообще говоря, занимаюсь). Это популярное изложение, вычислительным лингвистам и иже с ними там смотреть особенно не на что (хотя историю про установление авторства «Записок федералиста» лично я раньше не слышал), однако интересующимся рекомендую.

http://www.arxiv.org/abs/cs.CL/0304027, там дальше ссылки на версии в постскрипте и pdf.
comments: Leave a comment Previous Entry Tell A Friend Add to Memories Next Entry


[info]greenadine@lj
Link:(Link)
Time:10:17 pm
А с семантикой это никак не связно, то, чем ты занимаешься?
http://izuminka.free.fr/articles/arisem/index.htm
(Reply to this) (Thread)


[info]smilga@lj
Link:(Link)
Time:02:14 am
Еще как связано. Я, правда, сейчас сижу без работы и на досуге занимаюсь вещами, связанными скорее с морфологией, чем с семантикой, но на последнем месте делал платформу для синтактико-семантического анализа. Если интересно, могу рассказать подробнее.
(Reply to this) (Parent) (Thread)


[info]greenadine@lj
Link:(Link)
Time:03:06 am
Конечно интересно, Вы по моей ссылке, наверное, поняли, что наша контора этим занимается.
Расскажите!
(Reply to this) (Parent) (Thread)


[info]smilga@lj
Link:(Link)
Time:02:43 pm

Что ж, начать надо, видимо, с того, что контора называется AT&T Research. Я там состоял целый год в качестве консультанта с копытом при Отделе реализации естестевенно-языковых услуг. Сверхзадача заключается в построении систем устного диалога с компьютером. Главная мантра у них — «смешанная инициатива» [mixed initiative], это значит, что человек не просто отвечает на вопросы компьютера, который его ведет по жестко заданному пути в диалоге, а может перебивать и до какой-то степени навязывать машине свой интерес. Область применения — телефоны технической поддержки, справочные системы, билетные кассы, в общем, всякие места, где сейчас обычно сидят бестолковые барышни, а капиталистам хочется барышень прогнать и посадить машины, которые, конечно, тоже бестолковые, но более предсказуемы и кушать не просят.

Я позволю себе сослаться на доклад (PDF, англ.) Ди Фабрицио и др. на конференции ICSLP 2002, в котором описывается «пульт помощи» [help desk] — один возможный вариант системы. Это непосредственно относится к моей тамошней деятельности; я занимался в основном тем кусочком, который упомянут в пункте 2.4.2 и немного тем, что в 2.4.3.

2.4.2 — это то, что на жаргоне статистической АОТ называется «выделением именованных объектов» [named entity extraction]. Фактически, в данном случае это синтактико-семантический анализ входящего текста не вероятностными методами, а на основе категорических правил, которые задаются с помощью регулярных грамматик. Грамматики преобразуются в конечные автоматы; у AT&T есть всякая программистская инфраструктура, позволяющая с конечными автоматами работать легко и приятно. Если некоторая часть фразы на входе построена сообразно какой-то грамматике, автомат ее распознает и размечает структуру XML-вскими вешками. Например, автомат, созданный по грамматикам топонимов и календарных дат, получив на входе

I MADE A CALL TO INDIA ON FRIDAY TWENTY FIFTH OF APRIL

может давать на выходе

I MADE A CALL TO <COUNTRY> INDIA </COUNTRY> ON
<DATE> <DAY-OF-WEEK> FRIDAY </DAY-OF-WEEK>
<DAY-OF-MONTH> TWENTY FIFTH </DAY-OF-MONTH> OF
<MONTH> APRIL </MONTH> </DATE>

— а может и не давать, все зависит от того, как грамматики определены.

Выходной текст еще некоторым образом нормализуется, а потом направляется, во-первых, «управдиалогу» [dialogue manager], который командует всем в системе, а во-вторых, «категоризатору» [classifier] (о нем в докладе пункт 2.4.3), который относит реплику по ее статистическим свойствам к одной из нескольких семантических категорий (обычно их несколько десятков, дальше разработка становится слишком сложна), и, опять-таки, сообщает эти данные управдиалогу. По категории управдиалог может в общих чертах решить, чего же хочет от него звонящий, а в именованных объектах содержатся конкретные детали.

(Reply to this) (Parent) (Thread)


[info]greenadine@lj
Link:(Link)
Time:11:09 pm
Очень интересно, спасибо! Забавно читать текст на русском по этой теме, есть несколько неочевидных для меня переводов: "естестевенно-языковые услуги", "XML-вские вешки", "управдиалог". А что такое "консультант с копытом" ? ;-)
Во Франции есть как минимум одна исследовательская лаборатория, занимающаяся этими вещами, называется CNET (Centre national d'études des télécommunications), в городе Lannion, в Бретани. От нас туда ушёл один разработчик. ;-)
Здесь для обслуживания до и после продаж уже вовсю используюся так называемые вокальные сервера - разветвлённые автоответчики. После общения с ними у меня складывается впечатление, что программы построены таким образом, чтобы как можно дольше водить клиента по лабиринтам диалога, ибо номера эти сильно платные по времени ;-) Впрочем, на них пока ещё никакой смешанной инициативой не пахнет...
Наша фирма несколько другими вещами занимается, из вашего меня заинтересовали семантические категории - они для каждого случая новые или есть стандартные? Могу рассказать подробнее о нашем алгоритме, если интересует.
(Reply to this) (Parent) (Thread)


[info]smilga@lj
Link:(Link)
Time:05:19 am

Очень интересно, спасибо! Забавно читать текст на русском по этой теме, есть несколько неочевидных для меня переводов: "естестевенно-языковые услуги", "XML-вские вешки", "управдиалог". А что такое "консультант с копытом" ? ;-)

Очень сильно не люблю мешать языки и стараюсь подбирать такие слова для перевода, чтобы не скрипели на зубах. «Естественно-языковые услуги» — это, впрочем, довольно бескрылый перевод, по-английски отдел называется «Natural language services creation department». «Консультант с копытом» — так называлась одна из ранних редакций «Мастера и Маргариты».

<…> из вашего меня заинтересовали семантические категории - они для каждого случая новые или есть стандартные? <…>

Программе, в общем, наплевать, какие там именно категории. Ей для начала скармливают чертову прорву реплик, с указанием для каждой, какие категории ей соответствуют. Это добро пропускают через довольно хитроумный алгоритм машинного обучения под названием BoosTexter, который порождает стохастическую модель предметного языка — дескать, если в тексте есть такая-то n-грамма, то он относится к категории A с вероятностью 0,65, к категории B с вероятностью 0.4, к категории C с вероятностью 0.05 и так далее по всем категориям. В прогонной системе эту модель считывают в память и для каждой входящей реплики смотрят, какие в ней есть n-граммы, объединяют вероятности категорий для всех n-грамм, отрубают все категории, вероятности которых находятся ниже какого-то порога и сухой остаток посылают управдиалогу. Стало быть, на каких категориях программу тренировали, такие она и будет находить. Фактически, набор используемых категорий определяется предметной областью, и необходимы довольно кропотливые исследования в рамках каждого конкретного приложения, чтобы этот набор определить. Во всех «пультах помощи» бывают, скажем, категории «позвать опертора - человека» и «благодарность».

(Reply to this) (Parent) (Thread)


[info]smilga@lj
Link:(Link)
Time:09:25 am

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

I MADE A CALL TO <COUNTRY/> ON <DATE/>

Это несколько повышает аккуратность классификации (хотя, как показали тесты, не кардинально) и дает существенный выигрыш в производительности. А мелкие детали про выделенные объекты категоризатору знать и не интересно.

(Reply to this) (Parent)


[info]greenadine@lj
Link:(Link)
Time:04:39 am
Ей для начала скармливают чертову прорву реплик, с указанием для каждой, какие категории ей соответствуют. Это добро пропускают через довольно хитроумный алгоритм машинного обучения...
То есть, фактически, речь идёт о нейронных сетях?
А что за категория "благодарность"? Типа встроенного опроса об удовлетворении клиентов?

Сейчас попробую описать наш алгоритм (я не разработчик и описывать буду с точки зрения консультанта, который помогает клиентам настраивать программу), вот тут:
http://www.livejournal.com/users/greenadine/94993.html.
(Reply to this) (Parent) (Thread)


[info]smilga@lj
Link:(Link)
Time:08:20 am

То есть, фактически, речь идёт о нейронных сетях?

Ну, не вполне. Там работает технология т.н. «разгона» [boosting], которая взаимодействует с какими-либо алгоритмами машинного обучения, повышая их эффективность. Это имеет некоторое отношение к теории игр; но я не берусь сказать, что понимаю математический аппарат, на котором оно все построено. Что касается алгоритмов обучения, то, наверно, можно использовать и нейронные сети, но реально там применяется что-то типа моделирования с максимальной энтропией.

А что за категория "благодарность"? Типа встроенного опроса об удовлетворении клиентов?

Гораздо проще. Это когда клиент говорит «Спасибо». От системы, видимо, ожидается ответное «Пожалуйста».

Спасибо за разъяснения про Арисем. Мне бы, конечно, хотелось лучше понять, как там все работает внутри (как создается метатекст, например), но это уже, видимо, вопросы к вашим программистам.

(Reply to this) (Parent) (Thread)

(no subject) - [info]greenadine@lj


[info]smilga@lj
Link:(Link)
Time:05:11 am
Стереть не проблема. Кстати, мне комментарии отправляются по почте, так что я предыдущую версию получил, зря Вы с новой напрягались. Но тем более спасибо.
(Reply to this) (Parent)


[info]smilga@lj
Link:(Link)
Time:05:24 am

<…> Могу рассказать подробнее о нашем алгоритме, если интересует.

Это было бы весьма любезно с Вашей стороны.

(Reply to this) (Parent)

[icon] Boris Smilga -
View:Recent Entries.
View:Archive.
View:Friends.
View:User Info.