ナンクロの辞書ナンクロを解いて見て気が付いたのは、1)カタカナの大きな文字のみ、2)合成語が多い、3)語の長さは決まっている、の3点です。 まず、「カタカナの大きな文字」から。 1.カタカナの大きな文字UNICODEの定義では、カタカナとして、JISの0x2520からの文字と、あとチョッとが0x30a0から割り当てられています。 //30a0 ゠ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタ //30c0 ダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ //30e0 ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ・ーヽヾヿ (ファイル上では、サロゲッティペアとして格納されるので、アが0x30a2で格納されるわけではない。) 小さい「ヵ」「ヶ」などはどんなときに使うのか分からない。 1.ナンクロでは、小さいかなと大きなカナは区別されないので、大きな文字に変換する 2.ヰヱは、イエに置き換える 3.長音は使う 4.他は、使わない 2.カタカナの分類大きいカタカナには特に呼び名はないようです。 必ずしも文字記号のことではないようですが、「ッ」は促音、「ャュョ」は、拗音と呼ばれるようです。 「ァィゥぇォ」にも明確な呼び名はないようです。 また、いずれも、他の文字との組で成り立ち、「チャ」と言った組を拗音と説明したりしているので明瞭ではないです。 3.ソートするとどうなるか辞書を扱うには、文字の大小が判定できなければなりません。旧来なら、コード順で簡単なわけですが、いまどきはどうなっているのか? C#で、stringクラスに1文字を入れて、ソートしてみます。 //ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ・ーヽヾ //・ァアィイゥウヴェエォオヵカガキギクグヶケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヾヽー と、コード順でないことが分かります。 4.C#のstringの各アイテムはcharとして比較されない単純には、文字列の要素はCharだと考えますが、どうも違うようです。Charは整数型で、CompareTo()などのメソッドを持ちません。文字の比較は、stringの問題で、カルチャを扱えると言うことのようです。 ただし、通常のカタカナの大きな文字だけの部分で考えると、コード順と一致しています。 5.とりあえずの辞書本当は、日本語処理の名詞の扱いを調べたいのですが、とりあえず。 名詞を取り出し、「カタカナ化」、「小さい文字は大きな文字に」して、その綴りだけの辞書ではじめます。 |