在特定单词和结束语之间打印文本

2024-05-20 20:46:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文档,我想根据上下文从中提取特定的名称。例如,文档中句子的一部分类似于-“…采访受害者#1(!阿里尔·约翰逊)。我只想打印括号之间的名字,但也希望它被搜索使用“受害者#1”的上下文。你知道吗

我尝试了以下代码。doc['sentence']是dataframe列,其中文档的所有语句都存储为行。你知道吗

SearchStr = 'VICTIM \#1 (.*?\))'

victim = re.search(SearchStr, str(doc['sentence']))

if victim:
    print(victim.groups())
print(victim)

应该是印“阿里尔·B·约翰逊”


Tags: 代码文档名称dataframedoc语句文本文档名字
1条回答
网友
1楼 · 发布于 2024-05-20 20:46:32
match = re.search(r"VICTIM #[0-9]+ \(.*?\)",STRING)

退货

'受害者#1(!阿里尔·约翰逊

如果你愿意的话,你可以把它分成一本受害者和名字的字典?如果有帮助的话?你知道吗

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)

这会给你一个包含所有受害者姓名的口述

相关问题 更多 >