我很难让 CoreNLP 系统正确地找到诗歌语料库中一个句子结束的位置和另一个句子的开始位置。
它苦苦挣扎的原因:
- 有些诗全篇没有标点符号(有时没有大小写)
- 有些诗的句子从一段到另一段
- 有些诗行首大写
This is a particularly tricky one (系统认为第一句结束于第二节开头的“.”)
由于缺少大写字母和标点符号,我想我会尝试使用 -tokenizeNLs 看看是否能改善它,但它太过分了,并切断了中间的任何句子空行(有几个)
这些句子通常在一行的末尾结束,但并非总是如此,所以如果系统能够将一行结尾视为一个潜在的断句候选者,并且可能权衡那些被断句的可能性,那将是圆滑的端点,但我不知道如何实现它。
有没有一种优雅的方式来做到这一点?或者替代方案?
提前致谢!
(预期句子输出 here )
最佳答案
我构建了一个句子分割器,它在处理没有标点符号或部分标点符号的文本时也表现出色。您可以在 https://github.com/bedapudi6788/deepsegment 找到它.
该模型基于命名实体识别可用于句子边界(即:句子开头或句子结尾)的想法。我利用来自 tatoeba 的数据来生成训练数据,并为此任务训练了具有手套嵌入和字符级别的 BiLSTM+CRF 模型。
虽然这是用 Python 构建的,但您将能够使用 flask 设置一个简单的 rest api,并将其与您的 Java 代码一起使用。
关于java - 没有标点符号的文本中的句子注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807333/