Abstract: nwc-toolkit は日本語ウェブコーパスを扱うために開発されたソフトウェアです.日本語で記述された HTML 文書からテキストを抽出したり,Unicode 正規化や簡単なフィルタリングを施したりできるほか,分かち書きしたテキストから N-gram コーパスを作成することが可能です.
nwc-toolkit は日本語ウェブコーパスを作成するために開発されたソフトウェアです.HTML アーカイブからテキストアーカイブを作成するツールと,分かち書きしたテキストから N-gram コーパスを作成するツールで構成されています.サイズが 1TiB を超える HTML アーカイブを想定して C++ で開発されたツールなので,正規表現を多用する HTML パーサなどと比べれば,かなり高速に動作します.
以下,nwc-toolkit をインストールする方法とツールの簡単な説明になっています.
nwc-toolkit をビルドするには,文字コードの操作や圧縮・復元のために,いくつかのライブラリをインストールしておく必要があります.代表的な環境におけるインストールの方法を説明するので参考にしてください.
$ sudo aptitude install g++ patch subversion
$ sudo aptitude install libicu-dev $ sudo aptitude install zlib1g-dev libbz2-dev liblzma-dev $ sudo aptitude install xz-utils
KNOPPIX や Ubuntu などの環境であれば,libiconv 以外は aptitude を使って簡単にインストールできます.まずは開発環境として g++ が必要です.環境によっては,libiconv にパッチを適用するために patch のインストールが必要になります.また,Subversion のリポジトリをチェックアウトするのであれば subversion を使うことになります.
開発用のパッケージは,libicu-dev, zlib1g-dev, libbz2-dev, liblzma-dev の 4 種類です.xz 形式のファイルを操作するコマンドが必要であれば,xz-utils もインストールするようにしてください.
$ sudo yum install gcc-c++ patch subversion
$ sudo yum install libicu-devel $ sudo yum install zlib-devel bzip2-devel xz-devel $ sudo yum install xz
Red Hat や CentOS などの環境であれば,libiconv 以外は yum を使って簡単にインストールできます.まずは開発環境として gcc-c++ が必要です.環境によっては,libiconv にパッチを適用するために patch のインストールが必要になります.また,Subversion のリポジトリをチェックアウトするのであれば subversion を使うことになります.
開発用のパッケージは,libicu-devel, zlib-devel, bzip2-devel, xz-devel の 4 種類です.xz 形式のファイルを操作するコマンドが必要であれば,xz もインストールするようにしてください.
$ zypper install gcc-c++ make wget patch subversion
$ zypper install libicu-devel $ zypper install zlib-devel libbz2-devel xz-devel $ zypper install xz
openSUSE であれば,libiconv 以外は zypper を使ってインストールできるようです.開発環境としては,gcc-c++, make が必要になります.後は,必要に応じて wget, patch, subversion をインストールしてください.
開発用のパッケージは,libicu-devel, zlib-devel, libbz2-devel, xz-devel の 4 種類です.xz 形式のファイルを操作するコマンドが必要であれば,xz もインストールするようにしてください.
$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz $ wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.13-ja-1.patch.gz
$ tar zxf libiconv-1.13.1.tar.gz $ cd libiconv-1.13.1 $ gzip -cd ../libiconv-1.13-ja-1.patch.gz | patch -p1 $ ./configure $ make $ make check $ sudo make install
libiconv については,パッチを適用するために,ソースコードからインストールしています.環境によっては日本語文字コードの問題に対処したパッケージが用意されているかもしれないので確認してみてください.
公式サイトからダウンロードしたソースコードのアーカイブにパッチを適用した後で,ビルド・インストールするという手順になります.環境によっては,パッチを適用するコマンドである patch のインストールが必要になるかもしれません.ビルド・インストールについては,configure, make, make check, make install という一般的な手順で問題ありません.
$ svn checkout http://nwc-toolkit.googlecode.com/svn/trunk/ nwc-toolkit
$ cd nwc-toolkit $ ./configure $ make $ make check $ sudo make install
ソースコードのアーカイブをダウンロードするには,Subversion のリポジトリをチェックアウトするか,プロジェクトのダウンロードページを利用してください.ソースコードをダウンロードした後は,configure, make, make check という手順でビルドできます.ツールは tools/ 内に配置されるので,インストールしなくても利用できます.必要に応じて make install でインストールしてください.
$ make check ./test-xxx: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory $ sudo vi /etc/ld.so.conf ... # 最終行に /usr/local/lib を追加します. /usr/local/lib $ sudo ldconfig
make check において libiconv が見つからないというエラーが表示される場合,ライブラリを検索するディレクトリの設定,もしくは libiconv をインストールするディレクトリの変更が必要になります.デフォルトの設定では /usr/local/lib にインストールされるので,/etc/ld.so.conf を確認・編集してから ldconfig を実行するか,libiconv の configure に適切な引数を与えて再インストールするかを選択してください.
テキストアーカイブの作成については,HTML アーカイブを入力として,文字コードの判別,UTF-8 への統一,HTML の解析,テキストの抽出,Unicode 正規化,句点や疑問符による区切り,文字数や文字種によるフィルタリングを順番に適用するようになっています.
N-gram コーパスの作成については,茶筌(ChaSen)や MeCab による形態素解析の結果を入力として,単語 N-gram の出現頻度を求めるようになっています.改行コードを文の区切り,空白を単語の区切りとする単純なフォーマットのテキストからでも N-gram コーパスを作成できるので,単語分割に使うツールは形態素解析器でなくても問題ありません.
HTML アーカイブから重複する HTML 文書を見つけるためのツールがあります.
nwc-toolkit のインストール方法とツールの概要を説明しました.これらのツールを使うことにより,収集したウェブページからテキストを抽出したり,N-gram コーパスを作成したりすることができます.日本語ウェブコーパス以外に使うこともできるので,お気軽にご利用ください.