Posted in: Language, PC/macOS, Python

日中差异汉字词汇大全:挖掘 macOS 中的词典

中日差异的汉字词这篇文章里面我零星地列了一些词。后来想到。现在 macOS 也早就内置中日词典了,能否把里面的数据提取出来呢?试了一下真的成功了。一共 581 个单词。

从文言文的“古今异义”想到的

以前在学文言文时最常考的一个内容就是“古今异义”,可分为三类:

  • 词义扩大,即今义大于古义;例如:本在冀州之南,河阳之北。(《愚公移山》)“河”在古文中专指黄河;现泛指一般河流,比过去词义扩大了。
  • 词义缩小,即今义小于古义;例如:率妻子邑人来此绝境。(《桃花源记》)“妻子”,指老婆和孩子;今仅指老婆。
  • 词义转移,即一个词由表示某事物变为表示另外的事物;例如:军书十二卷,卷卷有爷名(《木兰诗》)。爷:(古义:指“父亲”。今义:指“爷爷”。)

由于日语的大部分汉字词都是来自古代汉语,因此从日->中的角度来看也有这三种变化。

macOS 里面的词典文件

首先查看 /System/Library/AssetsV2/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/ 这个目录,里面以一连串数字开头、以 .asset 结尾的目录,就是词典文件。一个.asset 目录对应一个文件。你的词典app里面开启了几种词典,这里就有几个目录。比如我这里有三个词典,因此有三个.asset 目录。

$ ls /System/Library/AssetsV2/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/

total 1168
drwxr-xr-x@ 5 _nsurlsessiond  _nsurlsessiond   160B 10 26 10:18 45c423bc90f143ac71ae6fb9873c1982e3d6c834.asset
drwxr-xr-x@ 5 _nsurlsessiond  _nsurlsessiond   160B 10 26 10:18 c05b46056e068da7eccc64d5b8202c3f028bde0a.asset
-rw-r--r--  1 root            wheel            580K 10 31 11:35 com_apple_MobileAsset_DictionaryServices_dictionaryOSX.xml
drwxr-xr-x@ 5 _nsurlsessiond  _nsurlsessiond   160B 10 26 10:18 f018946d4509993794ca8f420aeab7887714d1fe.asset

再看目录下面的 AssetData ,里面写着词典的名字,找到 Simplified Chinese – Japanese.dictionary。

$ ll /System/Library/AssetsV2/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/c05b46056e068da7eccc64d5b8202c3f028bde0a.asset/AssetData/
total 0
drwxr-xr-x  3 _nsurlsessiond  _nsurlsessiond    96B 10 26 10:18 Simplified Chinese - Japanese.dictionary

我的另外两个词典是:Simplified Chinese – English.dictionary 和 Sanseido Super Daijirin.dictionary

继续看词典下面的 Contents/Resources/,有个写着 Body.data 的文件,这就是词典的数据文件。

$ ll /System/Library/AssetsV2/com_apple_MobileAsset_DictionaryServices_dictionaryOSX/c05b46056e068da7eccc64d5b8202c3f028bde0a.asset/AssetData/Simplified\ Chinese\ -\ Japanese.dictionary/Contents/Resources/
total 73016
-rw-r--r--  1 _nsurlsessiond  _nsurlsessiond    14M  9 21 10:28 Body.data
-rw-r--r--  1 _nsurlsessiond  _nsurlsessiond    49K  9 21 10:28 DefaultStyle.css
-rw-r--r--  1 _nsurlsessiond  _nsurlsessiond    66K  9 21 10:28 EntryID.data
-rw-r--r--  1 _nsurlsessiond  _nsurlsessiond    83K  9 21 10:28 EntryID.index
-rw-r--r--  1 _nsurlsessiond  _nsurlsessiond   9.6M  9 21 10:28 KeyText.data
-rw-r--r--  1 _nsurlsessiond  _nsurlsessiond    12M  9 21 10:28 KeyText.index

中日词典的 Body.data 文件的大小是 14MB,是二进制文件,不能直接打开。

解析词典文件

这时需要使用 apple-dictionary 这个工具来解析词典 Body.data 文件:

./dedict ./Body.data | ./strip | ./checkxml.py > dictionary.xml

