【问题标题】:Extracting chunk from sentence从句子中提取块
【发布时间】:2019-02-10 11:52:49
【问题描述】:

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

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_)

通过这个获取的chunk应该是“他的名字是”

我该如何实现?

【问题讨论】:

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


    【解决方案1】:

    试试下面这行代码,

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

    要将其更改为模式序列,

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

    【讨论】:

    • 每次句子都会改变,块也会改变,我想使用我在代码中使用的模式序列来实现这个
    • 我试过这个模式 = "他的名字是 (.*)" re.search(pattern,s).group(1) 它给出了 'Robinson.'作为输出,虽然块应该是“他的名字是”基于序列
    • 将组(1)更改为组。(0)
    • 它返回相同的字符串“他的名字是罗宾逊”。我想按 pos 标签序列提取。如果我运行这个 re.search(pattern,s).group(0) 它会给我属性错误
    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多