有没有办法将复合句与多个科目分开,如:
我正在考虑使用解析树将其分开并识别多个主题,但我不确定如何创建一个能够通常可靠地执行此操作的算法。
答案 0 :(得分:2)
您需要识别连接及其类型(隐式/显式连接)并使用句子的选区解析树来识别连词。
示例:
(1)我是一个人,你是一个人。
(ROOT
(S
(S
(NP (PRP I))
(VP (VBP am)
(NP (DT a) (NN human))))
(CC and)
(S
(NP (PRP you))
(VP (VBP are)
(NP (DT a) (NN human))))
(. .)))
=>在这里你可以看到 S - > S CC S 。这意味着使用CC连接的两个参数都是句子本身。所以你可以直接从CC中拆分它们。
=>你会得到2句话。
1)我是人类2)你是人类
(2)约翰去了酒店吃午饭。
(ROOT
(S
(NP (NNP John))
(VP
(VP (VBD went)
(PP (TO to)
(NP (NNP Hotel))))
(CC and)
(VP (VBD had)
(NP (NN lunch))))
(. .)))
=>在这里, VP - > VP CC VP ,表示连词用于连接两个动词组,并且它们具有共享主题。因此,您可以在两个句子中使用相同的主题并添加一个VP。
=>结果将是,
1)约翰去了酒店2)约翰吃了午餐
(3)约翰吃了苹果和香蕉。约翰和迈克吃了苹果。
(ROOT #John ate apple and banana.
(S
(NP (NNP John))
(VP (VBD ate)
(NP (NN apple)
(CC and)
(NN banana)))
(. .)))
(ROOT #John and Mike ate apple.
(S
(NP (NNP John)
(CC and)
(NNP Mike))
(VP (VBD ate)
(NP (NN apple)))
(. .)))
=>在这里, NP - > NN CC NN 和 NP-> NNP CC NNP 表示CC连接两个NN / NNP也可以单独使用。所以你可以拆分这些NN / NNP。
=>你会得到像
这样的句子1)John吃了苹果2)John吃了香蕉[和]
1)约翰在苹果2)迈克吃了苹果
答案 1 :(得分:0)