此时在当前目录下面生成一个 dictionary.xml 文件,中日词典的大小为132MB。

接下来就可以用自己喜欢的语言解析这个 xml 文件了。

XML 的格式

以日语初学者为例,一个比较经典中日差异词应该是 勉強べんきょう,意思是“学习”而不是“强迫”,查询 macOS 的词典,界面是如右图这样的,在词条最下方有个方框,上面写着在中国语里面相同汉字词拥有可能的不同意思。

该词条在 XML 文件里面则是如下所示,其中关键标签是class="box ty_日中比較", 有的标签则是 class="box x_xd1 ty_日中比較"。用任意一种编程语言把含有该 class 的词条筛选出来即可。

写本文时,一共有 581 个词。

macOS 的词典查询日语单词时,有些词条下方有方框写着中国语的差异
<d:entry
	xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="j_CRJC027273" d:title="勉強" class="entry">
	<span class="hwg x_xh0">
		<span d:prn="1" d:dhw="1" role="text" class="hw">べんきょう 
			<d:prn></d:prn>
		</span>
		<span class="hvg">
			<span class="gp">【</span>
			<span class="hv t_kanji">勉強</span>
			<span class="gp">】 </span>
		</span>
	</span>
	<span class="gramb x_xd0">
		<span class="semb x_xd1">
			<span d:def="1" class="trg x_xd2">
				<span class="trans">学习 </span>
				<span class="trans ty_pinyin">xuéxí </span>
				<d:def></d:def>
			</span>
			<span class="trg x_xd2">
				<span class="trans">用功 </span>
				<span class="trans ty_pinyin">yònggōng </span>
			</span>
			<span class="trg x_xd2">
				<span class="ind">
					<span class="gp tg_ind">[</span>値段を
					<span class="gp tg_ind">] </span>
				</span>
				<span class="trans">减价 </span>
				<span class="trans ty_pinyin">jiǎnjià </span>
			</span>
			<span class="trg x_xd2">
				<span class="trans">便宜 </span>
				<span class="trans ty_pinyin">piányi </span>
			</span>
			<span class="trg x_xd2">
				<span class="oup_label x_rr">English</span>
				<span class="trans"> study </span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">学校の
						<span class="rf">べんきょう </span>
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">功课 </span>
					<span class="trans ty_pinyin">gōngkè </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">彼は学校の
						<span class="rf">べんきょう</span>はよくできた 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">他在学校的学习很棒 </span>
					<span class="trans ty_pinyin">tā zài xuéxiào de xuéxí hěn bàng </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">
						<span class="rf">べんきょう</span>家 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">努力用功的人 </span>
					<span class="trans ty_pinyin">nǔlì yònggōng de rén </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">彼女は芝居の
						<span class="rf">べんきょう</span>をしている 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">她在学习演戏 </span>
					<span class="trans ty_pinyin">tā zài xuéxí yǎnxì </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">試験前に猛
						<span class="rf">べんきょう</span>する 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">考试前拼命学习 </span>
					<span class="trans ty_pinyin">kǎoshì qián pīnmìng xuéxí </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">
						<span class="rf">べんきょう</span>を怠る 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">放松学习 </span>
					<span class="trans ty_pinyin">fàngsōng xuéxí </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">あの店では他よりも値段を
						<span class="rf">べんきょう</span>する 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">那家店比别的店打折打得多 </span>
					<span class="trans ty_pinyin">nà jiā diàn bǐ biéde diàn dǎzhé dǎ de duō </span>
				</span>
			</span>
			<span class="exg x_xd2 hasSn">
				<span class="x_xdh x_xdh">
					<span class="sn">▸ </span>
					<span class="ex">今回の失敗でいい
						<span class="rf">べんきょう</span>になった 
					</span>
				</span>
				<span class="trg x_xd3">
					<span class="trans">通过这次失败, 得到了很大的教训 </span>
					<span class="trans ty_pinyin">tōngguò zhècì shībài, dédàole hěn dà de jiàoxùn </span>
				</span>
			</span>
		</span>
	</span>
	<span class="cb x_xo0">
		<span id="j_CRJC027273-HG001" class="csec x_xo1">
			<span class="cwg x_xoh">
				<span class="cw">
					<span class="rf">べんきょう</span>部屋
				</span>
				<span class="gp">・</span>
				<span class="cvg">
					<span class="cv">べんきょうへや</span>
					<span class="gp">・</span>
					<span class="cv">勉強部屋 </span>
				</span>
			</span>
			<span class="gramb x_xo2">
				<span class="semb">
					<span class="trg x_xo3">
						<span class="trans">学习的房间 </span>
						<span class="trans ty_pinyin">xuéxí de fángjiān </span>
					</span>
				</span>
			</span>
		</span>
	</span>
	<span class="box ty_日中比較">
		<span class="x_xdh x_xdt">
			<span class="x_xopt">中国語の‘勉强</span>
			<span class="pr">
				<span d:pr="US solitary" class="ph ty_pinyin">miǎnqiǎng</span>
			</span>’は「強制する」という動詞, 「むりやり…」という副詞である.
		</span>
	</span>
