senの辞書にWikipediaの項目名を追加した(詳細版)

手順を詳細に書いてみます。

  1. 下記URLよりWikipedia項目名一覧を落としてくる(jawiki-latest-all-titles-in-ns0.gz)
    1. http://download.wikimedia.org/jawiki/latest/
  2. 文字コードUTF-8からEUC-JPに変換する
  3. 以下のプログラムでipadicの辞書の形式に変換する
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;

public class Converter {
	private static final String inputFileName = "jawiki-latest-all-titles-in-ns0.euc";
	private static final String outputFileName = "Noun.wikipedia.dic";
	private static final String inputEncoding = "EUC_JP";
	private static final String outputEncoding = "EUC_JP";

	public void run() throws Exception {
		final BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream(inputFileName)), inputEncoding));
		final PrintStream printStream = new PrintStream(new BufferedOutputStream(new FileOutputStream(outputFileName)), false, outputEncoding);

		String line;
		while ((line = reader.readLine()) != null) {
			if (line.isEmpty() || line.contains("_")) {
				continue;
			}

			printStream.printf("(品詞 (名詞 固有名詞 一般)) ((見出し語 (%s 10000)))\n", line);
		}
		printStream.close();
		reader.close();
	}

	public static void main(String[] args) throws Exception {
		new Converter().run();
	}
}
  1. senの辞書の入っているディレクトリに配置する
  2. dic.csvを削除
  3. senの辞書を再構築する

結果は見た感じでは良好で、地名や作品名にちゃんと反応してくれるようになった。さて、次はQMA6仕様への対応だ・・・。