在特定单词和右括号之间打印文本
Printing text between a specific word and a closing paranthesis
我有一个文本文档,我想根据上下文从中提取特定的名称。例如,文档中的一个句子的一部分是这样的——“……采访受害者#1(!ARIEL B. JOHNSON)……”。我只想打印括号之间的名称,但也希望使用 "VICTIM #1" 搜索上下文。
我试过下面的代码。 doc['sentence'] 是数据框列,文档的所有句子都存储为行。
SearchStr = 'VICTIM \#1 (.*?\))'
victim = re.search(SearchStr, str(doc['sentence']))
if victim:
print(victim.groups())
print(victim)
应该打印'ARIEL B. JOHNSON'
match = re.search(r"VICTIM #[0-9]+ \(.*?\)",STRING)
returns
'VICTIM #1 (!ARIEL B. JOHNSON)'
如果需要,您可以将其拆分为受害者#s 和姓名的字典?如果有帮助?
name = re.sub(r'VICTIM #[0-9]+\s+|!*\(*\)*','',match.group())
num = re.search('[0-9]+',match.group()).group()
v = {num,name}
这可以适用于任何受害者#或姓名
将其应用于 df 中的每一行,将其用作函数,然后将其应用于列:
def victim(STRING):
match = re.search(r"VICTIM #[0-9]+ \(.*?\)",STRING)
name = re.sub(r'VICTIM #[0-9]+\s+|!*\(*\)*','',match.group())
num = re.search('[0-9]+',match.group()).group()
v.update({num:name})
doc['sentence'].apply(victim)
这给了你一个包含所有受害者的命令#s/names
我有一个文本文档,我想根据上下文从中提取特定的名称。例如,文档中的一个句子的一部分是这样的——“……采访受害者#1(!ARIEL B. JOHNSON)……”。我只想打印括号之间的名称,但也希望使用 "VICTIM #1" 搜索上下文。
我试过下面的代码。 doc['sentence'] 是数据框列,文档的所有句子都存储为行。
SearchStr = 'VICTIM \#1 (.*?\))'
victim = re.search(SearchStr, str(doc['sentence']))
if victim:
print(victim.groups())
print(victim)
应该打印'ARIEL B. JOHNSON'
match = re.search(r"VICTIM #[0-9]+ \(.*?\)",STRING)
returns
'VICTIM #1 (!ARIEL B. JOHNSON)'
如果需要,您可以将其拆分为受害者#s 和姓名的字典?如果有帮助?
name = re.sub(r'VICTIM #[0-9]+\s+|!*\(*\)*','',match.group())
num = re.search('[0-9]+',match.group()).group()
v = {num,name}
这可以适用于任何受害者#或姓名
将其应用于 df 中的每一行,将其用作函数,然后将其应用于列:
def victim(STRING):
match = re.search(r"VICTIM #[0-9]+ \(.*?\)",STRING)
name = re.sub(r'VICTIM #[0-9]+\s+|!*\(*\)*','',match.group())
num = re.search('[0-9]+',match.group()).group()
v.update({num:name})
doc['sentence'].apply(victim)
这给了你一个包含所有受害者的命令#s/names