我记得很久以前浏览过 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% 的准确率。
(我不确定我是否正确拆分它。)
如果无法分割独立子句,是否有任何搜索词可用于进一步探索该主题?
谢谢。