gpt4 book ai didi

python - 如何排除包含特定单词的句子

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:24 24 4
gpt4 key购买 nike

我正在从 excel(包含生物数据)文件中读取一个句子,并想提取他们工作的组织。该文件还包含指定此人在哪里学习的句子。例如:

  • 我在'x'机构(大学)学习
  • 我是“y”学院的学生

我想跳过这些类型的句子。

我正在使用正则表达式来匹配这些句子,如果它与学生相关,则跳过该部分,只将其他行写在一个单独的 excel 文件中。

我的代码如下..

csvdata = pandas.read_csv("文件名.csv",","); 对于 csvdata 中的数据:

        regEX=re.compile('|'.join([r'\bstudent\b',r'\bstudy[ing]\b']),re.I)
matched_data=re.match(regEX,data)
if matched_data is not None:
continue

else:
## write the sentence to excel

但是,当我检查新创建的excel文件时,它仍然包含包含'student','study'的句子。如何修改正则表达式得到结果。

最佳答案

这里有两件事:

1)使用re.search(re.match只在字符串开头搜索)
2) 正则表达式应该是 regEX=re.compile(r"\b(?:{})\b".format('|'.join([r'student',r'study(?:ing )?'])),re.I)

[ing] 仅匹配 1 个符号,ing 而您打算匹配一个 optional ing 结尾。具有 ? 量词的非捕获组 - (?:ing)? - 实际上匹配 1 或 0 个 ing 序列。

此外,\b(x|y)\b 是一种比 \bx\b|\by\b 更高效的模式,因为它涉及的回溯步骤更少.

这里只是a demo这个正则表达式的样子:

import re
pat = r"\b(?:{})\b".format('|'.join([r'student',r'study(?:ing)?']))
print(pat)
# => \b(?:student|study(?:ing)?)\b
regEX=re.compile(pat,re.I)
s = "He is studying here."
mObj = regEX.search(s)
if mObj:
print(mObj.group(0))
# => studying

关于python - 如何排除包含特定单词的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37296039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com