如何从句子中提取所有短语?

时间:2019-07-16 03:47:50

标签: python nlp spacy

我想从一个句子中提取所有可能有意义的短语 例如: “这家当地餐厅的食物很棒,餐厅非常浪漫。” 我想要: 食物很棒 当地餐厅的食物很棒 这家餐厅非常浪漫 等

我不介意是否还会出现其他一些短语,因为我打算使用Vader情感分析来删除中性短语。另一种对我有用的方法是,如果有一种方法可以提取关键字周围的词组,那么我可以使用python rake来获取关键字

这是一个为我们收集的UGC评论提取所有可能的正面和负面短语的项目,我们最初的方法是使用正则表达式模式来提取短语,然后将其传递给Vader以获取情感,但这却省略了很多短语,现在我们正尝试从句子中筛选出带有情感的句子,然后从中提取短语,

1 个答案:

答案 0 :(得分:0)

您可以对句子进行a constituency parse并逐渐删除短语。

可以为Berkeley Neural Parser添加11种语言的选区解析。

这是来自github的摘录:

>>> import spacy
>>> from benepar.spacy_plugin import BeneparComponent
>>> nlp = spacy.load('en')
>>> nlp.add_pipe(BeneparComponent("benepar_en2"))
>>> doc = nlp(u"The time for action is now. It's never too late to do something.")
>>> sent = list(doc.sents)[0]
>>> print(sent._.parse_string)
(S (NP (NP (DT The) (NN time)) (PP (IN for) (NP (NN action)))) (VP (VBZ is) (ADVP (RB now))) (. .))
>>> sent._.labels
('S',)
>>> list(sent._.children)[0]
The time for action