辞書検索 ナンクロには、いろいろな種類があるようですが、「普通のナンクロ」と「黒マス探し」を考えます。 文字列検索の話では、部分一致が出てきますが、ナンクロは文字数が分かっているので検索が容易です。黒マス探しでも、黒マスになりえない連続箇所について検索し、先頭からの部分一致以外はほとんど必要ないと考えます。 1.「ン」「ー」でない、を探すよほどのことでないとやりませんが、機械作業で出来るのは「ン」「ー」にならない箇所を探すことです。明らかなのは、左上隅のマスと同じ番号のマスは、「ン」「ー」になりません。 今回作ったプログラムでは、自動的にマークしてみました。ほとんどの場合、最初に「ン」を決めることが出来るようです。 逆に言うと、「何が入るか分からなくても「ン」「ー」ではない」と言う検索条件があると良いと言うことです。 2.黒マスにはならない黒マス探しの場合は、「黒マスにはならない」マスをマークできます。 3.検索条件の入力- 記号、半角カナは入力エラーとします。
- ひらがなはカタカナに変換します。
- 促音など小さい文字は、大きな文字に変換します。
- 英数は、半角文字に統一します。
4.検索条件1
検索条件を指定する方法ですが、以下のようにしてみました。 - 検索条件を示す文字列の各文字は、辞書中の文字列の同じ位置の文字と比較します。
- カタカナは、同じカタカナに一致します。
- 英数字は、任意の文字と一致します。
文字列の先頭から処理し、英数字の箇所は辞書中文字で置き換えます。以降、同じ英数字は置き換えたカタカナを示すこととします。 - この動作で、英字が小文字の場合、「ン」「ー」を不一致とします。
5.検索条件2単に辞書から検索するだけでなく、一旦検索した結果を使って、再度検索を行うことが必要です。 この場合は、数字が文字位置を示すのに使われます。 6.例1検索条件に、 ABCDE を、指定すると、辞書にある各桁が全て異なる、5文字の文字列全てがヒットします。 検索結果に対して、検索条件 54321 を、適用すると、イツサンカ、カイダンジなど8件ほどが一致しました。 カンサツイ、ジンダイカ(被害が甚大化?)のような、組み替えて出来る語を検索できます。 7.例2問題中に、以下のような箇所があるとします。(マスに付与されている番号です。) 1,2,2,4 2,4,1,2,5 それぞれを、「辞書から検索」すると218件、357件あります。(それぞれの検索条件は、abbc、abcadです。) そこで、まず、辞書からabbcを検索します。 次に、検索結果をキーに、2412Aを検索します。 イチダイキ、イチダイジ、トリオトシなど18件ほどになりました。 |