2017-01-01 13 views
0

Я просмотрел множество инструментов NLP с открытым исходным кодом (OpenNLP в первую очередь), и я не вижу ничего, что автоматизирует задачу обнаружения начала и конца диалога.Обнаружение начала и конца разделов диалога в прозе

Средства обнаружения предложений обнаруживают границы полного предложения. Токенизаторы точно обозначают пунктуацию, но не обнаруживают начало и конец. Я прочитал много научных статей (such as), где предполагается обнаружение диалогов. Но я не вижу никаких инструментов, которые автоматизируют это как обнаружение диалога общего назначения.

Например, текст, как это:

"I am happy," she said. 

Должен иметь "Я счастлив," определяется как диалог. Текст так:

"This is a really long piece of dialog spoken by a character. 

"That spans across multiple paragraphs." 

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

They were walking when Joe spoke up. 
--I really like walking. 

Plus, часто внутренний диалог будет обозначаться курсивом, например:

Joe walked down the street. *I really hope I don't get hit by a bus.* 

Есть ли инструмент NLP, который может обнаружить диалоговые разделы, как это? Или способ сделать это с OpenNLP, который я только что пропустил?

+0

Я думаю, вы правы, что это не стандартная задача, для которой существуют уже существующие инструменты. – Aaron

ответ

1

Я не знаю ни одного инструмента, который делает это, вне зависимости от состояния домена. Вероятно, для конкретных доменов вы могли бы что-то тренировать. Например, в стенограмме вызова вполне вероятно, что у вас есть структура A-B-A-B (и т. Д.), Где два человека разговаривают по очереди. Но когда в диалоге задействовано больше людей, все становится намного сложнее. Кроме того, независимо от того, можете ли вы сделать это с помощью орфографических функций (например, одиночные/двойные кавычки) или нет, также зависит от того, пытались ли люди, которые построили ваш текст/корпус, сделать это аккуратным и последовательным способом или нет.

Недавно я наткнулся на инструменте, который делает дискурс разбор: http://alt.qcri.org/tools/discourse-parser/

Это дает вам то, что называется риторической древовидной структура, которая представляет собой представление входного документа, который проясняет какое предложение имеет какое отношение к другому предложению. Я не пробовал его для диалогов и понятия не имею о производительности там. Но он/полагается на несколько более семантически известный способ резки текстов на куски. Может быть, это может вам помочь. Инструмент не такой же удобен, как и консоль corenlp/opennlp, и для этого требуется (по крайней мере, для меня) довольно неплохо возиться и запускаться.

В любом случае; вероятно (путь) слишком много информации, короткий ответ; насколько я знаю, нетрудно реализовать и использовать для этого инструмент.

+0

Спасибо, что нашли время ответить! –

1

После некоторого поиска похоже, что у инструментов Stanford NLP есть «QuoteAnnotator», что я и ищу.