</d:entry>

词义扩大:中文意思比日语意思多

该类条目的特点是在底下的方框里面注释时经常有「意味もある(还有这种意思)」的字样,例如日语「千金せんきん」仅指很多钱的意思(千两黄金),中文除此之外还有令嫒、大小姐的意思(「多額のお金」という意味の他, 他人の娘をていねいに言う「令嬢, お嬢様」の意味もある.)。下面举几个例子:

日语单词日译中中文单词中译日
表現ひょうげん 表达表现biǎoxiàn「表現する」という意味の他に「態度」「行動」という意味もある.
(备注:中文有“态度”、“行动”的意思,日文无)
処理しょり 处理、对付、办理处理chǔlǐ「物事をさばいて始末をつける」という意味の他に「安く売り払う」という意味もある
(备注:中文有“便宜卖”的意思,日文无).
登録とうろく 登记登录dēnglù「帳簿に載せる」という意味の他に「ログインする」という意味もある
(备注:中文有“网站登录”的意思,日文无).
活動かつどう 行动活动huódòng「積極的に行動する」という意味の他, 「健康のため体を動かす」という意味もある
(备注:中文有“活动身体”的意思,日文无).
めん 假面、脸miàn「麺」や「粉」の意味もある.
(备注:中文有“面粉”的意思,日文无).
いのち 生命mìng「運命」という意味もある
(备注:中文有“命运”的意思,日文无).
掃除そうじ 打扫扫除sǎochú「汚れをなくしきれいにする」という意味の他に「取り除く」という意味もある.
(备注:中文有“去除(比如障碍)”的意思,日文无)

词义缩小:中文意思比日语意思少

最经典的例子是「先輩せんぱい」和「後輩こうはい」(目前版本的词典中「後輩こうはい」没有加方框标注,这里为了统一加进来)。日语里面不仅表示长辈(或晚辈),也表示学校里面的高年级学长姐(或低年级学弟妹)、或上级同事(下级同事),中文里只能表示长辈(晚辈)。这类条目较少,其他的只有以下几个:

