python - 通过替换现有文本中的单词进行翻译

标签 python regex language-agnostic string nlp

当必须重建文本(使用标点符号和所有内容)时,翻译给定文本中的某些单词(或表达方式)的常用方法是什么?

翻译来自查找表,涵盖单词、搭配和表情符号,如 L33t、CUL8R、:-) 等。

简单的字符串搜索和替换是不够的,因为它可以替换部分较长的单词(cat>dog≠>caterpillar>dogerpillar)。

假设以下输入:

s = "dogbert, started a dilbert dilbertion proces cat-bert :-)"

翻译后,我应该收到如下内容:

result = "anna, started a george dilbertion process cat-bert smiley"

我不能简单地标记化,因为我失去了标点符号单词位置

正则表达式,适用于普通单词,但不能捕获像笑脸这样的特殊表达式:-),但它可以捕获。

re.sub(r'\bword\b','translation',s) ==> translation
re.sub(r'\b:-\)\b','smiley',s) ==> :-)

目前我正在使用上面提到的正则表达式,并简单替换非字母数字单词,但它远非万无一失。

(附:我使用的是Python)

最佳答案

您的笑脸示例不适用于正则表达式的原因是\b 指的是单词边界。由于笑脸中没有“单词”字符,因此没有单词边界,因此您的表情不匹配。您可以使用前视/后视来查看是否受空格限制,但考虑到您的表情符号是由标点符号组成的,因此检查标点符号可能很困难。

关于python - 通过替换现有文本中的单词进行翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224915/

相关文章:

python - 在可变长度元素之后的字符串中插入 "-"

python - 限制类变量的修改,新实例除外

.NET Regex 点字符匹配回车?

regex - PowerShell - 用于更改多值字段中分隔符的正则表达式

language-agnostic - 在标签云中缩放标签

python - 尝试根据输入创建一个简单的按属性选择的脚本

python - Spyder、Python IDE 启动代码导致 GUI 崩溃

php - 从网站获取YouTube channel ID

language-agnostic - 反序列化与解析

debugging - 调试深度递归的实用技巧?