从句子中提取块

时间:2019-02-10 11:52:49

标签: python regex python-3.x nlp nltk

我正在尝试根据模式序列从句子中提取一个块。

import re
import spacy           
nlp = spacy.load('en')
s = "His name is Robinson."
doc = nlp(s)
pattern = re.compile(r'(<PRP$|POS>+<RB.?>)*(<JJ.?>)*(<NN.?|VBG|VBN>+<VB.? 
|MD|RP>+)')
for chunk in doc:

   if(re.search(pattern,chunk.tag_)):
       print(chunk, chunk.tag_)

通过此获取的块应该是“他的名字是”

我该如何实现?

1 个答案:

答案 0 :(得分:0)

尝试以下代码行,

re.search(r“他的名字是(。*)”,s).group(1)

要将其更改为模式序列,

pattern =“他的名字是(。*)” re.search(pattern,s).group(1)