6

我记得很久以前浏览过 NLTK 网站的句子分割部分。

我使用粗略的文本替换“句号”“空格”与“句号”“手动换行符”来实现句子分割,例如使用 Microsoft Word 替换 ( .-> .^p) 或 Chrome 扩展:

https://github.com/AhmadHassanAwan/Sentence-Segmentation

https://chrome.google.com/webstore/detail/sentence-segmenter/jfbhkblbhhigbgdnijncccdndhbflcha

这不是 NLP 方法,如 NLTK 的 Punkt 分词器。

我进行分段以帮助我更轻松地定位和重读句子,这有时有助于阅读理解。

独立子句边界消歧和独立子句分割呢?是否有任何工具试图做到这一点?

下面是一些示例文本。如果可以在句子中识别出独立的子句,则存在拆分。从句尾开始,向左移动,贪婪地分裂:

例如

句子边界消歧(SBD),也称为断句,是自然语言处理中的问题

句子开始和结束。

通常,自然语言处理工具

出于多种原因,需要将他们的输入分成句子。

然而,句子边界识别具有挑战性,因为标点符号。

标记通常是模棱两可的。

例如,一个时期可能

表示缩写、小数点、省略号或电子邮件地址 - 而不是句子的结尾。

华尔街日报语料库中约47% 的时期

表示缩写。[1]

同样,问号和感叹号也可以

出现在嵌入的引语、表情符号、计算机代码和俚语中。

另一种方法是自动

从句子所在的一组文档中学习一组规则

休息是预先标记的。

日语和中文等语言

有明确的句尾标记。

标准的“香草”方法

找到句子的结尾:

(a)如果

这是一个时期,

它结束了一个句子。

(b)如果上述

令牌在我手工编制的缩写列表中,然后

它没有结束一个句子。

(c)如果下一个

token 大写,然后

它结束了一个句子。

这个

策略使大约 95% 的句子正确。[2]

解决方案基于最大熵模型。 [3]

SATZ 架构使用神经网络

消除句子边界的歧义并达到 98.5% 的准确率。

(我不确定我是否正确拆分它。)

如果无法分割独立子句,是否有任何搜索词可用于进一步探索该主题?

谢谢。

4

5 回答 5

6

据我所知,没有现成的工具可以解决这个确切的问题。通常,NLP 系统不会涉及识别由英语语法定义的不同类型的句子和从句的问题。在 EMNLP 上发表的一篇论文提供了一种算法,该算法使用SBAR解析树中的标签来识别句子中的独立子句和依赖子句。

您应该会发现本文的第 3 节很有用。它详细讨论了英语语法,但我认为整篇论文与您的问题无关。

请注意,他们使用了 Berkeley 解析器(此处提供演示),但您显然可以使用任何其他选区解析工具(例如,此处提供的斯坦福解析器演示)。

于 2014-05-25T21:13:23.163 回答
1

Chthonic Project 在这里提供了一些很好的信息:

使用斯坦福解析器的子句提取

部分答案:

如果您主要使用基于组成的解析树,而不是依赖关系,这可能会更好。

子句由SBAR标签指示,它是由(可能为空的)从属连词引入的子句

您需要做的就是以下几点:

  1. 识别解析树中的非根子句节点
  2. 从主树中删除(但单独保留)以这些从句节点为根的子树。
  3. 在主树中(在步骤 2 中删除子树之后),删除所有悬挂的介词、从属连词和副词。

有关所有从句标记的列表(实际上,所有 Penn Treebank 标记),请参阅此列表: http ://www.surdeanu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html

对于在线解析树可视化,您可能需要使用 在线伯克利解析器演示

它有助于形成更好的直觉。

这是为您的例句生成的图像: 伯克利解析器树

于 2015-10-06T20:25:17.433 回答
1

我不知道任何用于分句的工具,但是在修辞结构理论中,有一个称为“基本话语单元”的概念,其工作方式与分句类似。然而,它们有时比从句略小。

有关此概念的更多信息,您可以查看本手册的第 2.0 节:

https://www.isi.edu/~marcu/discourse/tagging-ref-manual.pdf

网上有一些软件可以将句子分割成基本的话语单元,例如:

http://alt.qcri.org/tools/discourse-parser/

https://github.com/jiyfeng/DPLP

于 2017-08-26T01:42:51.170 回答
0

通过 subreddit /r/LanguageTechnology/ 中的用户 YourWelcomeOrMine:

“我会查看斯坦福大学的 CoreNLP。我相信您可以自定义句子的拆分方式。”</p>

于 2014-05-25T20:57:18.597 回答
0

通过超级用户的用户突破:

我发现使用 NPS 聊天语料库训练集的不同分类器对于类似的应用程序非常有效。

于 2014-05-28T20:13:45.557 回答