python-3.x - 替换python中的变音符号
问题描述
如何用标准化单词替换 srt 文件中的变音符号?
我有一个罗马尼亚语 srt,我正在尝试使用 jellyfin 流式传输电影,但我遇到了一个问题,即应用程序不支持特殊字符,ĂăÂâÎîȘșȚț
所以我试图摆脱它们。
我尝试使用 unidecode 但这些词被奇怪地替换为ț
-> th
,ș
->o
'我也尝试过仅使用 sed 替换字符,但某些字符ș
显示如下º
,因此以下函数不会替换它们:
def strip_accents(s):
d = 'ĂăÂâÎîȘșȚț'
n = 'AaAaIiSsTt'
dl = [i for i in d]
nl = [i for i in n]
ii = 0
for x in dl:
s = re.sub(x, nl[ii], s)
ii += 1
return s
解决方案
所以,多亏了 github 托管的 repo,我找到了一种方法来做我想做的事。我只是将奇怪的字符替换为º,
ª
正确的变音符号ș
Ș
,一切都按照我想要的方式进行。我不需要更换变音符号来使字幕正常工作。
https://github.com/pckltr/corecteaza-subtitrari/
Python代码:
def fix_accents(s):
char_dict = { "º": "ș", "ª": "Ș", "ş": "ș", "Ş": "Ș", "ţ": "ț", "Ţ": "Ț", "þ": "ț", "Þ": "Ț", "ã": "ă" }
for k,v in char_dict.items():
s = s.replace(k, v)
return s
推荐阅读
- jenkins - 使用 eachFileRecurse 递归列出 Groovy 中的所有文件返回 FileNotFoundException
- python - 是否可以使用正则表达式通过两个单独的列表值进行搜索并将它们的值存储到两个单独的列表中?
- google-bigquery - BigQuery SQL 中的梯形图函数
- angular - Angular 无法获取查询参数
- python - 为什么 Visual Studio 代码在安装后找不到 pandas
- r - 将 xyz 数据帧转换为基础 R 中的矩阵
- c# - 如何将 int 值添加到 ac# 数组
- html - 如何在 django 项目中使用下载的字体而不是 google fonts api
- data-science - 数据验证/验证、数据探索/利用、数据采集/收集/收集之间的区别?
- angular - 为什么使用primeng p-radiobutton会导致Angular 9中的本机元素错误?