簡体字、日用字変換の手順
簡体字を入力して、日本で使用されている漢字に変換します。出力を「日用字」とします。単純な1字ずつの変換で、文章の解釈はしません。
変換の目的は、主に簡体字に含まれる「簡化字」を憶えるための参考とすることで、出力を文章として利用することは考えていません。
表_1. 簡体字から日用字への変換手順1/2
簡体字(11649)が日用字 | |||||
Yes (2112) | No (9537) | ||||
簡体字がそのまま日用字。 変換不要。 A | 簡体字は日用字の旧字 | ||||
Yes(56) | No(9481) | ||||
旧字から新字体を得て出力 B | 簡体字の異体字情報ある | ||||
No(3218) | Yes(6263) | ||||
変換不可能 C | 異体字情報に日用字を含む | ||||
Yes(864) | No(5399) | ||||
見付けた日用字を出力 D | 異体字情報に日用字の旧字を含む | ||||
Yes(151) | No(5248) | ||||
見付けた旧字の新字体を出力 E | (次表) |
表_2. 簡体字から日用字への変換手順2/2
異体字情報にJIS漢字を含む | ||
Yes(2424) | No(2824) | |
最初のJIS漢字を出力 F | 簡体字はJIS漢字か | |
Yes(34) | No(2790) | |
変換不要。 G | 異体字情報の先頭を出力 H |
簡体字は、「通用规范汉字表」の「規範字」8105字と、Unihan DatabaseのUnihan_Variants.txt が kTraditionalVariant (繁体字、異体字)を定義している 6,268字とします。Unihan_Variants は、CJK統合漢字拡張Gの 1235字を含み、現時点でフォントが提供されていないものを多く含んでいます。
2つのソースの重複 2724字を除いた総数 11649字です。
日用字は、3285字です。日本の人名用漢字は常用漢字 2136字を含めて 2999字体のようです。しかし、人名用漢字は異体字を含み、一意な新字体と、その異体字(旧字体)に分けることができます。新字体 2769字と、その異体字230字です。
表外漢字が定められたのは、常用漢字改定前だったらしく、表外漢字の多くは常用漢字と重複します。表外漢字に付随する人名用漢字は全て含まれています。
旧字体 445字です。
表外漢字 1022字のうち、506字が人名用漢字 2999字体に含まれ、残りの 516字を加えて、日用字は 3285字となりました。この段階で異体字として230字が識別されます。
中国が定めた規範字の中の簡化字は日本に導入されていないので、その旧字体を介して日本の漢字と連絡します。また、日中で異なった字形を正字として来たものがあって、異体字の情報は、双方の漢字を結び付けるのに必要です。
しかし、異体字と言うと数限りなくあって容易には扱うことができません。
簡体字の旧字体の情報は、「通用规范汉字表」の付表「规范字与繁体字、异体字对照表」と Unihan_Variants が提供します。
日本の新字体、旧字体は、当用漢字に伴って作られた新字体に対するもののようです。今日では常用漢字表に旧字体が示された 362字が新字体で、旧字体は 364字のようです。
文字の字形は数限りなくある訳ですが、ここで同じ漢字、違う漢字と言うのはUnicodeの文字コードの話しです。
簡体字の旧字体の情報は、「通用规范汉字表」の付表「规范字与繁体字、异体字对照表」と Unihan_Variants によります。前者は異体字を繁体字と異体字に分けて掲載しています。ここでは字形だけを問題にしているので、形の上での親の漢字がを知りたい訳ですが直接示すものはありません。繁体字にも異体字にもある可能性があり、無いかも知れません。
例えば、簡体字「历」の繁体字には「歷」「曆」が挙げられています。「歷」の異体字には「歴」「𠪱」が、「曆」の異体字には「厤」が挙げられています。
日本では、歴と暦を使い分けますが、「繁体字」はこれを合わせて簡体字「历」と記すことを示しています。簡体字「历」の意味的な親は「歷」「曆」です。
簡体字1字について、「通用规范汉字表」の付表「规范字与繁体字、异体字对照表」から、繁体字、簡体字を取り、連結して「異体字情報」を作ります。
簡体字「采」を例に取ると、「规范字与繁体字、异体字对照表」は、繁体字を挙げず、異体字に「採」「寀」を挙げています。
Unihan_Variants は、繁体字、異体字の別なく、「埰」「採」「采」を挙げています。
このプログラムでは、「规范字与繁体字、异体字对照表」、Unihan_Variants の順に重複を除いて連結しています。
「采」は、日本の人名用漢字なので、「采」に対しては、そのまま「采」が出力となります。
簡体字「历」の場合の異体字情報は、繁体字2つ、「歷」の異体字2つ、「曆」の異体字1つの順に並べます。
「簡体字から日用字への変換手順1/2」の手順では「D」に当たって「歴」が出力されることになります。
この当否は分かりません。本来は簡体字「历」を憶えるしかないのだと思います。
常用漢字と、その旧字体は 364字ほど示されているようです。この状態で、「簡体字から日用字への変換手順」を簡体字 11649字全部について行ないます。すると、変換に使われなかった日用字が分かります。
この使われていない日用字に対応する簡体字を探して、日用字の異体字情報に加えます。ただし、使われなかった日用字には「国字」が 24字あって、これは除外します。
それでも残る日用字は、中文では繁体字として使用される漢字で、変換を要しません。
「丼」は「井」の異体字で、「どんぶり」なのは日本の話しのようです。中文で用いられれば「井」と同義のようです。「惣」は、簡体字「总」が使われ、その繁体字は「總」です。もし「惣」が記されたならそのままで良いと思います。
日用字の異体字情報に加えたのは 60字です。新字体と旧字体の関係ではありませんが、簡体字と日用字の連絡には必要です。例を挙げると「鄉:郷」、「橢:楕」、「强:強」などです。
「簡体字から日用字への変換手順」の処理区分を確認します。
日本は漢籍を通じて文字を学んできたので、常用される漢字が同じなのは当然です。
2112字が簡体字と日用字の共通の漢字です。
一丁七万丈三上下不与丑且世丘丙丞中串丸丹主・・・ |
簡体字のうち、56字は旧字体(異体字情報)を介して日用字に変換できます。
乘佛假册冱剩卷圈增壤壹姊姬巢强徵德惠戾拂拔・・・ 乗仏仮冊冴剰巻圏増壌壱姉姫巣強徴徳恵戻払抜・・・ |
簡体字が日用字や、その旧字でない場合に、簡体字が異体字情報を持っていなければ変換しようがないので、そのまま出力します。3218字あります。
㑊㕮㙍㙘㙦㛃㛚㛹㟃㠇㠓㥄㫰㬊㬎㬚㭕㮾㰀㳇㳘・・・ |
これらの文字のうち規範字は中文で重要な文字なのだと推測します。繁体字や異体字を示すまでもない規範字です。
簡体字は日用字と関連がないが、簡体字の異体字情報が日用字を含むケースは864字あります。簡化字の場合には日用字と一致することはなく、繁体字や異体字が示されているので該当します。
㭴䌷业丛东丧个临为丽义乌乔习书买产亩亲亿仅・・・ 樫紬業叢東喪個臨為麗義烏喬習書買産畝親億僅・・・ |
このうち 15字は異体字情報に複数の日用字を含んでいます。
个 | 冲 | 动 | 叹 | 复 | 泛 | 胁 | 苏 | 获 | 迹 | 针 | 钟 | 锤 | 阁 | 须 |
個箇 | 衝沖 | 動働 | 嘆歎 | 復複覆 | 氾汎 | 脅脇 | 蘇甦 | 獲穫 | 跡蹟 | 針鍼 | 鍾鐘 | 錘鎚 | 閣閤 | 須鬚 |
記載順を信じて、先頭を取ります。ただし、正しくないことは明らかです。簡体字「胁」は、日用字「脅」「脇」に対応します。この2字は部首を入れ替えた同じ漢字です。しかし、日本では異なった意味を持ち、使い分けています。他も意味が異なり書き分ける漢字です。
簡体字は日用字と関連がないが、簡体字の異体字情報が日用字の旧字を含むケースは151字あります。これも D と同様、主に簡化字のようです。
专丝两严丰举乐乡亚从价传俭儿关兽净击剂剑劝・・・ 専糸両厳豊挙楽郷亜従価伝倹児関獣浄撃剤剣勧・・・ |
異体字情報に、複数の旧字があるのは「发」1つだけでした。「発」と「髪」の旧字が含まれます。日本の常用漢字に関する旧字ではありませんが、「發」「髮」を旧字に加えているのでこのようになりました。
簡体字と、その異体字情報に、日用字やその旧字を含まない場合です。異体字情報が無い場合は C で処理されます。
簡体字に異体字情報があるのは、主に簡化字だと考えられます。漢数字など旧来の字形のままの文字は説明の必要がないので、異体字情報が記されていません。
「ごんべん」のように部首を簡略化すると、自動的に「ごんべん」を含む漢字は新字体になります。規範字の範囲を超えて新字体を作る意図があったかどうかは疑問ですが、自動的にできた新字体が利用状況とは無関係にUnicodeに追加されていると思っています。
こうした漢字が Unihan_Variants に沢山あって、ほぼ1対1で旧字体を示しているだろうと推測します。
この推測に立って、異体字が示された簡体字は、簡体字より異体字側の漢字の方が一般的な漢字だと考えます。
そこで、まず、異体字側にJIS漢字があればそれを出力します。
㐽㑈㑩㑺㔉㖞㛤㝦㟥㤖㤭㧐㧑㧛㧰㭎㭤㱩㱮㲿㳠・・・ 偑倲儸儁劚喎孋寯嵾懧憍㩳撝擥擽棡樢殰殨瀇澾・・・ |
しかし、JIS漢字は膨大なので多くが一致します。記載順を信じて先頭を取ります。
簡体字が日用字と双方の異体情報を照合しても該当がなければJIS漢字かどうかを判断します。簡体字の異体字情報がJIS漢字を含むなら F です。そうでない場合は、簡体字自体がJIS漢字ならそれを取ります。
嗽嘎囱坎坳塍婀寇弑彝忤扛抛挲桌橛橱涎瘩盍眇・・・ |
もし、異体字側の先頭を取るといkのようになります。
𠻳嘠囪埳㘭堘娿𭁵弒彞啎摃拋挱槕橜櫥㳄𤺥盇𦕈・・・ |
簡体字と、その異体字情報が、日用字と関係がなく、JIS漢字出さえない場合は、異体字情報の先頭を出力とします。F の説明の通り、Unihan_Variants がJISでない漢字の旧字体を示しているのは自動的に生じる簡化字の対応字を示すためだと考えられます。簡体字そのものより、異体情報から取る方が意図にかなうと考えました。
㐷㐹㑇㑔㓥㖊㘎㚯㛀㛟㛠㛣㛿㟆㟜㡎㤘㤽㥪㦈㧏 傌㑶㑳㑯劏噚㘚㜄媰𡞵𡢃㜏𡠹㠏𡾱幓㥮懤慺𢣏掆 |
異体字情報は多くが1つと考えられますが、複数あるものもあります。おそらく使用頻度が高い漢字の方が異体字情報は多くなります。重要な順に上げているだろうと言う推測で先頭を取ります。
ここに挙げた簡体字から日用字への変換手順は、公開されている文字情報を使ったものですが、多くの不都合があると思います。
したがって、実際には、入力する簡体字と、出力する文字の間の表を用意して、最初に適用します。