使用正则表达式扩展缩写

huangapple go评论50阅读模式
英文:

Expanding abbreviations using regex

问题

我有一个缩写词典,我想要扩展。我想使用这些来浏览文本并扩展所有的缩写。

定义的字典如下:

contractions_dict = {
        "kl\.": "klokken",
        }

我要扩展的文本如下:

text = 'Gl. Syd- og Sønderjyllands Politi er måske kl. 18 kløjes landets mest aktive politikreds på Twitter med over 27.000, som følger med.'

我使用以下函数:

def expand_contractions(s, contractions_dict, contractions_re):
  def replace(match):
    return contractions_dict[match.group(0)]
  return contractions_re.sub(replace, s)
    
contractions_re = re.compile("(%s)"%"|".join(contractions_dict.keys()))
text = expand_contractions(text, contractions_dict, contractions_re)
print(text)

我已经尝试了各种不同的键来捕捉缩写词,但都没有成功。有什么建议吗?

英文:

I have a dictionary of abbreviations, I would like to expand. I would like to use these to go through a text and expand all abbreviations.

The defined dictionary is as follows:

contractions_dict = {
        "kl\.": "klokken",
        }

The text I which to expand is as follows:

text = 'Gl. Syd- og Sønderjyllands Politi er måske kl. 18 kløjes landets mest aktive politikreds på Twitter med over 27.000, som følger med.'

I use the following function:

def expand_contractions(s, contractions_dict, contractions_re):
  def replace(match):
    return contractions_dict[match.group(0)]
  return contractions_re.sub(replace, s)
    
contractions_re = re.compile("(%s)"%"|".join(contractions_dict.keys()))
text = expand_contractions(text, contractions_dict, contractions_re)
print(text)

I have tried a range of different keys in the dictionary to capture the abbreviations, but nothing have worked. Any suggestions?

答案1

得分: 0

以下是翻译好的代码部分:

import re

contractions_dict = {
    "kl.": "klokken",
}

pat = re.compile(r'\b' + r'|'.join(re.escape(k) for k in contractions_dict))

text = "Gl. Syd- og Sønderjyllands Politi er måske kl. 18 kløjes landets mest aktive politikreds på Twitter med over 27.000, som følger med."

text = pat.sub(lambda g: contractions_dict[g.group(0)], text)
print(text)

打印输出:

Gl. Syd- og Sønderjyllands Politi er måske klokken 18 kløjes landets mest aktive politikreds på Twitter med over 27.000, som følger med.
英文:

Try:

import re

contractions_dict = {
    "kl.": "klokken",
}

pat = re.compile(r'\b' + r'|'.join(re.escape(k) for k in contractions_dict))

text = "Gl. Syd- og Sønderjyllands Politi er måske kl. 18 kløjes landets mest aktive politikreds på Twitter med over 27.000, som følger med."

text = pat.sub(lambda g: contractions_dict[g.group(0)], text)
print(text)

Prints:

Gl. Syd- og Sønderjyllands Politi er måske klokken 18 kløjes landets mest aktive politikreds på Twitter med over 27.000, som følger med.

huangapple
  • 本文由 发表于 2023年2月8日 23:36:59
  • 转载请务必保留本文链接:https://go.coder-hub.com/75388145.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定