機能
- 文字コードを UTF-16 LE から UTF-8 に変換
- 「?」に化けた「 ゔ」を置換
- よみが記号や漢字などひらがな以外で始まる単語を除去
- よみ、単語、品詞が一致していてコメントだけが違っている単語を1つにまとめる
- よみの先頭に@を追加
使い方
カレントディレクトリに「カナ英辞書v2.txt」をおいて実行すると UTF-8 に変換した辞書を標準出力に出力しますのでリダイレクトして好きなファイルに保存してください。
$ php カナ英辞書v2-utf8.php > カナ英辞書v2-utf8.txt
ソース
/**
* 使い方
*
* カレントディレクトリに「カナ英辞書v2.txt」をおいて実行するとUTF-8に変換した辞書を出力
* $ php カナ英辞書v2-utf8.php > カナ英辞書v2-utf8.txt
*/
// ファイルを読み込む
$file = file_get_contents('カナ英辞書v2.txt');
// UTF-16 LE → UTF-8
$file = mb_convert_encoding($file, 'UTF-8', 'UTF-16LE');
// 文字化けした'ゔ'を修正
$file = str_replace('?', 'ゔ', $file);
// 行で分解
$lines = explode("\n", $file);
// よみ、単語、品詞が一致するものを除外して出力
$last = ['', '', '', ''];
foreach ($lines as $line) {
$cols = explode("\t", $line);
// ひらがな以外で始まるよみは無視
$c = mb_substr($cols[0], 0, 1);
if (($c < 'あ') || ($c > 'ん')) {
continue;
}
// 前回の出力と一致しているか調べる
for ($i = 0; $i <= 2; ++ $i) {
if ($last[$i] != $cols[$i]) {
break;
}
}
if ($i > 2) {
// よみ、単語、品詞が一致しているので無視
continue;
}
$last = $cols;
echo "@{$cols[0]}\t{$cols[1]}\t{$cols[2]}\t{$cols[3]}\n";
}
0 件のコメント:
コメントを投稿