我正在尝试找到将文本拆分为句子的最佳方法。
我尝试了Stanford NLP,但实际上令我失望的是它的表现很差。
例如
"Who are you?" asked another man.
它被识别为两个句子:"Who are you?"
和asked another man
。
He said, "Nothing. Nothing at all."
它被识别为两个句子:
He said, "Nothing.
和Nothing at all."
。
我还尝试了普通的Java Java BreakIterator.getSentenceInstance,它不理解任何缩写。例如,总统先生,它分为两个句子“先生”。和“总统”。斯坦福大学NLP并未将塞缪尔·杰克逊或乔治·W·布什分成多个句子。
所以我对尝试其他方法感到迷茫。
答案 0 :(得分:0)
有两种主要的句子拆分方法:
CoreNLP使用TokenizeProcessor类进行句子拆分和标记化
斯坦福大学NLP软件包使用数据通过http://universaldependencies.org
训练他们的英语模型引号"
似乎是数据中的重要特征。
查看其中一个测试数据集,在2000个句子中只有36个实例。
如果这是指示性的,看来句子拆分模型不能很好地表示该功能,这意味着它可能不适用于带引号的句子拆分。
这很常见,很可能您必须训练数据的句子拆分模型。
或者,如果数据的上下文可靠,则基于规则的方法可能会起作用。