上記変換マップの基礎を作る
上記変換ハッシュのベースはかんなヘルパそーすから以下のようにして作ります
# cat p.pl $canna =<<'_CANNA_'; category_code substantive_code[]= { { "#T00", "名詞(な,さ,する,語幹,格助接続)" , "共通,孝行", 31, 3 }, { "#T01", "名詞(な,さ,する,語幹,格助接続△)", "", 31, 3 }, { "#T02", "名詞(な,さ,する,語幹)" , "", 30, 3 }, { "#T03", "名詞(な,さ,する,格助接続)" , "きちきち", 29, 3 }, { "#T04", "名詞(な,さ,する)" , "凶暴", 28, 3 }, { "#T05", "名詞(な,さ,語幹,格助接続)" , "質実,幸運,哀れ,簡潔,謙虚,貴重", 27, 3 }, { "#T06", "名詞(な,さ,語幹,格助接続△)" , "一様,奇異,健やか,明快", 27, 3 }, { "#T08", "名詞(な,さ,格助接続△)" , "意外,懸命", 25, 3 }, { "#T09", "名詞(な,さ)" , "静か,気軽", 24, 3 }, { "#T10", "名詞(な,する,語幹,格助接続)" , "安心,浮気,横着,感心", 23, 3 }, { "#T11", "名詞(な,する,語幹,格助接続△)" , "格段,格別,大層,直接", 23, 3 }, { "#T12", "名詞(な,する,語幹)" , "存分", 22, 3 }, { "#T13", "名詞(な,する,格助接続△)" , "大慌て", 21, 3 }, { "#T14", "名詞(な,する)" , "", 20, 3 }, { "#T15", "名詞・副詞(な,語幹,格助接続)" , "同じ?,色々", 19, 3 }, { "#T18", "名詞(な,格助接続△)" , "当り前,甘口,安穏,内気", 17, 3 }, { "#T19", "名詞(な)" , "危なげ,嫌み,大ざっぱ", 16, 3 }, { "#T20", "名詞(さ,する,語幹,格助接続)" , "", 15, 3 }, { "#T21", "名詞(さ,する,語幹,格助接続△)" , "", 15, 3 }, { "#T22", "名詞(さ,する,語幹)" , "", 14, 3 }, { "#T23", "名詞(さ,する,格助接続△)" , "", 13, 3 }, { "#T24", "名詞(さ,する)" , "", 12, 3 }, { "#T25", "名詞(さ,語幹,格助接続)" , "平常", 11, 3 }, { "#T26", "名詞(さ,語幹,格助接続△)" , "", 11, 3 }, { "#T27", "名詞(さ,語幹)" , "", 10, 3 }, { "#T28", "名詞(さ,格助接続△)" , "", 9, 3 }, { "#T29", "名詞(さ)" , "", 8, 3 }, { "#T30", "名詞(する,語幹,格助接続)" , "哀願,愛好,挨拶,安置", 7, 3 }, { "#T32", "名詞(する,語幹)" , "", 6, 3 }, { "#T33", "名詞(する,格助接続△)" , "", 5, 3 }, { "#T34", "名詞(する)" , "", 4, 3 }, { "#T35", "名詞(語幹,格助接続)" , "合印,合鍵,山,会社", 3, 3 }, { "#T39", "名詞" , "", 0, 3 }, { "#CN", "地名" , "東京", 0, 3 }, { "#CNS", "地名(接尾語)" , "東京都", 0, 3 }, { "#JCN", "地名(姓も可)" , "長崎", 0, 3 }, { "#JN", "人名" , "菅井,勝", 0, 3 }, { "#JNS", "人名(姓)" , "蔵本", 0, 3 }, { "#JNM", "人名(名)" , "栄二", 0, 1 }, { "#KK", "会社/団体" , "日本電気", 0, 3 }, }; category_code adverb_code[] = { { "#T07", "副詞(な,さ,語幹)" , "十分", 26, 3 }, { "#T16", "副詞(な,語幹,格助接続△)" , "案外,生憎,かなり", 19, 3 }, { "#T17", "副詞(な,語幹)" , "やたら,ぴったり,意識的,印象的,科学的", 18, 3 }, { "#T31", "副詞(する,語幹,格助接続△)" , "ちょっと", 7, 3 }, { "#T36", "副詞(語幹,格助接続△)" , "よほど,たぶん,折からの", 3, 3 }, { "#T37", "副詞(語幹)" , "だいぶ,はなはだ", 2, 3 }, { "#T38", "副詞(格助接続△)" , "", 1, 3 }, { "#F00", "副詞(と,たる,する,語幹)", "決然,ぐるぐる,ひそひそ,青々", 15, 3 }, { "#F01", "副詞(と,たる,する)" , "判然,依然,公然,雑然,釈然,泰然", 14, 3 }, { "#F02", "副詞(と,たる,語幹)" , "猛然,断然,断固,堂々,延々,延々", 13, 3 }, { "#F03", "副詞(と,たる,)" , "広漠,安閑,憮然,唖然,黙々,切切", 12, 3 }, { "#F04", "副詞(と,する,語幹)" , "ふっくら,ゆっくり", 11, 3 }, { "#F05", "副詞(と,する)" , "晴れ晴れ,広々,ごわごわ,ごつごつ", 10, 3 }, { "#F06", "副詞(と,語幹)" , "全然,突然,度々,重ね重ね,まざまざ,むざむざ", 9, 3 }, { "#F07", "副詞(と)" , "", 8, 3 }, { "#F08", "副詞(たる,する,語幹)" , "", 7, 3 }, { "#F09", "副詞(たる,する)" , "", 6, 3 }, { "#F10", "副詞(たる,語幹)" , "", 5, 3 }, { "#F11", "副詞(たる)" , "確", 4, 3 }, { "#F12", "副詞(する,語幹)" , "そっと,ぞっと,ほっと,ふと,ほっと,むっと", 3, 3 }, { "#F13", "副詞(する)" , "", 2, 3 }, { "#F14", "副詞(語幹)" , "相変わらず,敢えて,飽くまで", 1, 3 }, { "#F15", "副詞(未定義)" , "", 0, 3 }, }; /** * K5, か行5段, 置く * K5r, か行5段:連用形が名詞, 書く * C5r, 行く5段:連用形が名詞, 行く * G5, が行5段, 仰ぐ * G5r, が行5段:連用形が名詞, 急ぐ * S5, さ行5段, 帰す * S5r, さ行5段:連用形が名詞, 移す * T5, た行5段, 絶つ * T5r, た行5段:連用形が名詞, 打つ * N5, な行5段, 死ぬ * B5, ば行5段, 転ぶ * B5r, ば行5段:連用形が名詞, 遊ぶ * M5, ま行5段, 住む * M5r, ま行5段:連用形が名詞, 編む * R5, ら行5段, 威張る * R5r, ら行5段:連用形が名詞, 謝る * L5, ラ行5段:命令形がイ, いらっしゃる * W5, わ行5段, 言う * W5r, わ行5段:連用形が名詞, 扱う * U5, 乞う5段, 乞う * U5r, 乞う5段:連用形が名詞, 問う * KS, 上下1段, 降りる * 与える * KSr, 上下1段:語幹が名詞, 生きる * 預ける * KX, カ変活用動詞, 来る * SX, サ変活用動詞, 関する * ZX, ザ変活用動詞, 感ずる * NZX, ンザ変活用動詞, 重んずる **/ category_code verb_code[]= { { "#K5", "か行5段" , "置/か(ない)/き(ます)/く/く(こと)/け(ば)/こ(う)", 0, 3 }, { "#K5r", "か行5段:連名" , "書/か(ない)/き(ます)/く/く(こと)/け(ば)/こ(う)", 0, 3 }, { "#C5r", "行く5段" , "行/か(ない)/き(ます)/く/く(こと)/け(ば)/こ(う)", 0, 3 }, { "#G5" , "が行5段" , "仰/が(ない)/ぎ(ます)/ぐ/ぐ(こと)/げ(ば)/ご(う)", 0, 3 }, { "#G5r", "が行5段:連名" , "急/が(ない)/ぎ(ます)/ぐ/ぐ(こと)/げ(ば)/ご(う)", 0, 3 }, { "#S5" , "さ行5段" , "帰/さ(ない)/し(ます)/す/す(こと)/せ(ば)/そ(う)", 0, 3 }, { "#S5r", "さ行5段:連名" , "移/さ(ない)/し(ます)/す/す(こと)/せ(ば)/そ(う)", 0, 3 }, { "#T5" , "た行5段" , "絶/た(ない)/ち(ます)/つ/つ(こと)/て(ば)/と(う)", 0, 3 }, { "#T5r", "た行5段:連名" , "打/た(ない)/ち(ます)/つ/つ(こと)/て(ば)/と(う)", 0, 3 }, { "#N5", "な行5段" , "死/な(ない)/に(ます)/ぬ/ぬ(こと)/ね(ば)/の(う)", 0, 3 }, { "#N5r", "な行5段:連名" , "", 0, 1 }, { "#B5", "ば行5段" , "転/ば(ない)/び(ます)/ぶ/ぶ(こと)/べ(ば)/ぼ(う)", 0, 3 }, { "#B5r", "ば行5段:連名" , "遊/ば(ない)/び(ます)/ぶ/ぶ(こと)/べ(ば)/ぼ(う)", 0, 3 }, { "#M5", "ま行5段" , "住/ま(ない)/み(ます)/む/む(こと)/め(ば)/も(う)", 0, 3 }, { "#M5r", "ま行5段:連名" , "編/ま(ない)/み(ます)/む/む(こと)/め(ば)/も(う)", 0, 3 }, { "#R5" , "ら行5段" , "威張/ら(ない)/り(ます)/る/る(こと)/れ(ば)/ろ(う)", 0, 3 }, { "#R5r", "ら行5段:連名" , "謝/ら(ない)/り(ます)/る/る(こと)/れ(ば)/ろ(う)", 0, 3 }, { "#L5", "ラ行5段:命令イ", "いらっしゃ/ら(ない)/い(ます)/る/る(こと)/れ(ば)/ろ(う)", 0, 3 }, { "#W5", "わ行5段" , "言/わ(ない)/い(ます)/う/う(こと)/え(ば)/お(う)", 0, 3 }, { "#W5r", "わ行5段:連名" , "扱/わ(ない)/い(ます)/う/う(こと)/え(ば)/お(う)", 0, 3 }, { "#U5" , "乞う5段" , "乞/わ(ない)/い(ます)/う/う(こと)/え(ば)/お(う)", 0, 3 }, { "#U5r", "乞う5段:連名" , "問/わ(ない)/い(ます)/う/う(こと)/え(ば)/お(う)", 0, 3 }, { "#KS", "上下1段" , "降,与/り,え(ない)/り,え(ます)/りる,える/りる,える(こと)/りれ,えれ(ば)/りよ,えよ(う)", 0, 3 }, { "#KSr", "上下1段:語幹名", "生,預/き,け(ない)/き,け(ます)/きる,ける/きる,ける(こと)/きれ,けれ(ば)/きよ,けよ(う)", 0, 3 }, { "#KX", "カ変活用動詞" , "来/こ(ない)/き(ます)/くる/くる(こと)/くれ(ば)/こよ(う)", 0, 2 }, { "#SX", "サ変活用動詞" , "関/し(ない)/し(ます)/する/する(こと)/すれ(ば)/せよ", 0, 3 }, { "#ZX", "ザ変活用動詞" , "感/じ(ない)/じ(ます)/ずる/ずる(こと)/ずれ(ば)/ぜよ", 0, 3 }, { "#NZX", "ンザ変活用動詞", "重ん/が(ない)/ぎ(ます)/ぐ/ぐ(こと)/げ(ば)/ご(う)", 0, 2 }, }; /*** * KY, 形 美しい * KYT, 名ナノ・形 四角い,黄色い * KYna, 形 小さい,大きい (活用に[な(連体用法ナ]がある形容詞) * KYmi, 形 強い、重い (みで終ると名詞に転成する形容詞) * KYme, 形 強め、長め (めで終ると形容動詞に転成する形容詞) * KYmime,形 強み、強め KYmi, KYme の両方の性質を合わせ持つ * KYU, 形:ウ音便 美しゅう **/ category_code adjective_code[] = { { "#KY", "形容詞" , "美しい", 0, 3 }, { "#KYT", "形容詞:名ナノ" , "四角い, 黄色い", 0, 3 }, { "#KYna", "形容詞:連体用法ナ", "小さい, 大きい", 0, 3 }, { "#KYmi", "形容詞:み" , "強い, 重い", 0, 3 }, { "#KYme", "形容詞:め" , "強め, 長め", 0, 3 }, { "#KYmime", "形容詞:みめ" , "強み, 強め", 0, 3 }, { "#KYU", "形容詞:ウ音便" , "美しゅう", 0, 3 }, }; category_code etc_code[] = { { "#KJ", "一文字漢字" , "単漢字変換用", 0, 3 }, /* { "#CN", "地名" , "東京", 0, 3 }, { "#CNS", "地名(接尾語)" , "東京都", 0, 3 }, { "#JCN", "地名(姓も可)" , "長崎", 0, 3 }, { "#JN", "人名" , "菅井,勝", 0, 3 }, { "#JNS", "人名(姓)" , "蔵本", 0, 3 }, { "#JNM", "人名(名)" , "栄二", 0, 1 }, { "#KK", "会社/団体" , "日本電気", 0, 3 }, */ { "#CJ", "接続詞/感動詞/連語" , "", 0, 3 }, { "#RT", "連体詞" , "", 0, 3 }, { "#OKX", "動詞の丁寧表現の語幹" , "お聞き", 0, 3 }, { "#NN", "数詞:一般" , "数,幾", 0, 3 }, { "#N00", "数詞:x万,x億,x兆" , "x万,x億,x兆", 0, 3 }, { "#N01", "数詞:千,二千,…,数千" , "千,二千,…,数千", 0, 3 }, { "#N02", "数詞:百,二百,…,数百" , "百,二百,…,数百", 0, 3 }, { "#N03", "数詞:十,二十,…,数十" , "十,二十,…,数十", 0, 3 }, { "#KN", "形式名詞" , "あと/うち/おり/こと/", 0, 3 }, { "#TKN", "新形式名詞" , "はず/わけ", 0, 2 }, { "#JTNO", "準体言名詞" , "くらい/ぐらい/こそ", 0, 2 }, { "#PRE", "接頭語" , "", 0, 3 }, { "#CNPRE", "接頭語:一般" , "", 0, 3 }, { "#JNPRE", "接頭語:地名" , "", 0, 2 }, { "#NNPRE", "接頭語:数詞" , "", 0, 3 }, { "#SNPRE", "接頭語:サ変名詞" , "", 0, 2 }, { "#SUN", "接尾語:一般" , "", 0, 2 }, { "#CNSUC1","接尾語:地名 1" , "", 0, 3 }, { "#CNSUC2","接尾語:地名 2" , "", 0, 3 }, { "#JNSUC" ,"接尾語:人名" , "", 0, 3 }, { "#N2T30", "接尾語:サ変名詞化" , "(名)+化,視", 0, 3 }, { "#N2T35", "接尾語:名詞化" , "", 0, 3 }, { "#D2T35", "接尾語:動詞連用形+名詞化" , "(動詞連用形)+っぱなし", 0, 3 }, { "#D2T16", "接尾語:形容動詞化" , "(動詞連用形)+がち", 0, 3 }, { "#ND2KY", "接尾語:形容詞化" , "(名,動用)+がましい,強(づよ)い: 押し付けがましい", 0, 3 }, { "#D2KY", "接尾語:形容詞化(動詞連用形)", "(動連)+しづらい,難(がた)い", 0, 3 }, { "#N2KYT", "接尾語:形容詞化(名ナノ)" , "(名)+高(だか)い,早(ばや)い: 名高い,手早い", 0, 3 }, { "#N2T10", "特殊活用:形容動詞化(T10)" , "(名)+づかい", 0, 3 }, { "#N2T15", "特殊活用:形容動詞化(T15)" , "(名)+ずくめ", 0, 2 }, { "#N2T16", "特殊活用:形容動詞化(T16)" , "(名)+的,式,風,流", 0, 3 }, { "#N2T17", "特殊活用:形容動詞化(T17)" , "", 0, 1 }, { "#N2T18", "特殊活用:形容動詞化(T18)" , "(名)+みたい,がち", 0, 2 }, { "#JS", "数助詞" , "", 0, 3 }, { "#JSSUC", "数助詞接尾語" , "", 0, 3 }, { "#JNMUC", "接尾語:人名(名)" , "", 0, 1 }, { "#JNMSUC","接尾語:名" , "", 0, 2 }, { "#JNSSUC","接尾語:姓" , "", 0, 3 }, }; _CANNA_ foreach(split(/\n+/, $canna )) { /^\s*\{?\s*"([^"]+)"\s*,\s*"([^"]+)"\s*.\s*"([^"]*)"/ and do { my($k, $v, $c) = ($1, $2, $3); print qq|\t"$v" => "$k", # $v$c\n|; } or do { print qq|#-- $_\n| } ; }