2017-01-01 46 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. 

另外,经常内部对话将与斜体字表示,如:

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

经过一番搜索后,它看起来像斯坦福NLP工具有一个“QuoteAnnotator”,这正是我正在寻找。