by shigemk2

当面は技術的なことしか書かない

Ruby初級者向けレッスン 第41回 by ひがきさん ケンブリッジ変換

まずはこれを見てほしい。

こにんちは みさなん おんげき でかす? わしたは げんき です。 この ぶしんょう は イリギス の ケブンリッジ だがいく の けきんゅう の けっ か にげんん は もじ を にしんき する とき その さしいょ と さいご の もさじえ あてっいれば じんゅばん は めゃちくちゃ でも ちんゃと よめる と いう けきんゅう に もづといて わざと もじ の じんゅばん を いかれえて あまりす。 どでうす? ちんゃと よちめゃうでしょ? ちんゃと よためら はのんう よしろく

「こんにちは」が「こにんちは」だったり、「おげんき」が「おんげき」だったりする。
所謂ケンブリッジ変換というもので、
平仮名だと、殆ど流れで読めるから、正確に文字列が並んでいなくても文章が読めてしまう、というやつです。

ケンブリッジ変換そのものについては、wikipediaでも見てください。

そして普通の文章からケンブリッジ変換を行うプログラムがグループワークであったので、
やってみた。とりあえずrubyは1.9.3です。

# -*- coding: utf-8 -*-
s = "こんにちは みなさん おげんき ですか ? わたしは げんき です。 この 
ぶんしょう は イギリス の ケンブリッジ だいがく の けんきゅう の けっ

にんげん は もじ を にんしき する とき その さいしょ と さいご の もじさえ 
あっていれば じゅんばん は めちゃくちゃ でも ちゃんと よめる と いう
けんきゅう に もとづいて わざと もじ の じゅんばん を いれかえて あります。
どうです? ちゃんと よめちゃうでしょ? ちゃんと よめたら はんのう よろしく"

t = s.split(" ")
w = nil
t.each{|i|
  if i.size >= 4 
    u = i[1]
    v = i[2]
    i[1] = v
    i[2] = u
  end
}
p t.join(" ")