Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

7年前关闭。



Improve this question




使用Java可以简化文本的最佳工具是什么?

这是文本简化的示例:
John, who was the CEO of a company, played golf.
                       ↓
John played golf. John was the CEO of a company.

最佳答案

我认为您的问题是将复杂或复合句子转换为简单句子的任务。
根据文献Sentence Types,从一个独立的子句构建一个简单的句子。复合和复杂的句子至少由两个子句构成。另外,从句必须具有主语和动词。
因此,您的任务是将句子分解为构成句子的子句。
Stanford CoreNLP的依赖项解析是将复合句和复杂句拆分为简单句的理想工具。您可以尝试demo online
从您的示例语句中,我们将获得 Stanford类型依赖项(SD)表示法的解析结果,如下所示:

可以从关系中(在SD中)识别一个子句,该子句是主题类别,例如 nsubj nsubjpass 。参见Stanford Dependency Manual
可以从作为动词部分以及从依赖作为主语部分中提取基本从句。根据上面的SD,有两个基本子句,即

  • John首席执行官
  • 约翰扮演

  • 获得基本从句后,可以添加另一部分,使从句成为一个完整而有意义的句子。为此,请咨询Stanford Dependency Manual
    顺便说一句,您的问题可能与Finding meaningful sub-sentences from a sentence有关

    回答第三条评论:
    一旦获得了一对主语动词即 nsubj(CEO-6, John-1) ,就获取所有具有链接到该依存关系的依存关系,除了属于该类别的任何依存关系之外,然后从这些依存关系中提取唯一的单词。
    基于示例 nsubj(CEO-6, John-1) ,如果您开始从遍历John-1 遍历,您将获得 nsubj(played-11, John-1) ,但是由于其类别是主题,因此应忽略它。
    下一步是从 CEO-6 部分遍历。你会得到

    从上面的结果中,您可以遍历新的依赖项(即,找到另一个在头部或依赖项中包含 was-4, the-5, company-9 的依赖项)。
    现在您的依赖项是

    在此步骤中,您已经遍历了与 nsubj(CEO-6, John-1) 链接的所有依赖项。接下来,从所有首字母和从属字母中提取单词,然后根据这些单词后面附加的数字以升序排列。此数字表示原始句子中的单词顺序。

    我们的新句子缺少一部分,即 of 。这部分隐藏在 prep_of(CEO-6, company-9) 中。如果您阅读Stanford Dependency Manual,则有两种 SD :折叠的和非折叠的。请阅读它们,以了解为什么隐藏此 of 以及如何获取此隐藏部分的单词顺序。
    用同样的方法,你会得到第二句话

    08-03 20:07