我得到了一个用户推文的.csv文件,我打算将其提供给GPT-2模型,我想使用正则表达式过滤器来删除每行中包含的任何回复和标签。我正在寻找一种删除@和#等元素的方法,因此使用python删除@和##以及附加到符号上的文本。
我试着用这个作为过滤器,但我很好奇是否有一个更简单的方法:
(?:^|_|[^w&/]+)(?:#|@)([wÀ-ÖØ-öø-ÿ]+)
不是简单很多,而是一些事情。
您是否将此regex传递给re.sub以重写字符串?Newstring=re.sub(pattern, '',texttorewrite)
sub将用第二个参数替换整个匹配,在这种情况下,什么都不替换。默认情况下,它还会替换所有匹配项。
你的第一组似乎应该是像这样的负面回顾
(?<![w&/])
字符串的开头匹配一个否定的lookbacking。如果您需要下划线作为分隔符,请将其替换为a-zA-Z0-9。
然后代替第二组,只[@&]
没有parens,并在最后一组周围失去parens。
总之,
Newstring = re.sub(r'(?<![w&/])[@&][wÀ-ÖØ-öø-ÿ]+', '', texttorewrite)