我把牛津高阶4 txt文本“L”部分的词条贴一下,是在网上搜到的,略微加以整理。另附修正金山音标乱码的script,“p = re.compile('/.?; .?/ ')”这一句正则需要特别留意,请根据自己的文本实际情况修改,不恰当的话会有很多误伤。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
OALD4原始文档音标使用了"Kingsoft Phonetic Plain"字体,
导致不安装该字体的电脑会出现乱码,在此批量替换修正。
金山词霸音标字体编码表可参见 http://www.fmddlmyy.cn/text66.html (此表有误,需具体调整)
"""
import re
def converter(match):
phonetic_string = match.group()
correct_symbol = phonetic_string.replace('5', 'ˈ')\
.replace('7', 'ˌ').replace('9', 'ˌ')\
.replace('A', 'æ').replace('B', 'ɑ')\
.replace('C', 'ɒ').replace('E', 'ə')\
.replace('F', 'ʃ').replace('I', 'ɪ')\
.replace('J', 'u').replace('N', 'ŋ')\
.replace('Q', 'ʌ').replace('R', 'ɔ')\
.replace('T', 'ð').replace('U', 'ʊ')\
.replace('V', 'ʒ').replace('W', 'θ')\
.replace('Z', 'ɛ').replace('\\', 'ɜ')\
.replace('^', 'ɡ').replace(':', 'ː')\
.replace('[', 'ɝ').replace('L', 'ɚ')\
.replace('?@', 'US').replace('`', 'ˈ')
return correct_symbol
def main():
file_src = r'C:\Users\xxx\Desktop\oald.txt'
file_dst = r'C:\Users\xxx\Desktop\oald-2.txt'
with open(file_src, 'r', encoding='UTF-8') as f:
text = f.read()
p = re.compile('/.*?; .*?/ ') # 建议先用“/ .{1,60}?; .{1,40}?/ ”等,分步修改
result = re.sub(p, converter, text)
with open(file_dst, 'w', encoding='UTF-8') as fout:
fout.write(result)
if __name__ == '__main__':
main()
OALD4-L词条.txt (525.8 KB)