我已经看了很多开源的自然语言处理工具(主要是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来做这件事?
发布于 2017-01-02 17:29:29
我不知道有什么工具可以做到这一点,开箱即用,与领域无关。可能对于特定的领域,你可以训练一些东西。例如,在通话记录中,很可能是A-B-A-B (等)结构,两个人轮流说话。但是当更多的人参与到对话中时,事情就会变得复杂得多。此外,您是否可以使用拼写功能(如单引号/双引号)做到这一点,还取决于构建您的文本/语料库的人是否愿意以一种整洁和一致的方式做到这一点。
我最近偶然发现了一个执行话语解析的工具:http://alt.qcri.org/tools/discourse-parser/
这为您提供了一种称为修辞结构树的东西,它是输入文档的表示,它澄清了哪个句子与另一个句子有什么关系。我还没有尝试过它的对话框,也不知道那里的性能。但它是/依赖于一种更具语义意识的方法来将文本分割成碎片。也许这能帮到你。不过,该工具并不像corenlp/opennlp bunch那样用户友好,而且它需要(至少对我来说是)相当多的操作才能启动和运行。
无论如何,可能信息太多,答案很简短;据我所知,没有容易实现和使用的工具。
发布于 2017-01-03 02:04:23
经过一些搜索,看起来斯坦福自然语言处理工具有一个"QuoteAnnotator“,这正是我要找的。
https://stackoverflow.com/questions/41418850
复制相似问题