将文本拆分为句子时出现问题

时间:2019-04-05 19:37:29

标签: stanford-nlp text-processing

我正在尝试找到将文本拆分为句子的最佳方法。

我尝试了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·布什分成多个句子。

所以我对尝试其他方法感到迷茫。

1 个答案:

答案 0 :(得分:0)

有两种主要的句子拆分方法:

  1. 基于规则的模型
  2. 预测模型

CoreNLP使用TokenizeProcessor类进行句子拆分和标记化

斯坦福大学NLP软件包使用数据通过http://universaldependencies.org

训练他们的英语模型

引号"似乎是数据中的重要特征。

查看其中一个测试数据集,在2000个句子中只有36个实例。

如果这是指示性的,看来句子拆分模型不能很好地表示该功能,这意味着它可能不适用于带引号的句子拆分。

这很常见,很可能您必须训练数据的句子拆分模型。

或者,如果数据的上下文可靠,则基于规则的方法可能会起作用。