我想编写一个 python 程序,能够将句法复杂的句子转换为(可能是几个)不太复杂的句子,我可以在下游任务中使用它们。
Example:
复杂的句子:“今晚我要和朋友们一起踢足球,然后再去市中心旁边的剧院看电影。”
具有相同内容的更简单的文本:“今晚我要和朋友们去踢足球。然后我们去剧院看电影。剧院就在市中心旁边。”
Goal:
可能的目标是最终输出仅包含简单的主子句(没有并列子句、没有从属子句、没有关系子句等)。本质上,结果子句最终应该有一个主语、一个谓语、一个直接宾语和一个潜在的间接/介词宾语(每个宾语可能有一个修饰语,例如形容词属性)。如果其中有多个,我不介意以重复结束(“我爱妈妈和爸爸。”-->“我爱妈妈。我爱爸爸。”)。
我已经尝试过的:
到目前为止,我已经开始实现相对子句解析器和协调解析器。他们确实工作得很好。然而,还有更多的情况需要涵盖(因果、时间、对抗性子条款等),我开始想知道是否有人对如何解决这个问题有更好的想法。
另外,我严重依赖 spaCy,但我遇到了越来越多的问题,因为转换文档(我在转换文本时所做的)违反了 spaCy 的核心原则。再次:也许我应该完全使用不同的方法?
感谢您的任何想法...
您尝试做的事情称为“句子简化”。这是一个活跃的研究课题,没有简单的解决方案,甚至没有一个可以使用的强大的库(据我所知)。恐怕你能做的最好的事情就是阅读研究论文并实现它们,寻找已发布的模型,或者通过依赖项解析进行一些足够好的处理。看here https://github.com/sebastianruder/NLP-progress/blob/master/english/simplification.md一些研究的概述。
你是对的,重写任务不是 spaCy 的设计目的。但是,如果句子级对齐就足够了,我认为将重写的句子存储为附加到每个句子的跨度扩展应该不难。
如果您需要直接操作依赖关系,我认为没有什么比 spaCy 更容易使用的了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)