转发:牛津高阶双解第四版光盘数据简单分析和提取

感谢 tsiank

牛津高阶双解第四版光盘数据简单分析和提取

(出处: 掌上百科 - PDAWIKI)

4 Likes

厉害,辛苦tsiank了。我以前在校改牛高4的时候动过重新从光盘提取文本的念头,但没装虚拟机,高估了原始光盘加密的水平,也低估了从垃圾文件底本校改修正的巨大工作量,结果掉进了一个天坑。

貌似tsiank提取的html文件没有修正音标,我此前写过一个相关script,应该继续有效,贴在这里。

#!/usr/bin/env python
# -*- coding: utf-8 -*-


"""
OALD4原始文档音标使用了"Kingsoft Phonetic Plain"字体,
导致不安装该字体的电脑会出现乱码,在此批量替换修正。
金山词霸音标字体编码表可参见 http://www.fmddlmyy.cn/text66.html ,
不过在此处改正OALD4使用的替换表略有不同。

"""


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\01.txt'
    file_dst = r'C:\Users\xxx\Desktop\02.txt'

    with open(file_src, 'r', encoding='UTF-8') as f:
        text = f.read()

        p = re.compile('/ <pho>.*?</pho>/')

        result = re.sub(p, converter, text)

    with open(file_dst, 'w', encoding='UTF-8') as fo:
        fo.write(result)


if __name__ == '__main__':
    main()
5 Likes

出手了吗?看来感兴趣的坛友不多啊!

1 Like

OALD的众多的译者中能被广大读者记住的恐怕只有第四版的李北达先生了,而第四版也是霍恩比原版的最后一版,第6版以后的版本与前四版已有很大的不同。

推崇牛四的都是英语本就特别好的人。

四十岁之后不滞于物,草木竹石均可为剑。自此精进,渐入无剑胜有剑之境。
包括我在内的普通人,还是老老实实用较新的学习型词典吧,单位时间受益更多。

那你的航母呢?

嗯,以前同时装过牛津高阶精灵(牛7)和朗5,牛7用得多些,学习型词典有个问题,解释得很绕。现在用欧路,蓝登书屋大学词典很好用。

再看看#8的回复

不要用就好啦~~

牛津词典当然不能收剑桥 :grinning:

1 Like

非常期待!这本词典价值恐怕还包括整本阅读。

记得以前在国外大学图书馆有一本落满了灰的原版OALD第三版,打开之后纸页泛黄。但释义文本与后来的ESL词典相比总有一种说不出的优雅。

安静的下午,一个人坐在图书馆的角落地上,随机读几页,现在还是我无比怀念的时光。

原版第三版词典不厚,字体也不小,普通印刷不是字典纸。握在手里手感很好,不像现在的词典都是大砖头。

后来有更新加了个图片版mdx
走过路过不要再错过。

3 Likes

有人能放一个mdx出来吗

这是tsiank自己建的网站?赞!不过很多文章附后的百度链接都失效了!

这个在哪里,提到的这个网站上没找到啊

你这个替换表和金山音标字体实际情况不符,我自己挨个将字体对照Unicode输入的如下,希望对大家替换音标有帮助:

def replace_phonetic_symbols(text):
    return (text.replace('1', '…')
				.replace('4', '։')
				.replace('5', 'ˈ')
				.replace('6', '!')
                .replace('7', 'ˌ')
                .replace('8', '?')
				#.replace('9', 'ʻ')
                .replace(':', 'ː')
                .replace('<', 'ü')
                .replace('=', 'ê')
                .replace('?', '𝑈')
                .replace('@', '𝑆')
                .replace('A', 'æ')
                .replace('B', 'ɑ')
                .replace('C', 'ɔ')
                .replace('D', 'ã')
                .replace('E', 'ə')
                .replace('F', 'ʃ')
                .replace('G', 'ɣ')
                .replace('H', 'ɥ')
                .replace('I', 'ɪ')
                .replace('J', 'ʊ')
                .replace('K', 'ʏ')
                .replace('L', 'ɚ')
                .replace('M', 'ɲ')
                .replace('N', 'ŋ')
                .replace('O', 'ɶ')
                .replace('P', 'ɵ')
                .replace('Q', 'ʌ')
                .replace('R', 'ɔ')
                .replace('S', 'ɔ̃')
                .replace('T', 'ð')
                .replace('U', 'u')
                .replace('V', 'ʒ')
                .replace('W', 'θ')
                .replace('X', 'ø')
                .replace('Y', 'ɛ̃')
                .replace('Z', 'ɛ')
                .replace('[', 'ə')
                .replace('\\', 'ɜ')
                .replace(']', 'ç')
                .replace('^', 'ɡ')
                .replace('_', '̌')
                .replace('`', '̀')
                .replace('{', '─')
                .replace('|', '╎')
                .replace('}', '╲')
				.replace('', 'ā')
				.replace('‚', 'á')
				.replace('ƒ', 'ǎ')
				.replace('„', 'à')
				.replace('…', 'ē')
				.replace('†', 'é')
				.replace('‡', 'ě')
				.replace('ˆ', 'è')
				.replace('‰', 'ī')
				.replace('Š', 'í')
				.replace('‹', 'ǐ')
				.replace('Œ', 'ì')
				.replace('', 'ō')
				.replace('Ž', 'ó')
				.replace('', 'ǒ')
				.replace('', 'ò')
				.replace('‘', 'ū')
				.replace('’', 'ú')
				.replace('“', 'ǔ')
				.replace('”', 'ù')
				.replace('•', 'ǖ')
				.replace('–', 'ǘ')
				.replace('—', 'ǚ')
				.replace('˜', 'ǜ')
				.replace('™', 'm̄')
				.replace('š', 'ḿ')
				.replace('›', 'm̌')
				.replace('œ', 'm̀')
				.replace('', 'n̄')
				.replace('ž', 'ń')
				.replace('Ÿ', 'ň')
				.replace(' ', 'ǹ'))