【元記事:legとgel:d:id:manpukuya:20061207:leg】
ふと気がついた。「leg(脚)」を逆から書くと「gel(ゲル/ジェル)」になる。おお。
これだけだと単に「ダンス」と「すんだ」とか「確か」と「貸した」、「イカ」と「貝」、「言語」と「権化」…の関係と同じだから、英単語でもこういう組み合わせはいろいろありそうだ。
で、たとえば「leg」は日本語だと「あし」だけど、もし「gel」が日本語で「しあ」という意味の単語だったら面白いなと思った。英語と日本語の意味のつながりが、それぞれ逆から書いても変わらないような組み合わせ。
英語 | leg←→gel |
---|---|
日本語 | あし←→しあ |
果たして、そういう組み合わせはあるだろうか。また、どうやって調べればよいだろうか。
- たくさんの英単語のリストを用意する
- 「leg」と「gel」のように、逆に書いても意味が通る英単語を調べる
- それぞれを日本語にしたとき、「タイヤ」と「焼いた」のように、お互い逆に書くともう一方の意味になるかどうか調べる
手元には、昔ダウンロードしたフリーの英和辞書がある。ここから英単語の見出し部分だけを拾い出せば、英単語のリストとして使えるだろう。これをPerlとかで処理する場合は、こんな手順だろうか。
- 単語のリストのファイル(A)から1行読み込む
- 読み込んだ単語を、1文字ずつ逆にする(「the」→「eht」)
- 逆にした単語を別のファイル(B)に追加出力する
- 以下くり返し
そして次にこんな感じで。
- ファイルBから1行読み込む
- その単語が、ファイルAに含まれるか調べる
- 完全に一致する単語が見つかったら、それを別のファイル(C)に出力する
- 以下くり返し
ファイルAがアルファベット順にソートされているなら、ファイルBの中の単語と比較するとき、まず1文字目だけ注目してあれこれすれば、処理を高速化できそうだ。
ファイルCに含まれる単語はそれなりにありそうだけれど、ここから先を自動化するのは難しそう。1つずつ日本語を調べていくしかないかも。
でもこれはちょっと面白そう。気が向いたらPerlの練習も兼ねてやってみよう。いやもうPerlの文法はかなり忘れているから、練習というより復習か。