Poe*_*dit 4 python nlp diacritics
我执行以下操作:
\n\nre.sub(r'[^ \\nA-Za-z0-9/]+', '', document)\nRun Code Online (Sandbox Code Playgroud)\n\n删除除字母数字、空格、换行符或正斜杠之外的所有字符。
\n\n所以我基本上想删除除换行符和正斜杠之外的所有特殊字符。
\n\n但是,我不想删除各种语言(例如法语、德语等)中的重音字母。
\n\n但是如果我运行上面的代码,那么例如这个词
\n\nMot\xc3\xb6rhead
变成
\n\nMotrhead
我不想这样做。
\n\n那么如何运行上面的代码而不删除重音字母呢?
\n\n更新:
\n\n下面的@MattM提出了一个解决方案,该解决方案适用于英语、法语、德语等语言,但它肯定不适用于波兰语等语言,因为波兰语中所有重音字母仍被删除。
\n我很确定这会满足您的需要
\nx = re.sub(r\'[^ \\nA-Za-z0-9\xc3\x80-\xc3\x96\xc3\x98-\xc3\xb6\xc3\xb8-\xc3\xbf/]+\', \'\', \'Mot\xc3\xb6rhead\')\nRun Code Online (Sandbox Code Playgroud)\n另请查看此处有关 javascript 正则表达式的讨论,尽管存在差异,但它还是有一些相关信息
\n编辑-
\n为了扩展 Outcast 的新问题 - 是的,您可以包含非拉丁字符。然而,这可能会变得太麻烦。如果您查看Unicode 字符列表,您会发现我包含了带重音的拉丁字符范围。因此,如果您还想包含所有西里尔字符,我们将添加\xd0\x80-\xd3\xbf到正则表达式中。
import re\n\nyourString = \'Cyrillic Char \xd1\xa4\'\nyourString = re.sub(r\'[^ \\nA-Za-z0-9\xc3\x80-\xc3\x96\xc3\x98-\xc3\xb6\xc3\xb8-\xc3\xbf\xd0\x80-\xd3\xbf/]+\', \'\', yourString)\ntext_file = open("Output.txt", "wb")\ntext_file.write(yourString.encode(\'utf8\'))\ntext_file.close()\nRun Code Online (Sandbox Code Playgroud)\n但是,使用此方法,您可能必须包含许多范围,具体取决于您想要或不想要哪种语言的哪些字符。
\n| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |