Wikipedia頻出の漢字集合「WPJ2000」を作ってみました

さて、疲れるから、もうKY100は使いません。でも今度はWikipedia日本語版に頻出する漢字を集めた漢字集合「WPJ2000」を作成してみました。これなら結構実用的な漢字集合作れるんじゃないの?というわけで、常用漢字1945字に対抗すべくWEB2.0(笑)な漢字集合WPJ2000の魅力に迫ってみたいと思います。

まずwikipediaから記事データをダウンロードしてきます。

Wikipedia:データベースダウンロード - Wikipedia

より具体的には http://download.wikimedia.org/jawiki/20080607/ の pages-articles.xml.bz2 722.8 MB をダウンロードしました。これを展開し、これを対象として出現頻度上位2000字を集めました。

# -*- encoding: UTF-8 -*-

tbl = Hash.new

ARGF.each_line do |line|
  line.each_char do |char|
    if /[\u4E00-\u9FFF]/u =~ char
      tbl[char] ||= 0
      tbl[char] += 1
    end
  end
end

tbl.keys.sort{|a,b| tbl[b] <=> tbl[a]}[0...2000].each do |key|
  print "#{key}"
end

この結果は次のようになりました。これがWPJ2000(20080607版)となります。

年日月大本学人国一中市道者出部作用行名県会合場地上時東生田子高山事代駅画線後社手関第長戦立川校分新業目車発間動前定成物所自的野内小号除同町方主通連京島家利記下体文現機放番在送開和鉄削北入外全頼化語三当法海選設原対世神見依式公表回理特多都西組村数以像明性区水最女度電力要教平等金位加正期議実初木品曲書元身軍形使制言政版治空南科天編気二点能面演口民別王経話系岡員置路勝楽音知論保集州来優変意取井次重共美交項界参士近不有松信結球売台運際局阪映型広活他武称持工登存石無務団歴続宮藤産付郡古福馬指受権城院報歌説史役郎園属義府太終改造種朝考製土戸愛屋由相技安解賞総基男崎少流店転決橋昭門真英光統館隊心始覧術進営様計情備題呼移録向直星得影思類谷可字建両再支投域育競常紀色伝格千佐問止葉引約任構装撃兵研寺艦強認江先状果追白声乗旧載死津良収列過急港器速彼吉条管官監究氏更河陸容各調料必十万族確命協打曜件起浜青反示着判久沢八衆師四督施配住修復応味党伊降限森去火側風円試達米商株半提横衛予単著周観親航専級例今頭切量継係走廃洋司資攻撮及花皇独図食奈央岩概室防企接客異規注退込護五夫職富足帝離波質争根船泉差了殺徳便芸庫態銀害済派領準母将旅座歳張尾劇帰賀父般落宇林程為素博照警黒念清豊典魔消御辺春詞赤玉比闘巻秋好鳥省略雄完之香志飛残換九挙漫査象担助率験宗介処渡守感倉供里含導医創増未帯越述細与非個聞児夏夜従響視察停章首違読藩境展検聖敗永坂何病仕価源悪末想陽断写標右補短評勢然私鹿没堂秀脚若証併算友蔵失温告割瀬環令舞丸池築破浦積織段刊案丁委満稿左静催毎革授角早血興籍群奏深板薬極端甲街普頃百留模販難替庁卒順岐竹郵農複階健歩祭財低宝超節華整該効誌幸塚植樹熊遺弾遠羽週績臣跡課諸訳枚養居望郷札沿六射季習就宿弟徴識彦岸採求雑草材精暦延幕筆裁推振韓扱康邦布具徒故爆策盟湾囲忠密負絶景背房突輪惑熱席潟寄刑圧滅舎沖貨七輸幼則敵酸講献枠険伴援仙票適宙仮亜恋乱働紙因描許弘盛値毛返恵功遊掲婚兄俳躍砲笑埼避貴秒詳休栄阿亡印療談抜操姿服怪盤娘労麻似並候署壊龍幹待隆液仁軽獲拠湖仏況魚被絵鮮幅宣探途鈴竜塁倒妻減巨承駆隣奥縄律幌君覚搭矢阜逆携昇也黄仲抗喜酒桜測翌純給捕息稲智鶴券哲宅散揮執戻激障沼即雲距荒弁姫脱杉片塩夢易費固副罪須老剣閣至慶審願漢善練範巡危那摩庭憲誕騎圏牧索軌裏獣茶敷殿丘架浅霊閉茂柳兼混侵飯吹俊肉掛雪綱層油紹銃禁症堀占祖犯襲鬼齢伸締詩聴焼旗救暴臨疑秘虫妹裕拡傷億網顔湯快冬緑融冷勤雅駐暗針折否潜訪姉昧染厚買砂曖辞濃梨芝欧較孝露茨犬納賛余衣隠互礎希額契請奪刻均押税災梅双寿恐弱逃答批童穂菱翼浩核我陣伯奇亀免唱孫苦欠既申骨才礼吸澤殊唯筋舗腕履厳雷維夕誤幡雨譲迎択簡寛杯討豪稚致紅絡滝羅誠丹貫勇排燃傾昌尚笠繰宏炎縮陰益誘緒触敬械駒輝晴訓責封訴繁己栗栃荷歯棋菊弥又遅盗倍覇飾乳附鏡払旭柄窓牛刀艇岳枝摘胞脳釈損翻震干貞塔筑泰潮緯冒拳縁尊庄壁底鎌敏飲眼渋婦硬束菜桃困狭充儀偵託弦唐吾誉剛髪伏炭遣皮畑抱彩鳴垣嫌箱威氷滋捜妙鉱還午嘉妖畿床忍桂豆崩冠祐輔縦剤賢誰径挑逐迷募征芳牡踏俗磁鎮墓沙撤頂徹蒸如佳麗毒斉軸轄浮菌脈微浪鋼媛趣穴晶鑑刺斎招亭李筒朗到往包紫幻克袋看呂析謀鎖衝峰却坊姓購霧荘暮迫糸祉僚灯乃漁嶋序拓洞柏怒緊玄桑猫脇銅麦珍磨塾爵葛棄卓奉沈洗曽柔昼紋溶但腹狩彰享啓慮蘭堺撲憶蓮裂譜患蒲洲磐陵寝僧顕塗箇綾獄柴滑勲薄耐咲飼虎殖貢符國尻診魂淳括嵐浴埋戯桐偽狙恒戒逸篠欲峠詰呉棒悲抵祥揚菅肥斜抑弓祝浄乙謝輩踊曹隻悟斗句眠鷹謎淡琴透墳卵遷塞偶涯債渉騒陥慣借哉掘旬誇函仰薩隔寒柱貸梁甘摂拒雀拝添遂煙奴萩泳泊巣痛葬珠皆禄賃狂逮随乾挿峡菓蘇貼辰耳慎妃幾償旨椎粉尼握斐敦顧涼亮怖捨冊謡駿瑞訂旋郊翔胸篇尉丈琉廷劉磯雇貝闇辻預披垂勧罰僕届釜尽頁崇錦熟糖銭刷贈斬碑圭滞覆錬繋傍恩循芦堅耕晋昔侯扉臓瞬肩晩徐烈屈促帳棟奨忘遇培堤汚頻貯貧喫秩鼻晃匠猛邪努尋牝賊澄呪猿粒媒舟酷勘悩竣緩勉恭倫朱后靖偏貿紛潤溝辛寮脂槻狼劣侍隷釣疾涙膜訟陳銘渓犠惧蹴召灰唄稼橘噴邸猪傘倶苗遭鴨謙驚軟衰欄虐旦控閲懸笹湘宜彗播掃鍵措薦酵諏掌軒宰彫昆鍋淀孤蛇宋秦殆淵烏萌叙於薫幣累悠卿硫禅需曰蒼碁屯俺慈勅瞳盾泣虚應幽阻擁暖腸寧陶墜寸聡嫁諒靴扇叩嗣牟励鐵桁魅跳挟駄栽讃匹隅腰鳳班巳是凡抽樽刃腐郭拘俣殻黙刈栖虹凍學肝簿慢粋湿斯祈暫鼓渕懐妨舶藍岬泥鋭脊蓋牙篤脅夷舌湊帆尿祀芽閥嶺繊魏癖炉墨羊諭釧洪揃鷲鐘孔浸瓶妥噂蓄伐稀股傑准壇條臼庵楠裸蜂帽剰胡鳩朋零腫萬酔鉛伎盆霞坪拍廣畠菩膨樺梶暁窪巧拾笛毅眞吐胴藝畜隈粘擬誓綿衡瓦肢杏貌喚絞楓揺勃乏哀拉雰壮汽嫡獅紗牲搬兆牽逢茎叫赴臭耶捉胆圓砕陀玩灘箕籠荻鍛漠隼忌棚楼縛叔偉肺凶歓疫枢輌肖槍紳粧馴尺庶癌寅茅燕猟疎粟賜呈漏潔帥逝弧玲葵懲敢遼剥蝶缶稔慰賭柿邑鞍賠頑諾慕卸楊践奮洛爪悦窟椅粛纂汁胤遥牌苑骸喪鯨膚樋妊杜鶏袖郁痴喧惨廉汲虜趙舘朽苫燥穏茸讐沸杵僅串曾壱厩睦矛濱汎綴嬢憧哨韻豚

さて、これだけ見てもなにがなにやら、という気がしますので、とりあえず常用漢字と比較してみることにしましょう。まず次のようなスクリプト常用漢字に入っていない字(WPJ2000 - 常用漢字)を並べてみます。

WPJ2000 = File.read("WPJ2000.txt")
JYOUYOU = File.read("jyouyou.txt")

chars = WPJ2000.chars.select {|char| ! JYOUYOU.include?(char) }
puts chars.join("")
puts "合計:" + chars.size.to_s

うーん、今書いてて、こういうのは素直にシェルでやるのが良いような気がしましたが、とにかく結果は以下のようになりました。

岡阪藤伊奈之鹿頃熊彦韓弘埼阿龍幌阜也智鶴須那昧曖梨茨菱浩亀澤幡昌笠宏駒栗栃弥旭筑拳庄鎌吾嘉妖畿桂祐輔誰牡沙媛李呂乃嶋柏脇葛曽蘭堺蓮蒲洲磐綾柴虎國尻淳嵐桐狙篠菅鷹謎塞哉函薩梁雀萩禄蘇貼辰椎斐敦亮駿瑞翔篇琉劉磯闇辻釜頁錦斬圭繋芦晋晃牝呪竣靖槻狼惧蹴唄橘猪倶鴨旦笹湘彗播鍵諏鍋淀宋秦殆淵烏萌於卿曰蒼俺瞳應聡諒叩牟鐵桁讃鳳巳樽俣栖虹學斯渕藍脊蓋牙夷湊祀嶺魏釧揃鷲噂稀股條臼庵楠蜂胡鳩朋腫萬伎霞廣畠菩樺梶窪毅眞藝隈瓦杏貌楓勃拉獅紗牽逢耶捉圓陀玩灘箕籠荻隼輌槍馴癌寅茅燕粟玲葵遼剥蝶稔賭柿邑鞍楊洛爪窟椅纂胤遥牌苑骸樋杜袖郁喧汲趙舘苫茸讐杵僅串曾厩睦濱汎綴憧哨
合計:273

