forked from taku910/mecab
-
-
Notifications
You must be signed in to change notification settings - Fork 15
/
format.html
270 lines (217 loc) · 5.81 KB
/
format.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
<!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: Yet Another Japanese Dependency Structure
Analyzer</title>
<link type="text/css" rel="stylesheet" href="mecab.css">
</head>
<body>
<h1>出力フォーマット</h1>
<h2>概要</h2>
<p>MeCab は, ChaSen と同様,
出力のフォーマットを比較的自由に再定義することができます.
また, 設定ファイルにフォーマットを複数記述しておき,
実行時にそれらを 切り変えることが可能です.
これは, MeCab 独自の機能です.</p>
<h2>出力フォーマットの指定</h2>
<p>以下の
3つ出力フォーマットを変更することができます.</p>
<ul>
<li>node: 1つの形態素を出力, デフォルトは空文字</li>
<li>unk: 1つの未知語形態素を出力, デフォルトは node と同一フォーマット</li>
<li>bos: 形態素解析の結果に先だって出力 (header 的役割), デフォルトは空文字</li>
<li>eos: 形態素解析の結果の後に出力 (footer 的役割), デフォルトは "EOS\n"</li>
<li>eon: N-best出力で, N-Bestの出力が終了したときに出力, デフォルトは空文字列</li>
</ul>
<p>明示的に指定されない場合,
それぞれのデフォルト文字列が使用されます.</p>
<p>これらは, 以下の 2つの方法で指定します.</p>
<ul>
<li>コマンドラインから
<pre>
% mecab --node-format=STR --bos-format=STR --eos-format=STR --unk-format=STR --eon-format=STR
</pre>
</li>
<li>mecabrc に記述する場合
<p>任意の文字列 KEY を使い, mecabrc
に以下のように定義.</p>
<pre>
node-format-KEY = STR
unk-format-KEY = STR
eos-format-KEY = STR
bos-format-KEY = STR
eon-format-KEY = STR
</pre>
<p>この KEY をコマンドラインから呼び出す.</p>
<pre>
% mecab -Okey
</pre>
</li>
</ul>
<h2>出力フォーマット</h2>
<table>
<tr class="odd">
<td>%s</td>
<td>形態素種類 (0: 通常, 1: 未知語, 2:文頭, 3:文末)
</td>
</tr>
<tr class="even">
<td>%S</td>
<td>入力文</td>
</tr>
<tr class="odd">
<td>%L</td>
<td>入力文の長さ</td>
</tr>
<tr class="even">
<td>%m</td>
<td>形態素の表層文字列</td>
</tr>
<tr class="odd">
<td>%M</td>
<td>形態素の表層文字列, ただし空白文字も含めて出力 (%pS を参照のこと)</td>
</tr>
<tr class="even">
<td>%h</td>
<td>素性の内部 ID</td>
</tr>
<tr class="odd">
<td>%%</td>
<td>% そのもの</td>
</tr>
<tr class="even">
<td>%c</td>
<td>単語生起コスト</td>
</tr>
<tr class="odd">
<td>%H</td>
<td>素性 (品詞, 活用, 読み) 等を CSV
で表現したもの</td>
</tr>
<tr class="even">
<td>%t</td>
<td>文字種 id </td>
</tr>
<tr class="odd">
<td>%P</td>
<td>周辺確率 (-l2 オプションを指定したときのみ有効)</td>
</tr>
<tr class="even">
<td>%pi</td>
<td>形態素に付与されるユニークなID</td>
</tr>
<tr class="odd">
<td>%pS</td>
<td>もし形態素が空白文字列で始まる場合は, その空白文字列を表示 %pS%m と %M は同一</td>
</tr>
<tr class="even">
<td>%ps</td>
<td>開始位置</td>
</tr>
<tr class="odd">
<td>%pe</td>
<td>終了位置</td>
</tr>
<tr class="even">
<td>%pC</td>
<td>1つ前の形態素との連接コスト</td>
</tr>
<tr class="odd">
<td>%pw</td>
<td>%c と同じ</td>
</tr>
<tr class="even">
<td>%pc</td>
<td>連接コスト + 単語生起コスト (文頭から累積)</td>
</tr>
<tr class="odd">
<td>%pn</td>
<td>連接コスト + 単語生起コスト (その形態素単独, %pw + %pC)</td>
</tr>
<tr class="even">
<td>%pb</td>
<td>最適パスの場合 *, それ以外は ' '</td>
</tr>
<tr class="odd">
<td>%pP</td>
<td>周辺確率 (-l2 オプションを指定したときのみ有効)</td>
</tr>
<tr class="even">
<td>%pA</td>
<td>blpha, forward log 確率 (-l2 オプションを指定したときのみ有効)</td>
</tr>
<tr class="odd">
<td>%pB</td>
<td>beta, backward log 確率 (-l2 オプションを指定したときのみ有効)</td>
</tr>
<tr class="even">
<td>%pl</td>
<td>形態素の表層文字列としての長さ, strlen (%m) と同一</td>
</tr>
<tr class="odd">
<td>%pL</td>
<td>形態素の表層文字列としての長さ, ただし空白文字列も含む, strlen(%M) と同一</td>
</tr>
<tr class="even">
<td>%phl</td>
<td>左文脈 id</td>
</tr>
<tr class="odd">
<td>%phr</td>
<td>右文脈 id</td>
</tr>
<tr class="even">
<td>%f[N]</td>
<td>csv で表記された素性の N番目の要素</td>
</tr>
<tr class="odd">
<td>%f[N1,N2,N3...]</td>
<td>N1,N2,N3番目の素性を, "," を
デリミタとして表示</td>
</tr>
<tr class="even">
<td>%FC[N1,N2,N3...]</td>
<td>N1,N2,N3番目の素性を, C を
デリミタとして表示.<br>
ただし, 要素が 空の場合は以降表示が省略される.
(例)F-[0,1,2]</td>
</tr>
<tr class="odd">
<td>\0 \a \b \t \n \v \f \r \\</td>
<td>通常の エスケープ文字列</td>
</tr>
<tr class="even">
<td>\s</td>
<td>' ' (半角スペース)<br>
設定ファイルに記述するときに使用</td>
</tr>
</table>
<h2>例</h2>
<p>
dicrc より抜粋した例
</p>
<pre>
; yomi
node-format-yomi = %pS%f[7]
unk-format-yomi = %M
eos-format-yomi = \n
; simple
node-format-simple = %m\t%F-[0,1,2,3]\n
eos-format-simple = EOS\n
; csv
node-format-csv = %m,%f[7],%f[8],%f[6],%F-[0,1,2,3],%f[4],%f[5]\n
unk-format-csv = %m,%m,%m,%f[6],%F-[0,1,2,3],,\n
eos-format-csv = EOS,,,,,,\n
; ChaSen
node-format-chasen = %m\t%f[7]\t%f[6]\t%F-[0,1,2,3]\t%f[4]\t%f[5]\n
unk-format-chasen = %m\t%m\t%m\t%F-[0,1,2,3]\t\t\n
eos-format-chasen = EOS\n
</pre>
<h2>注意事項</h2>
<p>わかち書き出力 (-Owakati),
デフォルトの出力, 出力ダンプ (-Odump) は
高速性を犠牲にしたく ないために, ハードコーディングされています.</p>
</body>
</html>