【问题标题】:Text Analysis: extracting person name and quotation: how to create a pattern文本分析:提取人名和引用:如何创建模式
【发布时间】:2022-01-07 12:56:01
【问题描述】:

我需要提取给定文本的名称和引用,例如:

Homer Simpson 说:“好吧,我们开始……”

返回值:

  • extracted_person_name - 提取的人名,显示在上述模式中
  • extracted_quotation - 提取的引用文本(不带引号)。
  • 重要提示:如果未找到该模式,则为两个
    返回 None 值 提取的人名和提取的文本。

您可能期望输入文本类似于以下模式:

人名说:“引文”

上述模式的变体:

冒号标点符号 (:) 是可选的,并且可能不会出现 在输入语句中。而不是说的话,你也可以期待 的话:

回答,回答,回答

这是我目前得到的:

def person_quotation_pattern_extraction(raw_text):
    
    name_pattern = "\w+\s\w+"
    quote_pattern = "["]\w+["]"
    
    quote = re.search(quote_pattern, raw_text)
    name = re.search(name_pattern, raw_text)

    
    if re.search(quote_pattern,raw_text):
        extracted_quotation = quote.group(0) 
    else:
        extracted_quotation=None

    if re.search(name_pattern,raw_text):
        extracted_person_name = name.group(0)
    else:
        extracted_person_name=None

    return extracted_person_name, extracted_quotation 

问题是它返回Null。我假设模式不正确,你能告诉我它们有什么问题吗?

【问题讨论】:

    标签: python pandas nlp data-science python-re


    【解决方案1】:

    第一个模式没问题。它匹配“Homer Simpson”以及“here we”,但由于您只返回第 0 组,这很好。

    第二种模式有一些问题。由于您使用" 打开字符串并在字符串中使用相同的",因此python 认为字符串在那里结束。您可以从字符的颜色从绿色(字符串)变为黑色(不是字符串)再变为绿色来观察这一点。

    quote_pattern = "["]\w+["]"
    

    您可以通过使用单引号 ' 开始(和结束)字符串来防止这种情况,如下所示:

    quote_pattern ='["]\w+["]'
    

    但是,这仍然与提供的报价不符。这是因为 \w 匹配任何单词字符(相当于 [a-zA-Z0-9_]),但 匹配逗号 ,、点 . 或空格 @987654330 @。 因此,您可以将模式更改为

    quote_pattern ='["].*["]'
    

    .* 匹配任何内容。 您可以通过删除方括号来进一步简化表达式。在这种情况下不需要它们,因为它们只包含一个元素。

    quote_pattern ='".*"'
    

    您需要返回不带引号的报价。因此,您可以使用() 在表达式中创建一个capure 组:

    quote_pattern ='"(.*)"'
    

    这种方式仍然需要引号来匹配,但会创建一个不包含它们的组。这个组将有索引1,而不是你现在使用的0

    extracted_quotation = quote.group(1) 
    

    这应该会导致预期的结果。

    查看此网站了解一些交互式正则表达式操作:https://regex101.com/

    【讨论】:

    • 非常感谢您的详细回答,这对您有很大帮助!
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2016-12-31
    • 2015-08-28
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    相关资源
    最近更新 更多