おお、なかなか良い感じだと思います(ただ「學」が含まれているとか、扱いの適当な部分があるのも目立ちます)。というのも、Wikipediaの「常用漢字」に、

なお、常用漢字として今後、新たに追加されることがほぼ確実とされる漢字は「藤」「誰」「俺」「岡」「阪」「奈」「鹿」「熊」「頃」「韓」「弥」「斬」「虎」「狙」「脇」「尻」「叩」「闇」「籠」「呂」「亀」「頬《頰》」「膝」「鶴」「匂」「嘘《噓》」「須」「噂」「濡」「笠」「嬉」「股」「眉」「朋」「覗」「鎌」「凄」「撫」「溜」「謎」「稽」「曾」の42字(保留:1字)。

http://ja.wikipedia.org/wiki/%E5%B8%B8%E7%94%A8%E6%BC%A2%E5%AD%97

と一切根拠も出典も抜きに書いてあるこの怪しいリスト(wikipediaってどっかからの引用とかで構成してるんじゃなかったんでしたっけ?)を結構カバーしているじゃありませんか。WPJ2000の内、この「ほぼ確実とされる漢字」に含まれているものは次の30字です。

岡阪藤奈鹿頃熊韓鶴須亀笠弥鎌誰呂脇虎尻狙謎闇斬俺叩噂股朋籠曾
合計:30

