| Server IP : 14.225.216.240 / Your IP : 216.73.217.114 Web Server : nginx/1.20.1 System : Linux localhost.localdomain 5.14.0-596.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jun 27 16:02:33 UTC 2025 x86_64 User : taidh ( 1001) PHP Version : 8.3.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/mecab/doc/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MeCab: 未知語処理</title>
<link type="text/css" rel="stylesheet" href="mecab.css">
</head>
<body>
<h1>未知語処理の定義</h1>
<h2>概要</h2>
<p>未知語処理(辞書に載っていない単語の形態素解析の処理)についてユーザが再定義できます。</p>
<h2>設定ファイル</h2>
<p>配布辞書のディレクトリにある char.def と unk.def という2つのファイル
を変更します.</p>
<h3>char.def</h3>
<p>未知語処理のルールです. <a href="learn.html">こちら</a>を御覧ください.
</p>
<h3>unk.def</h3>
<p>未知語に対する品詞列のテーブルです. <a href="learn.html">こちら</a>を
御覧ください. </p>
<h2>ケーススタディ</h2>
<h3>数字の連続を1つの形態素とする</h2>
<ul>
<li>辞書 (*.csv ファイル)から数字のエントリを削除します。
ipadic の場合は、Noun.number.csv の中から、アラビア数字のエントリを消去します。
<li>char.def を修正し、数字の連続が未知語になるようにします。
<pre>
..
NUMERIC 1 1 0
..
</pre>
<li>unk.def を修正し、数字のコストを小さくします。
4カラム目のコスト値を 0以下の小さい値に設定します。
<pre>
NUMERIC,1204,1204,0,名詞,数,*,*,*,*,*
</pre>
<li>辞書をコンパイルします。
<pre>
% /usr/local/libexec/mecab/mecab-dict-index
</pre>
</ul>
<h3>ASCII 文字列は、スペース/タブのみで分割する (kakasiと同一動作)</h3>
<ul>
<li>辞書 (*.csv ファイル)からアスキー文字列を含むのエントリを削除します。
<li>char.def を修正し、スペース、記号を除く文字を同一字種(ASCII)にマッピ
ングします。他のエントリも同時にチェックし、0x0021..0x007E の領域を
他の字種にマッピングしないようにしてください。
<pre>
ASCII 1 1 0
0x0021..0x007E ASCII
</pre>
<li>unk.def を修正し、ASCIIのコストを小さくします。
4カラム目のコスト値を 0以下の小さい値に設定します。
<pre>
ASCII,1192,1192,0,名詞,サ変接続,*,*,*,*,*
</pre>
<li>辞書をコンパイルします。
<pre>
% /usr/local/libexec/mecab/mecab-dict-index
</pre>
</ul>
</body>
</html>