当前位置: 首页 > 知识库问答 >
问题:

检测散文中对话部分的开始和结束

巫马化
2023-03-14

我已经浏览了很多开源NLP工具(主要是OpenNLP),但我没有看到任何能够自动检测对话开始和结束的任务。

句子检测工具找到完整句子的边界。标记器准确标记标点符号,但仍然无法检测开始和结束。我读过许多假设对话检测的学术文章(例如)。但我没有看到任何工具将其自动化为通用对话检测。

例如,这样的文本:

"I am happy," she said.

应该将“我很开心”定义为对话框。像这样的文本:

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

"That spans across multiple paragraphs."

应该将整个内容标识为dialog(即使第一段末尾缺少结束引号)。还有一些更奇怪的方式来指定对话框。比如用破折号:

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实现这一点的方法,我刚刚错过了?

共有2个答案

金赤岩
2023-03-14

经过一些搜索,斯坦福NLP工具似乎有一个“QuoteAnotator”,这正是我要找的。

皇甫俊雅
2023-03-14

我不知道有任何工具可以做到这一点,开箱即用,独立于域。可能对于特定领域,你可以训练一些东西。例如,在通话记录中,你很可能有一个a-B-a-B(等)结构,两个人轮流交谈。但当更多的人参与对话时,事情就会变得复杂得多。此外,是否可以使用正交特征(如单引号/双引号)来实现这一点,还取决于构建文本/语料库的人是否愿意以整洁一致的方式实现这一点。

我最近偶然发现了一个可以进行语篇分析的工具:http://alt.qcri.org/tools/discourse-parser/

这为您提供了一种称为修辞结构树的东西,它是输入文档的一种表示形式,用于澄清哪个句子与另一个句子之间的关系。我没有试过对话,也不知道那里的表现。但它依赖于一种更具语义意识的方式,将文本切碎。也许这能帮到你。不过,这个工具并不像corenlp/opennlp那样对用户友好,而且它需要(至少对我来说是这样)相当多的时间来启动和运行。

无论如何;可能(方式)信息太多,答案简短;据我所知,没有易于实现和使用的工具。

 类似资料:
  • 以下是我尝试的: 将设置为。永远不会被调用 将设置为。从不调用 研究了和类。找不到类似的内容。

  • 我正在制作一个游戏,玩家可以跑过一个标志GameObject,如果他们离它足够近,它会创建一个对话。 现在我的问题是,在结构上有一个预置,其中每个游戏对象都有一个画布(世界空间)会是一个更好的主意吗?)作为一个孩子,其中创建的对话将作为画布游戏对象的孩子放置? 或 有一个世界画布,我小时候把我所有的符号游戏对象都放在里面,并且创建的对话只是我的符号游戏对象的一个孩子? 目前我正在使用后者,但我想挑

  • 问题 你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们。 解决方案 itertools 模块中有一些函数可以完成这个任务。 首先介绍的是 itertools.dropwhile() 函数。使用时,你给它传递一个函数对象和一个可迭代对象。 它会返回一个迭代器对象,丢弃原有序列中直到函数返回Flase之前的所有元素,然后返回后面所有元素。 为了演示,假定你在读取一个开始部分是几行注

  • 我有一个测试数据库,每个测试都有一个StartTime和(对于那些完成的)EndTime值。我想创建一个查询,显示每小时运行的测试数量。 i、 e.在任何给定时间有开始时间但没有结束时间的测试。 我解决了分组问题——感谢@p.cambell对问题SQL Server Group by Count of DateTime Per Hour的回答?

  • 问题内容: 我需要一种解决方案,以在单击时以HTML显示打开文件对话框。单击时,必须打开打开文件对话框。 我不想将输入文件框显示为HTML页面的一部分。它必须显示在单独的对话框中,该对话框不是网页的一部分。 问题答案: 这是一个不错的 它本身就是一个控件。但是div放在上面,并应用CSS样式来获得那种感觉。文件控件的不透明度设置为0,以便在单击div时似乎打开了对话框窗口。

  • 我正在使用Tika来自动检测被推入DMS的文档的内容类型。几乎所有的工作都很好,除了电子邮件。 我引用了核心库和tika解析器来检测pdf和msword文档。我是不是还漏掉了什么?