青空文庫のテキストからルビを削除してみる

 青空文庫のテキストでは、ルビが《》で囲まれています。専用ソフトを使えば、ルビがふられて便利なのですが、プレーンなテキストのままで見ると煩わしく思う時があります。
 そこで、《》で囲まれたルビを削除するスクリプトを作ってみました。
 テキストの文字コードが Shift-JIS の場合、

(define (remove-rubi dir)
  (let (books (directory dir "^[^.]"))
    (dolist (file books)
      (print file " ")
      (let (text (read-file (string dir file)))
        (print (length text) " ")
        (replace {《(([^\x81]*)*(\x81+[^\x74][^\x81]*)*)*》} text "" 0)
        (println (length text))
        (write-file (string dir file) text)))))

 となります。スクリプトの肝は、もちろん、ルビを削除する

(replace {《(([^\x81]*)*(\x81+[^\x74][^\x81]*)*)*》} text "" 0)

 ここで使っている正規表現は、以前も紹介した“ある文字列を含まない正規表現”で、自動生成してもらったもの。 テキストの文字コードが UTF-8 なら、

(replace {《[^》]*》} text "" 2048)

 で済むんですけどね。
 さて、使い方は、

(remove-rubi {Z:\青空文庫の名作100選\})
  or
(remove-rubi {Z:/青空文庫の名作100選/})

 こんな感じでディレクトリの最後に、\/ を付けて下さい。
 また、指定したディレクトリの下にあるファイル全てが変換されますから、不必要なファイルは置かないで下さい。一回しか使わないスクリプトですから、エラー回避関連はほとんど手を抜いていますので(汗)。

 以上、如何でしょうか?

No comments yet

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。