【问题标题】:Problems splitting text into sentences将文本拆分成句子的问题
【发布时间】:2019-08-27 18:23:29
【问题描述】:

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

我尝试了斯坦福 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 BreakIterator.getSentenceInstance,它不理解任何缩写。例如总统先生,它分为两个句子“先生”。和“总统”。斯坦福 NLP 虽然没有将 Samuel L. Jackson 或 George W. Bush 拆分成多个句子。

所以我不知道还能尝试什么。

【问题讨论】:

  • 您可能正在尝试边缘情况。你的目标文本表现如何?
  • 我不尝试边缘情况。这是普通文本。
  • 我的意思是模型的边缘情况。它可能已经接受过不同文本的训练。你有特定的文本要拆分吗?如果可以,你能举个例子吗?
  • 我使用斯坦福 NLP 库。这是我尝试过的示例文本:“死了”。他毫无感情地说。他说:“什么都没有。什么都没有。”最后他说:“当然是并发症……但不是问题。他盯着考特看了许久。“一张熟悉的脸,”他说。“没有胡子和雨水,也许我会认识你?”你是谁?”另一个人问道。考特没有回答。相反,他说,“我们需要进去。快点。”谈判的结果至关重要,因为乔治·W·布什总统签署成为法律的现行税收水平将于 12 月 31 日到期。

标签: stanford-nlp text-processing


【解决方案1】:

有两种主要的分句方法:

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

CoreNLP 使用 TokenizeProcessor 类进行句子分割和分词

Stanford NLP 软件包使用这些数据来训练他们的英语模型,使用 http://universaldependencies.org

看来引号字符" 是您数据中的一个重要特征。

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

如果这是指示性的,那么句子拆分模型似乎不能很好地代表该特征,这意味着它可能无法很好地用引号拆分句子。

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

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

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2011-11-03
    • 1970-01-01
    • 2013-04-28
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    相关资源
    最近更新 更多