Hatena::Groupenjoy-programming

迷い楽しむプログラミング このページをアンテナに追加 RSSフィード

2008-07-23

ナリ語フィルタを作成したナリ

ナリ語フィルタを作成したナリ - 迷い楽しむプログラミング を含むブックマーク はてなブックマーク - ナリ語フィルタを作成したナリ - 迷い楽しむプログラミング ナリ語フィルタを作成したナリ - 迷い楽しむプログラミング のブックマークコメント

もっと辞書を充実させると面白くなると思うのですが、とりあえずこんな感じで……。

スクリプトがあるフォルダの.txtを全てナリ語変換して、コンソールに表示する仕様ですファイルを保存したい場合は、「 $ ruby nari.rb > newcat.txt 」といった形式で使っていただけるとらくちんかと思います。

使用例01


★出力結果
こんにちは、これはテスト用の文章ナリ。
はたして、きちんと対応できるナリか?
引数でファイル渡して、標準出力させる作りにして、使う際に新しいファイルを指定できればと考えていナリ。
テキストに違いを持たせないと。こちらはコピー元ナリ。
こんにちは、これはテスト用の文章ナリ。
はたして、きちんと対応できるナリか?
引数でファイル渡して、標準出力させる作りにして、使う際に新しいファイルを指定できればと考えていナリ。
テキストに違いを持たせないと。こちらはコピー元ナリ。
あれ、読み込まれなかったのかな。不思議。
以下、テスト用。
ですねナリね。
ですナリ。
ますナリ。
だよナリよ。
でしょうかナリか?
ますねナリね。
これはテストナリ。
であるナリ。

★入力に使ったファイル
A.txt
こんにちは、これはテスト用の文章です。
はたして、きちんと対応できるでしょうか。
引数でファイル渡して、標準出力させる作りにして、使う際に新しいファイルを指定できればと考えています。
テキストに違いを持たせないと。こちらはコピー元です。

B.txt
こんにちは、これはテスト用の文章です。
はたして、きちんと対応できるでしょうか。
引数でファイル渡して、標準出力させる作りにして、使う際に新しいファイルを指定できればと考えています。
テキストに違いを持たせないと。こちらはコピー元です。
あれ、読み込まれなかったのかな。不思議。
以下、テスト用。
ですねですね。
ですです。
ますます。
だよだよ。
でしょうかでしょうか。
ますねますね。
これはテストだ。
であるである。

使用例02

吾輩は猫である (岩波文庫)
吾輩は猫である (岩波文庫)
夏目 漱石

関連商品
坊っちゃん (岩波文庫)
三四郎 (岩波文庫)
草枕 (岩波文庫)
こころ (新潮文庫)
坊っちゃん (新潮文庫)
by G-Tools

青空文庫で↑のテキストをお借りしてみました。

ファイルには、作品名、著者名、翻訳者名、底本などに関する情報入力者名、校正者名、ファイルが作成された日付、修正された日付、「青空文庫作成ファイル:」以下の由来に関する注などが記載されています。

複製、再配布にあたって、青空文庫側は、これらの情報削除されないことを希望します。

底本や表記の変更に際しては、どの底本に基づいたファイルにどのような変更を加えたかという作業履歴が明記されることを期待します。

http://www.aozora.gr.jp/guide/kijyunn.html

とのことなので、上記情報をここに感謝とともに掲載します。

http://www.aozora.gr.jp/cards/000148/card789.html

底本:「夏目漱石全集1」ちくま文庫筑摩書房

   1987(昭和62)年9月29日第1刷発行

底本の親本:「筑摩全集類聚版夏目漱石全集筑摩書房

   1971(昭和46)年4月~1972(昭和47)年1月

入力柴田卓治

校正:渡部峰子(一)、おのしげひこ(二、五)、田尻幹二(三)、高橋真也(四、七、八、十、十一)、しず(六)、瀬戸さえ子(九)

