【问题标题】:How to extract this sentence using regex in python?如何在python中使用正则表达式提取这句话?
【发布时间】:2020-07-16 02:04:29
【问题描述】:

我正在尝试从研究文章中提取引用的句子。我已经设法提取了除那个之外的所有句子。

“相关性(针对正在经历学习过程的个人)在 Hidi 和 Renninger 的模型 (2006) 中显示为触发器,并且可以是 Priniski 等人的连续体中的任何相关类型。”

(r'\w.+\(\d{4}\)+\.*', regex = True) 是我使用的模式。不知道括号里面的字是不是要处理。

文章中的示例段落:

n \n\n关于成人教育的工作相关性:案例研究叙述 \n\nTone Vold1,2、Hanne Haave2 和 Aristidis Kaloudis1 \n1NTNU,挪威 \n2INN,挪威 \nTone.vold@ntnu.no \nTone。 vold@inn.no \nHanne.haave@inn.no \nAristidis.kaloudis@ntnu.no \nDOI: 10.34190/EJKM.18.02.002 \n \n摘要:人们越来越关注高等教育的相关性。主要是关于增加个人的工作机会或工作\进步。然而,高等教育的相关性也可能是解决工作场所的重要问题或问题。关于教育活动如何变得相关,有一些必要的先决条件。 \n首先,学生必须能够发现通用知识和获得的技能如何适用于或可能不适用于工作中的具体\情况。这需要经验、对组织规范和文化的理解以及一定形式的实践智慧。

我已经拆分并标记了句子,然后将其转换为一个数据框,我尝试使用以下代码匹配并提取带有引用的整个句子

print (df[df['sentences'].str.contains((r'\w.+(\d{4})+.*', regex = True)]) 是我用来提取的代码引用数据框 (df) 的所有行/句子

我已经设法编写了不同的正则表达式模式来匹配我的数据框行中的整个句子。与我的问题句子匹配的正则表达式模式将帮助我。

【问题讨论】:

  • 您能否包含所有个句子,或者至少包含几个您无法匹配的句子?
  • “提取”是什么意思?正则表达式是否应该匹配整个句子,或者究竟是什么?另外,请显示所有相关代码,而不仅仅是“我使用的模式”。

标签: python regex nlp


【解决方案1】:

您的正则表达式将在括号内包含 4 位数字的任何序列之后停止,在本例中为“(2006)”,重复 1 次或更多次,然后可能的句点 0 次或更多次。

因此,您需要一个模式来获取括号后面的其余字符,然后是一个用于结束句子的句点的模式,而不是捕获例如“。”。在“等人的”中。

我推荐https://regex101.com/ 来测试正则表达式。

【讨论】:

  • 我的模式末尾的“+\.*”不会提取 4 位数字之后的所有内容吗?只是问问!
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 2021-06-08
  • 2015-03-12
  • 2021-06-27
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多