漢字の部品再び

Kouichirou Eto 2003 @ eto.com
2003年 11月 7日 (金) 14:33:00 JST


江渡です。

> > というわけで、常用漢字もしくは JIS 第 1 水準の範囲の文字で、これ以上分解
> > できない文字の一覧をいただけないでしょうか。Ruby/CHISE 的に言うと、
> >   Character#decompose.length == 1

以前送った調査結果ですが、重要な点を忘れていました。
それはCharacter#decomposeは標準では、意味的な分割を扱うという点です。
これは元々Ruby/CHISEは漢字の意味的な分割についての分析を行うために
作られたという背景からきていますが、今回は字形的分割を求められている
わけなので再計算してみました。ちなみに、まったく気付いてなくて、
狩野さんの指摘で気付きました。どうもありがとうございます。

def atom_list(list)
  list.map_character {|char|
    d = yield(char)
    d.char_length == 1 ? d : ""
  }
end

def check_list(list)
  d = atom_list(list){|char| char.decompose }
  g = atom_list(list){|char| char.glyph_decompose }
  da = d.to_a
  ga = g.to_a
  wa = da & ga
  dd = (da - wa).join("")
  gg = (ga - wa).join("")
  puts "意味で分解できない文字: "+d, "これだけに含まれる文字: "+dd
  puts   "形で分解できない文字: "+g, "これだけに含まれる文字: "+gg
end

check_list(KanjiList::JOYO_KANJI_LIST)

結果もあげておきます。

意味で分解できない文字: 亜為衣井一羽雨永円凹央王黄乙音下可火我回貝角革且干甘缶丸鬼丘久及弓求牛巨魚曲玉斤金九欠穴月犬玄言己戸五交口向工更甲考行香高黒骨才冊皿三山史四士子止氏糸至事示耳自七車尺手首州舟十重粛出書女小少承上丈乗色食心申臣身辛人垂水寸生西青斥石千川走束足多大丹竹中虫丁兆弔長鳥田斗土刀豆凸屯二肉日入年馬白麦八皮非飛必百不夫父文平米片歩母方亡本麻又末万未民矛面毛木目門矢由夕予用羊来吏率立了両力老六

これだけに含まれる文字: 可回交向考高出書少多百歩六

形で分解できない文字: 亜為衣井一羽雨永円凹央王黄乙音下果火我貝角革且干甘缶丸鬼丘久及弓求牛巨魚曲玉斤金九欠穴月犬見玄言己戸鼓五口工更甲行香黒骨才冊皿三山史四士子止氏糸至事示耳自七車尺手首州舟十重粛女小承上丈乗色食心申臣身辛人垂水寸世生西青斥石赤舌千川走束足太大谷丹竹中虫丁兆弔長鳥田斗土刀東豆凸屯内二肉日入年馬白麦八半比皮非飛鼻必不夫父風文平米片母方亡本麻又末万未民矛面毛木目門矢由夕予用羊来吏里率立了両力老

これだけに含まれる文字: 果見鼓世赤舌太谷東内半比鼻風里





More information about the CHISE-ja mailing list