什么是使用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)表示法的解析结果,如下所示:
nsubj(CEO-6, John-1)
nsubj(played-11, John-1)
cop(CEO-6, was-4)
det(CEO-6, the-5)
rcmod(John-1, CEO-6)
det(company-9, a-8)
prep_of(CEO-6, company-9)
root(ROOT-0, played-11)
dobj(played-11, golf-12)
可以从关系中(在SD中)识别出一个子句,例如, nsubj,nsubjpass。见Stanford Dependency Manual基本从句可以从head中提取为动词部分,而从[[dependent中提取为主体部分。在上面的SD中,有两个基本子句,即
顺便说一句,您的问题可能与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
的依存关系)。现在您的依赖项是cop(CEO-6, was-4)
det(CEO-6, the-5)
rcmod(John-1, CEO-6)
prep_of(CEO-6, company-9)
从上面的结果中,您可以遍历新的依存关系(即,找到另一个在头部或依存关系中具有
was-4, the-5, company-9
在此步骤中,您已遍历链接到cop(CEO-6, was-4)
det(CEO-6, the-5)
rcmod(John-1, CEO-6)
prep_of(CEO-6, company-9)
det(company-9, a-8)
nsubj(CEO-6, John-1)
的所有依存关系。接下来,从所有首字母和从属字母中提取单词,然后根据这些单词后面的数字以升序排列。此数字表示原文中的词序。
。这部分隐藏在John was the CEO a company
我们的新句子缺少一个部分,即
of
prep_of(CEO-6, company-9)
中。如果您阅读Stanford Dependency Manual,则有两种SD:折叠的和非折叠的。请阅读它们,以了解为什么隐藏此[[of
的原因以及如何获取此隐藏部分的单词顺序。使用相同的方法,您将得到第二句话John played golf