日语单词日译中中文单词中译日
病院びょういん 所有医院病院bìngyuàn中国語で一般的に「病院」を指す言葉は‘医院yīyuàn’. 中国語の‘病院bìngyuàn’は‘精神病院jīngshén bìngyuàn’や‘结核病院jiéhé bìngyuàn’のような「専門病院」を指し, 普通, ‘病院’と単独では使えない
(备注:中文的“病院”仅用于指“精神病院”、“结核病院”之类).
道具どうぐ 工具道具dàojù中国語の‘道具dàojù’は「舞台用の道具」を指す
(备注:中文“道具”仅指舞台用的道具).
大学だいがく 所有大学大学dàxué中国語で‘大学dàxué’といえば「総合大学」を指す. ‘学院xuéyuàn’は「単科大学」あるいは大学内の「学部」を意味する. 一般的に「大学」といいたいときは‘大学’が使われる
(备注:中文“大学”仅指综合性大学).
幹部かんぶ 领导干部gànbù中国語の‘干部gànbù’は「党や政府で公職にある人」, とくに「役職者」を言う
(备注:中文“干部”仅指党政公务员).
謹慎きんしん (1)小心
(2)禁闭
谨慎jǐnshèn中国語の‘谨慎jǐnshèn’は「慎重である」ことを言い, 「処分」の意味はない
(备注:中文“谨慎”没有处分的意思).
たまご (1)蛋
(2)卵
luǎn‘卵luǎn’に「食用の鶏卵」の意味はない. 地方によっては人間の「睾丸, ペニス」を指す
(备注:中文“卵”没有鸡蛋的意思).
脱落だつらく (1)掉队
(2)脱漏、落下
脱落tuōluò中国語の‘脱落tuōluò’は「くっついているものが落ちる」ことをいう. 集団からの脱落については使えない
(备注:中文“脱落”没有掉队的意思).
協約きょうやく 协议协约xiéyuē中国語の’协约xiéyuē’は通常国家間の条約をいう
(备注:中文“协约”仅指国家之间的协议).
写真しゃしん 照片写真xiězhēn中国語の‘写真xiězhēn’は名詞として「肖像画」, 動詞として「肖像画を描く」ことをいう
(备注:中文“写真”仅指人物的肖像).
くつ xuē中国語の‘靴xuē’は「長靴」や「ブーツ」を指す
(备注:中文“靴”仅指“长靴鞋”).
野菜やさい 各种蔬菜野菜yěcài中国語の‘野菜yěcài’は「野生の食用植物」「山菜」のこと
(备注:中文“野菜”仅指“野生的蔬菜”).

词义转移:日语和中文意思完全不同

这种是数量最多的,中日差异的汉字词这篇文章里面基本就是这些词,再举几个例子:

日语单词日译中中文单词中译日
覇気はき 雄心霸气bàqì「傍若無人な態度」を指す.
ほん běn本を数える「1冊, 2冊」の単位を表し, 本そのものは‘书(書)shū’で表す.
もち 糍粑bǐng小麦粉をのばして焼くか蒸した食物のことである.
部门中央の行政機関であれば日本の「省」に相当する.
不覚ふかく 过失不觉bùjué「思わず」という意味.
裁縫さいほう 缝纫裁缝cáifeng‘cáifeng’と読むと「仕立て屋」のこと.
裁判さいばん 审判裁判cáipànスポーツの「審判」のこと.
差別さべつ 歧视差别chābié主に「ちがい」を表す語で, 見下す意味では‘歧视qíshì’などがよく使われる.

全部列表

“词义转移”354个,“词义扩大”214个,“词义缩小”13个。

Comments (15) on "日中差异汉字词汇大全:挖掘 macOS 中的词典"

  1. Google Chrome 107.0.0.0 Mac OS X  10.15.7

    大开眼界了,苹果字典还能这样用。
    感觉这些词很多是近 100 年白话文运动时参考西方国家语言发展成的各种意思。都是些古文中少有或没有的概念。

  2. Microsoft Edge 107.0.1418.42 Windows 10 x64 Edition

    苏北那里 yi 发音的字,就是父亲的意思,老yi 就是最小的叔叔,个人感觉可能是“爷”,就是父亲,但我就没有细究到底是什么字了。
    所以还是通用的字比较好,省的有歧义。当然这个中日差异只能单独处理了。

    1. Safari 16.1 Mac OS X  10.15.7

      可以的,学起来还挺有意思的,不过番剧里面有些用词和日常生活差异很大,需要注意

  3. Microsoft Edge 110.0.1587.57 Mac OS X  10.15.7

    https://dto.pipecraft.net/s/yv9sms/macos 裡評論的內容,在這裡再發一次。

    我覺得這個單詞目錄很有價值,對學習日語的初學者應該很有幫助。感謝分享。

    如果把這個目錄放在 GitHub 上面,讓更多人一起參與補充、修改,我想會對很多人有幫助。

    簡單搜了一下,找到一個專案 ( https://github.com/birdtianyu/Japanese_words ),只收集 10 個單詞就放棄了。

    滬江日語網站裡也有一些: [日語漢字與中文漢字意義大不同]

  4. Google Chrome 119.0.0.0 Windows 10 x64 Edition

    打算将这个差异的文档放到 GitHub 上并且在 Vercel 或者 CloudFlare 部署一个可查询的工具,不知道博主是否能够同意。谢谢啦。

回复 ejsoon 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注