特徴量抽出
Litsea は、各単語境界候補の周辺の局所的なコンテキストを捉えるために文字 n-gram 特徴量を使用します。本章では、AdaBoost・二段構成 stage-1 パイプラインが共有する文字レベルの境界テンプレートと、二段構成の stage-2 タガーが使用する単語レベルのテンプレートの両方を含む、すべての特徴量タイプをカタログ化します。
特徴量カテゴリ
入力の各文字位置 i について、セグメンタは文字、その種別コード、および前回の境界判定からなるスライディングウィンドウから特徴量を抽出します。
基本特徴量(38 個)
| Category | IDs | 説明 | Window |
|---|---|---|---|
| UW (Unary Word) | UW1–UW6 | 位置 i-3 から i+2 の個々の文字 | 6 |
| BW (Bigram Word) | BW1–BW3 | 隣接する文字ペア | 3 |
| UC (Unary Char-type) | UC1–UC6 | 位置 i-3 から i+2 の文字種コード | 6 |
| BC (Bigram Char-type) | BC1–BC3 | 隣接する種別コードペア | 3 |
| TC (Trigram Char-type) | TC1–TC4 | 種別コードのトリプル | 4 |
| UP (Unary Previous-tag) | UP1–UP3 | 直前 3 つの境界判定 | 3 |
| BP (Bigram Previous-tag) | BP1–BP2 | 境界判定のペア | 2 |
| UQ (Unary tag+type) | UQ1–UQ3 | 境界判定と種別コードの組み合わせ | 3 |
| BQ (Bigram tag+type) | BQ1–BQ4 | 判定と種別コードのバイグラム組み合わせ | 4 |
| TQ (Trigram tag+type) | TQ1–TQ4 | 判定と種別コードのトライグラム組み合わせ | 4 |
言語固有の特徴量(4 個、日本語と中国語のみ)
| Category | IDs | 説明 | Count |
|---|---|---|---|
| WC (Word+Char-type) | WC1–WC4 | 文字と種別コードの混合特徴量 | 4 |
WC1: 位置 i-1 の文字 + 位置 i の種別コードWC2: 位置 i-1 の種別コード + 位置 i の文字WC3: 位置 i-1 の文字 + 位置 i-1 の種別コードWC4: 位置 i の文字 + 位置 i の種別コード
韓国語と英語に WC がない理由: 韓国語のハングル音節は 2 種類(SN と SF)にのみ分類されるため、WC 特徴量は有用な信号ではなくノイズを追加してしまいます。英語でも同じ結果が直接計測されています: dev split での比較では、38 個のベーステンプレートで単語 F1 98.68%、WC を含む全 42 個で 98.65% でした – 詳細は English を参照してください。
特徴量の総数
| Language | Base | WC | Total |
|---|---|---|---|
| Japanese | 38 | 4 | 42 |
| Chinese | 38 | 4 | 42 |
| Korean | 38 | 0 | 38 |
| English | 38 | 0 | 38 |
単一の真実の源
上記のテンプレート全体は、宣言的なテーブル(packed_model::TEMPLATES –
プレフィックスと、タグ/文字/文字種スロットの順序付きリスト、固定の出力順)として
一度だけ定義されます。両方の特徴量表現がここから導出されます:
- 後述の文字列形式 – 学習データ抽出、コーパス処理、モデルファイルで使用
segment()とsegment_with_pos()の 2 パススコアラーが使用する 整数インデックスのスコアリングテーブル群 – モデルファイルはロード時に この形式へコンパイルされる (予測パイプラインを参照)
したがって、テンプレートの追加や並び替えはすべての消費者を一貫して変更します。 テーブルの順序は文字列ライターの出力順を定義しており、モデルファイルと学習データが これに依存しています。
特徴量の形式
各特徴量は PREFIX:VALUE の形式の文字列として表現されます:
UW4:は ← The character at position i is "は"
UC4:I ← The type code at position i is "I" (Hiragana)
BW2:はテ ← The bigram at position i-1..i is "はテ"
BC2:IK ← The type bigram is Hiragana + Katakana
UP3:B ← The previous boundary decision was "B" (boundary)
WC1:はK ← Character "は" combined with type "K"
スライディングウィンドウの配置
セグメンタは入力をセンチネル文字でパディングします:
Index: 0 1 2 3 4 5 ... n+2 n+3 n+4 n+5
Chars: B3 B2 B1 c1 c2 c3 ... cn E1 E2 E3
Types: O O O t1 t2 t3 ... tn O O O
Tags: U U U U ? ? ... ?
- B3, B2, B1 – 開始センチネル(パディング)
- E1, E2, E3 – 終了センチネル(パディング)
- O – パディング位置の「Other」種別
- U – 初期位置の「Unknown」タグ
- B – 「Boundary」タグ(単語の開始)
- O – 「Other」タグ(継続)
境界(AdaBoost)パイプラインでは、特徴量は位置 4 から len-4 まで(両端を含む)抽出されます。POS パイプラインでは、segment_with_pos
が最初の単語の品詞を導出するために位置 3(最初の実際の文字)でも予測を行うため、位置 3 でも特徴量が出力されます(#100)。
位置は 4(または 3)から len-4 まで(両端を含む)実行され、i-3 から i+2 の完全なウィンドウが利用可能です。
学習データの形式
extract コマンドは以下の形式で特徴量をファイルに書き出します(コーパス行 これ は テスト です 。 に対する実際の出力です):
-1 BC1:OI BC2:II BC3:II BP1:UU BP2:UU BQ1:UOI BQ2:UII BQ3:UOI BQ4:UII BW1:B1こ ...
1 BC1:II BC2:II BC3:IK BP1:UU BP2:UO BQ1:UII BQ2:UII BQ3:OII BQ4:OII BW1:これ ...
各行には以下が含まれます:
- ラベル(境界の場合
1、非境界の場合-1) - タブ区切りの特徴量文字列。アルファベット順にソートされた順序(テンプレートの出力順ではない)で書き出されるため、各行は
BC1:特徴量から始まる
単語単位の特徴量テンプレート(二段構成)
ここまでは、各境界判定ごとに採点される文字レベルのテンプレート集合です。二段構成の品詞タグ付けの stage-2 単語タガーは、これとは別の無関係なテンプレート集合を採点します。これは litsea::word_features(N_WORD_TEMPLATES = 23)で定義されており、文字位置ごとではなく、すでに分割済みの単語ごとに1行の特徴量を生成します。上記の packed_model::TEMPLATES とは別の宣言的テーブルであり、専用のランタイム packed_two_stage::PackedTwoStageModel へコンパイルされます(予測パイプラインを参照)。
文中の [start, end) の範囲にまたがる単語(w = 表層、n = end - start)について:
| プレフィックス | 値 | 表現 |
|---|---|---|
WS | 単語の表層そのもの | ハッシュ化文字列 |
WL | min(n, 4) | 密配列(単語長) |
FC / LC | 先頭 / 末尾の文字 | ハッシュ化文字 |
ft / lt | 先頭 / 末尾の文字の文字種コード | 密配列(文字種) |
TS | 先頭最大8文字の文字種コード列 | ハッシュ化文字列 |
L1-L3 / R1-R3 | 左/右に距離1-3の文脈文字 | ハッシュ化文字 |
cl1-cl3 / cr1-cr3 | 距離1-3の文脈文字種 | 密配列(文字種) |
LB / RB | 文脈バイグラム(左は距離2+1、右は距離1+2) | ハッシュ化ペア |
P2 / S2 | 先頭 / 末尾の2文字(n >= 2 の単語のみ) | ハッシュ化ペア |
合計23個のテンプレートです。文の範囲外の文脈位置には、文字レベルパイプラインの B1-B3 / E1-E3 パディング(上記参照)と同様に、開始/終了センチネル文字が使用されます。
すべてのテンプレートが毎回の抽出で書き出されるわけではありません。.stage2 特徴量ファイルにどのサブセットが含まれるかは、抽出時の TwoStageFeatureSet(full / balanced / fast)によって制御されます – CLI フラグと各バリアントに含まれるテンプレートについては特徴量の抽出を参照してください。