python - 替换缩写列表中的点?
问题描述
我正在尝试删除缩写列表中的点,以免它们混淆句子标记器。这应该很简单。不知道为什么我的代码不起作用。
请在下面找到我的代码:
abbrevs = [
"No.", "U.S.", "Mses.", "B.S.", "B.A.", "D.C.", "B.Tech.", "Pte.", "Mr.", "O.E.M.",
"I.R.S", "sq.", "Reg.", "S-K."
]
def replace_abbrev(abbrs, text):
re_abbrs = [r"\b" + re.escape(a) + r"\b" for a in abbrs]
abbr_no_dot = [a.replace(".", "") for a in abbrs]
pattern_zip = zip(re_abbrs, abbr_no_dot)
for p in pattern_zip:
text = re.sub(p[0], p[1], text)
return text
text = "Test No. U.S. Mses. B.S. Test"
text = replace_abbrev(abbrevs, text)
print(text)
这是结果。没啥事儿。什么问题?谢谢。
Test No. U.S. Mses. B.S. Test
解决方案
re_abbrs = [r"\b" + re.escape(a) for a in abbrs]
你需要使用这个。没有\b
后面.
。这给出了正确的输出。
Test No US Mses BS Test
推荐阅读
- android - 使用 VolleyRequest 将服务器与 SettingsActivity 集成
- python - AIML 2.0 与 Python
- wordpress - Woocommerce 类别层次结构
- java - 如何将 Java String 转换为 Enum ConverterFactory 类到 Kotlin
- javascript - 使用 Jquery 触发对文本字段更改调用的事件
- r - R中geom_line顶部的geom_point覆盖
- python-3.x - 如何用 np 数组顺序替换选定的 pandas 数据帧行?
- c# - 从复选框中获取值并作为列表发布到控制器
- react-native - React Native - 如何创建 iPhone BedTime 拨号?
- php - 将 index.php 文件设置为仅显示一个类别的帖子