【发布时间】:2016-06-26 19:27:46
【问题描述】:
在一些用拉丁文和西里尔文书写的斯拉夫语言中,上升和下降的重音符号仅用于在上下文中消除歧义,即不一致,仅用于元音。
我想要一个 Python 代码或库删除元音中的重音和重音,同时保留其他变音符号。
例如:
жѝзнеспосо́бный -> жизнеспособный
сè се фаќа -> се се фаќа强>
kȕćica -> kućica
如果有帮助,这里是斯拉夫语言中所有实际(即非重音)西里尔字母的完整列表,包括带有变音符号的字母:
абвгдежзиклмнпорстуфхцшєґіїёыіўщъьюяйјњљџђћз́с́ќѓѕ
注意:
їёыіўй 是元音,即使去掉了重音符号和重音符号,也应保留其变音符号。但这种情况非常罕见,甚至不可能,我们可以忽略这种情况。
з́с́ќѓ是辅音,如拉丁语ćǵśź。他们应该保留他们的重音符号——他们不会为了发音或消除歧义而添加任何符号。
在精确的正式映射是官方的字母表中,带有重音的拉丁辅音的西里尔字母等价物不一定有重音。 (也许有帮助。)
双锐和双重是低优先级。
这些字符的背景阅读:
https://en.wikipedia.org/wiki/I_with_grave_(Cyrillic)#East_Slavic_languages
https://en.wikipedia.org/wiki/Shtokavian#Accentuation
https://en.wikipedia.org/wiki/Pitch_accent#Serbo-Croatian
https://en.wikipedia.org/wiki/Bulgarian_alphabet#.D0.8D
https://en.wikipedia.org/wiki/Macedonian_alphabet#Accented_letters
类似问题:
Removing accents/diacritics from string while preserving other special chars (tried mb_chars.normalize and iconv)
How to remove accent in Python 3.5 and get a string with unicodedata or other solutions?
【问题讨论】:
-
我认为链接问题“如何在 Python 3.5 中删除重音...”中的翻译方法将是您要求的最简单的方法。您只需要定义要将哪些字符翻译成其他字符。
-
str.translate对此不起作用,因为о́不是/没有单个代码点。
标签: python unicode internationalization nlp cyrillic