自适应标点解析器

问题描述

问题

我正在构建一个标点解析器,该解析器需要根据上下文自适应地替换特定的标点。

例如,以与号(&)为例:

  • 如果“&”号被单个字母包围,则应将其删除A&B-> AB
  • 如果“&”号被单词(两个或两个以上字母)包围,应将其替换为空格:COME&GO-> COME GO

因此,在应用逻辑之前,必须先确定每个“&”号的上下文。

当前方法

在这里,我使用正则表达式来标识上下文。这是解决这个问题的最好/最快的方法吗?

s = 'L&H COME&GO COME&EAT'

regex = '([a-zA-Z]{2,}&[a-zA-Z]{2,})'

matches = re.findall(regex,s)
for match in matches:
    s = match.replace('&',' ').join(s.split(match))

s = s.replace('&','') # 'LH COME GO COME EAT'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)