如何在 python 中将句子拆分为从句?
how to split sentence into clauses in python?
我正在尝试将句子拆分成子句以进行情感分析。
例如,我想更改“我喜欢情节但表演很糟糕”这句话。
进入“我喜欢这个情节”,“但是演技太糟糕了。”。
我试图查看其他人是如何做到这一点的,发现了两种方法。
第一种方法是使用 nltk 解析树作为下面的 link。
另一种方法是使用 spacy 包并找到如下 link 的词根动词。
https://subscription.packtpub.com/book/data/9781838987312/2/ch02lvl1sec13/splitting-sentences-into-clauses
从上面拆分成子句的最佳方法是什么,或者有更好的方法吗?
这取决于它需要多准确。您可能仅通过查看某些连词就可以获得很好的覆盖率,在您的示例中 but 拆分了两个子句。其他候选人将是 while、and(尽管您可能需要检查上下文才能使这个工作正常),而不是、因为,等等。逗号或分号也可能有用。
如果你有可用的 pos-information,你可以确定每个从句的核心:主要从句的限定动词,不定式从句的非限定动词(我同意回答这个问题) 和动名词从句 (他已经开始读这本书了)。如果你找到两个动词,它们之间一定有一个从句边界。对于不定式从句,它通常位于 to 之前,对于动名词,它可能会更复杂一些:He could see him reading a book本质上是把him作为see的直接宾语,同时也是reading的主语;你可能会争辩说 reading a book 实际上并不是一个单独的子句,而是 him 的修饰语;这是你的选择。
因此,您不需要完整的句法分析来拆分子句。在解析树不能完全工作的情况下,使用上述启发式甚至可能更可靠,因为它们需要较少的结构信息。不过,您可能需要进行一些反复试验才能对其进行初始设置。但至少你可以很容易地理解为什么它以某种方式拆分子句。
我正在尝试将句子拆分成子句以进行情感分析。 例如,我想更改“我喜欢情节但表演很糟糕”这句话。 进入“我喜欢这个情节”,“但是演技太糟糕了。”。
我试图查看其他人是如何做到这一点的,发现了两种方法。
第一种方法是使用 nltk 解析树作为下面的 link。
另一种方法是使用 spacy 包并找到如下 link 的词根动词。 https://subscription.packtpub.com/book/data/9781838987312/2/ch02lvl1sec13/splitting-sentences-into-clauses
从上面拆分成子句的最佳方法是什么,或者有更好的方法吗?
这取决于它需要多准确。您可能仅通过查看某些连词就可以获得很好的覆盖率,在您的示例中 but 拆分了两个子句。其他候选人将是 while、and(尽管您可能需要检查上下文才能使这个工作正常),而不是、因为,等等。逗号或分号也可能有用。
如果你有可用的 pos-information,你可以确定每个从句的核心:主要从句的限定动词,不定式从句的非限定动词(我同意回答这个问题) 和动名词从句 (他已经开始读这本书了)。如果你找到两个动词,它们之间一定有一个从句边界。对于不定式从句,它通常位于 to 之前,对于动名词,它可能会更复杂一些:He could see him reading a book本质上是把him作为see的直接宾语,同时也是reading的主语;你可能会争辩说 reading a book 实际上并不是一个单独的子句,而是 him 的修饰语;这是你的选择。
因此,您不需要完整的句法分析来拆分子句。在解析树不能完全工作的情况下,使用上述启发式甚至可能更可靠,因为它们需要较少的结构信息。不过,您可能需要进行一些反复试验才能对其进行初始设置。但至少你可以很容易地理解为什么它以某种方式拆分子句。