【发布时间】:2020-04-05 00:25:25
【问题描述】:
我需要从希伯来语文本中删除某些变音符号。如果我需要从所有变音符号中删除文本,那将不是这样的问题。
在 unicode 中,我要删除的范围在 \u0591 和 \u05AF 之间(或十进制的 1425 - 1455)。理想情况下,所有其他字符(字母、变音符号或标点符号)都应保留。
输入是一个文本文件,输出也应该是一个文本文件。 仅删除一系列 unicode 字符的最佳方法是什么? 或者也许 unicode 不是正确的方向......?
编辑:
这是我用来删除所有变音符号的代码。有什么建议我可以修改它以便它只删除所需的字符而不是所有的变音符号?
normalized=unicodedata.normalize('NFKD', content)
no_diacritics=''.join([c for c in normalized if not
unicodedata.combining(c)])
no_diacritics
f.close()
非常感谢您的帮助!谢谢。
【问题讨论】:
-
到目前为止你尝试了什么?
-
您可以使用
i=[false if 1425 <= ord(c) <=1455 else true for c in text]之类的东西来获取所需字符的位置,并使用t=text[i]来删除不需要的字符。 -
你能包括你已经尝试过的吗?为什么你不喜欢?也许让问题更具体?请看:stackoverflow.com/help/how-to-ask
-
已编辑。谢谢!
-
我会创建一个函数来返回变音符号是否在您要删除的特定范围内,然后使用与您现有解决方案非常相似的方法,只需将
unicodedata.combining替换为您的新函数。
标签: python regex unicode hebrew python-textprocessing