HTML からのテキスト抽出をウェブサービス化

日本語ウェブコーパスを処理するためのプログラムを改修しているのですが,HTML アーカイブからのテキスト抽出までは問題なく動く状態になったので,HTML 文書からテキストを抽出するウェブサービスを公開してみました.

HTML の入力方法は,以下の 3 種類を用意しています.

  • 入力方法
    1. URL を入力:指定した URL からテキストを抽出します.
    2. ファイルを入力:アップロードした HTML ファイルからテキストを抽出します.
    3. HTML を入力:フォームに入力した HTML からテキストを抽出します.

テキスト抽出の中身は,HTML 文書の文字コードUTF-8 に変換してから,テキスト部分のみを切り出し,Unicode 正規化(NFKC)を施した後で,句点や感嘆符による文区切りをおこない,さらに,平仮名の割合が極端に低い文や英数字・記号の割合が高い文を取り除く,という内容になっています.

ちなみに,Core 2 Duo 1.6GHz を搭載したノート PC で 2GiB の HTML アーカイブからテキストを抽出してみたところ,82 秒でテキストを抽出できました.処理速度にすると 25MiB/s くらいです.

# もし,抽出ミスやエラー表示など,見てはいけないものを見てしまった場合は,見なかったことにしてください.…というのは冗談で,教えていただけると助かります.

追記(2010-10-11):Firefox のみでデザインを確認していたので,他のブラウザでは想定とは微妙に違った表示になります.Opera, Safari, Chrome, Internet Explorer で表示を確認してみたところ,差がもっとも大きくなるのは Internet Explorer でした.スタイルシートの border-radius(丸み,IE 以外では有効)と box-shadow(陰,Firefox では有効)による違いだけでも随分と印象が異なります.

追記(2010-10-12):<script>,<style>,<xmp> タグに関するバグを修正しました.そして,<textarea> タグについても特殊な処理が必要っぽいことに気づきました(未修正).

追記(2010-10-12):<textarea> に対する処理(タグは無効,改行と文字参照は有効)を追加しました.後,大文字で記述されている特殊なタグを適切に処理できないというバグを修正しました.