逆に含まれなかったものは次の12字です。

頬膝匂嘘濡嬉眉覗凄撫溜稽
合計:12

「嬉」とか「凄」とかはWPJ2000に入っていてもおかしくなさそうですけどね。あと身体部位系の「頬」「膝」「眉」が入っていないのは意外な感じです。

では次に常用漢字だけれどもWPJ2000に入らなかったもの(常用漢字 - WPJ2000)を列挙してみます。

胃芋姻渦詠謁宴凹殴翁寡暇禍蚊餓塊悔拐劾慨嚇穫喝渇褐且堪憾棺款汗閑机飢欺窮糾矯凝斤襟謹吟愚虞憩蛍倹絹枯娯坑慌肯拷穀墾恨懇紺唆詐搾昨錯擦皿桟蚕伺諮雌璽漆赦煮遮勺酌寂儒囚愁酬醜淑殉遵暑升宵抄焦硝礁詔冗壌畳醸錠嘱辱唇娠薪甚迅酢炊睡錘髄据畝惜斥拙窃栓銑漸繕塑租粗槽藻霜憎堕惰怠胎濯濁嘆恥窒衷鋳弔眺脹朕漬逓滴迭悼痘謄騰匿凸曇鈍弐把婆陪肌鉢畔煩頒蛮卑泌疲罷俵漂賓扶賦侮憤丙塀弊陛遍倣俸泡縫褒飽剖忙某紡肪朴奔抹繭婿妄盲耗匁厄愉癒憂猶庸窯酪濫吏痢糧厘廊賄
合計:218

では、これがどうなのかを簡単に検討してみます。まずWikipediaの「常用漢字」には

なお、「銑」「錘」「勺」「斤」「匁」「脹」の現・常用漢字6字については今日の日常生活に使われることがほとんどないとして今後、削除対象となる模様。

http://ja.wikipedia.org/wiki/%E5%B8%B8%E7%94%A8%E6%BC%A2%E5%AD%97

という記述がありますが、WPJ2000にはこれらの六字は全て含まれていません。ただし「暑」「机」「汗」「胃」「煮」「皿」など、生活にとても身近な漢字までもが多く漏れてしまっていることにも気付きます。ただ、適当に作った漢字集合のわりには、そこそこ良いかな、と思います。

さて最後に常用漢字とWPJ2000の共通性(常用漢字∩WPJ2000)をまとめておきます。常用漢字とWPJ2000に共通する漢字は合計1727字でした。これは 1727/1945 = 0.887917737789203 ですので、WPJ2000は常用漢字の約九割をカバーしていると言えます。というわけでWPJ2000をよろしく。次は常用漢字の範囲でwikipediaがどのくらい読めるのか読めないのか、またWPJ2000でどのくらい読めるのかを調べてみたいと思います。