独立子句边界消歧和独立子句分割 - 任何工具都可以做到这一点?

时间:2014-05-25 20:57:19

标签: nlp text-segmentation

我记得很久以前从NLTK网站浏览句子分段部分。

我使用粗略的文本替换“句号”“空格”和“句号”“手动换行符”来实现句子分段,例如使用Microsoft Word替换(. - > {{1} })或Chrome扩展程序:

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

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

这不是像NLTK的Punkt标记化器那样的NLP方法。

我分段帮助我更容易找到并重读句子,这有时可以帮助阅读理解。

独立子句边界消歧和独立子句分割怎么样?是否有任何工具试图这样做?

以下是一些示例文字。如果在一个句子中可以识别出一个独立的条款,则会有一个分裂。从一个句子的结尾开始,它向左移动,贪婪地分裂:

E.g。

  

句子边界消歧   (SBD),又称判刑   打破,是自然的问题   语言处理决定在哪里

     

句子开始和结束。

     

经常,自然语言处理   工具

     

要求将他们的输入分成   句子有很多原因。

     

然而,句子边界   由于标点符号,识别具有挑战性

     

标记通常含糊不清。

     

对于示例,一段时间可能

     

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

     

关于墙上47%的时期   街头期刊语料库

     

表示缩写。[1]

     

正如那样,问号和   感叹号可能

     

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

     

另一种方法是自动

     

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

     

休息是预先标记的。

     

语言,如日语和中文

     

有明确的句子结尾   标记。

     

标准的“香草”方法

     找到句子的结尾:

     

(a)如果

     

这是一个时期,

     

它结束了一个句子。

     

(b)如果前面的

     

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

     

它没有结束一句话。

     

(c)如果下一个

     

令牌大写,然后

     

它结束了一个句子。

     

     

策略获得约95%的句子   正确的。[2]

     

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

     

SATZ架构使用神经网络   网络到

     

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

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

如果无法对独立条款进行细分,是否有任何搜索字词可用于进一步探讨此主题?

感谢。

5 个答案:

答案 0 :(得分:3)

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

您应该发现section 3 of this paper有用。它在一些细节上讨论了英语语法,但我不认为整篇论文与你的问题有关。

请注意,他们使用了Berkeley解析器(demo available here),但您显然可以使用任何其他选区解析工具(例如Stanford解析器demo available here)。

答案 1 :(得分: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

答案 2 :(得分:0)

来自subreddit / r / LanguageTechnology /的用户YourWelcomeOrMine:

  

“我会查看斯坦福大学的CoreNLP。我相信你可以自定义如何   一句话被打破了。“

答案 3 :(得分:0)

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

  

我发现使用了不同的分类器   NPS Chat Corpus训练设置为   非常有效的类似   应用

答案 4 :(得分:0)

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

Clause Extraction using Stanford parser

部分答案:

  

如果你主要使用基于constaenty的,那可能会更好   解析树,而不是依赖关系。

     

这些子句由 SBAR 标记表示,该标记是子句   由(可能是空的)从属连接引入

     

您需要做的就是:

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

    有关所有clausal标记的列表(事实上,所有Penn Treebank标记),   看这个清单:   http://www.surdeanu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html

         

    对于在线解析树可视化,您可能希望使用   online Berkeley parser demo

         

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

         

    这是为您的例句生成的图像:   Berkeley Parser Tree