そのため、モフォロジーモジュールのベース/ディクショナリを、既に使用可能なデータと統計的方法を使用して入力する興味深い方法について話すことができるようになりました。
私たちが持っています:
- Zalizniakの94,000のほぼ300万語の語形
- 文法的な所属に関する情報(性別、数、アニメーションなど)を含む52,000の新しい単語のベース
- Rubyインタープリター
- 仕事の後の空き時間
- モジュールベースを新しい単語のパラダイムで補完する必要性(標準形式のみがあります)
統計的手法を使用してみましょう(または誰かが擬似統計的と言うことができます):
1.まず、既存のベースから各単語のパラダイム終了パターンのベースを形成します。 与えられたデータの例は、おそらくどの説明よりも視覚的です。 正規形の単語と終了モデルとの関係の記録は次のようになります。
...
abbey | 15 | <...単語の標準形に関するすべての文法情報...>
abbey | 20 | <...単語の標準形の文法情報...>
...
ここで、15と20は終了モデル番号です。
卒業モデルの記録は次のようになります。
...
---
15
i | <...単語の標準形の文法情報...>
ay | <...単語の正規形の文法情報...>
th | <...単語の正規形の文法情報...>
すなわち| <...単語の正規形の文法情報...>
ワウ| <...単語の正規形の文法情報...>
oh | <...単語の標準形の文法情報...>
ワウ| <...単語の正規形の文法情報...>
それら| <...単語の正規形の文法情報...>
ohm | <...単語の正規形の文法情報...>
...
および| <...単語の正規形の文法情報...>
---
...
2.その後、単語の構造に対する終了モデルの依存関係について、利用可能な単語の再分析を開始します。 これを行うために、音節に分割します(このアルゴリズムの正しい動作についてはまだ話せませんが、単純な場合は多少なりとも動作します-「Landsknecht」などのオプションは考慮しません)。 主なことは、既存の単語の分析と新しい単語の生成という、アルゴリズムの両方のフェーズで同じアルゴリズムが使用されることです。
私の意見では、これはロシア語の依存関係をより自然に表現するため、n-grammを使用する代わりに音節を意図的に選択しました。
そのため、単語を音節に分割し、逆の順序で番号を付け、データベースに書き込みます(そのようなレコードがデータベースにも存在する場合は、利用可能なデータと組み合わせます)。
その結果、このようなテーブル(多くのレコード)を取得します。
レコードID | 音節 | 単語の音節位置 | 終了型番 | 類似の組み合わせの数(音節/位置/終了モデル) |
16 | ba | 2 | 10 | 29日 |
16 | ジャール | 1 | 10 | 3 |
16 | ny | 0 | 10 | 5609 |
3.最後に、同じアルゴリズムで新しい単語を音節に分割し、音節/位置/終了パターンの数を確率として解釈し、最後の音節から最初の単語まで(単語の先頭から先頭まで)重みを減らすコードを作成します)可能な終了パターンを計算します。
結果:
- 1000個の任意の新しい単語のサンプルのパラダイムを分析した結果、正しいパラダイムの85%。
- 単語の間違ったパラダイムの15%は、古いセットでは「異常な」音節のシーケンスです。 スミレ -> スミレ 、 スミレ...
- ほぼ200万の単語形式による単語形式のベースの増加。