如何从包含at least、and older、over关键词的句子中提取数值
数值提取实现方案
方案1:先拆分句子再过滤提取(推荐)
这种方式逻辑简单易修改,适配性更强:
- 先把全文按照句号、感叹号、问号等句子结束符拆成独立句子
- 筛选出包含
at least、and older、over任意一个关键词的句子 - 从筛选出的句子里单独提取数值即可
Python 实现示例:
import re # 替换为你的输入文本 input_text = "你要处理的文本内容" # 按句子结束符拆分内容 sentences = re.split(r'[.!?]+', input_text) result = [] keyword_list = {"at least", "and older", "over"} for each_sentence in sentences: # 判断当前句子是否包含目标关键词 if any(keyword in each_sentence for keyword in keyword_list): # 提取当前句子里的所有数值 numbers = re.findall(r'\b\d+\b', each_sentence) result.extend(numbers) print(result)
方案2:单条正则实现
如果需要用单条正则完成匹配,可以用正向前瞻约束匹配范围,正则表达式如下:r'(?i)^(?=.*\b(?:at least|and older|over)\b).*?\b(\d+)\b'
如果单个句子包含多个数值,使用时需要开启全局匹配参数。
内容的提问来源于stack exchange,提问作者XGB
相关产品推荐
相关产品推荐