1999年9月17日公開

2005年11月16日修正

青空文庫作成ファイル

このファイルは、インターネット図書館青空文庫http://www.aozora.gr.jp/)で作られました。入力校正制作にあたったのは、ボランティアの皆さんです。

スクリプトをかけるとこうなります↓

 吾輩《わがはい》は猫ナリ。名前はまだ無いナリ。
 どこで生れたかとんと見当《けんとう》がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見たナリ。しかもあとで聞くとそれは書生という人間中で一番|獰悪《どうあく》な種族であったそうナリ。この書生というのは時々我々を捕《つかま》えて煮《に》て食うという話ナリ。しかしその当時は何という考もなかったから別段恐しいとも思わなかったナリ。ただ彼の掌《てのひら》に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始《みはじめ》であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで薬缶《やかん》だ。その後《ご》猫にもだいぶ逢《あ》ったがこんな片輪《かたわ》には一度も出会《でく》わした事がないナリ。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙《けむり》を吹く。どうも咽《む》せぽくて実に弱った。これが人間の飲む煙草《たばこ》というものである事はようやくこの頃知った。

(中略)

 その時苦しいながら、こう考えたナリ。こんな呵責《かしゃく》に逢うのはつまり甕から上へあがりたいばかりの願ナリ。あがりたいのは山々であるが上がれないのは知れ切っている。吾輩の足は三寸に足らぬ。よし水の面《おもて》にからだが浮いて、浮いた所から思う存分前足をのばしたって五寸にあまる甕の縁に爪のかかりようがないナリ。甕のふちに爪のかかりようがなければいくらも掻《が》いても、あせっても、百年の間身を粉《こ》にしても出られっこない。出られないと分り切っているものを出ようとするのは無理ナリ。無理を通そうとするから苦しいのだ。つまらない。自《みずか》ら求めて苦しんで、自ら好んで拷問《ごうもん》に罹《かか》っているのは馬鹿気ている。
「もうよそう。勝手にするがいいナリ。がりがりはこれぎりご免蒙《めんこうむ》るよ」と、前足も、後足も、頭も尾も自然の力に任せて抵抗しない事にしたナリ。
 次第に楽になってくる。苦しいのだかありがたいのだか見当がつかないナリ。水の中にいるのだか、座敷の上にいるのだか、判然しない。どこにどうしていても差支《さしつか》えはない。ただ楽ナリ。否《いな》楽そのものすらも感じ得ない。日月《じつげつ》を切り落し、天地を粉韲《ふんせい》して不可思議の太平に入る。吾輩は死ぬ。死んでこの太平を得る。太平は死ななければ得られぬ。南無阿弥陀仏《なむあみだぶつ》南無阿弥陀仏。ありがたいありがたいナリね。

ソースコード

保証です


=begin
1.語尾をナリにできるかな
2.ARGVではなく、せっかくなのでディレクトリでテキストファイルまるごと読み込む仕様に変更
f_name = ARGV[0] ←引数のファイルを読み込ませるなら、こんな感じで作る。
=end

$KCODE = "UTF-8"
require "jcode"

Dir.glob('*.txt').each do |f_name|
  text = File.readlines(f_name)
  text.each do |f|
    f.sub!(/ですね。/,'ナリね。')
    f.sub!(/です。/,'ナリ。')
    f.sub!(/ます。/,'ナリ。')
    f.sub!(/だよ。/,'ナリよ。')
    f.sub!(/でしょうか。/,'ナリか?')
    f.sub!(/ますね。/,'ナリね。')
    f.sub!(/だ。/,'ナリ。')
    f.sub!(/である。/,'ナリ。')
    f.sub!(/た。/,'たナリ。')
    f.sub!(/った。/,'ったナリ。')
    f.sub!(/い。/,'いナリ。')
    f.sub!(/たい。/,'たいナリね。')
  end
puts text
end