idNet
1.0.0
このパッケージは、Kerasを使用して構築されたマルチレイヤーパーセプトロンを使用して、言語識別( LID )および方言識別( DID )のための一般化されたアーキテクチャをサポートしています。 DIDは、 Scikit-Learnを使用して線形SVM分類器もサポートしています。
モデルをロードするには:
from idNet import idNet_Enrich
lid = idNet_Enrich("Path to model file", s3_bucket)
did = idNet_Enrich("Path to model file", s3_bucket)
S3_Bucketは、オプションのS3バケットを含むSTRを使用してモデルをロードします。モデルのファイル名には、必要なプレフィックスが含まれている必要があります。
蓋モデルがロードされると、次のプロパティがあります。
| 方法 | 説明 |
|---|---|
| lid.n_features | モデルの機能の数(つまり、ビンをハッシュする) |
| lid.n_classes | モデルの言語数 |
| lid.lang_mappings | {"iso_code": "Language_name"}すべてのISO 639-3コードのマッピングの辞書 |
| lid.langs | 現在のモデルに存在する言語のISO 639-3コードのリスト |
DIDモデルがロードされると、次のプロパティがあります。
| 方法 | 説明 |
|---|---|
| did.n_features | モデルの学習に使用される文法の機能の数 |
| did.n_classes | モデルの国の数 |
| did.country_mappings | {"iso_code": "country_name"}使用されるすべての国コードのマッピングの辞書 |
| did.countries | 現在のモデルに存在する地域の方言(国レベル)の国コードのリスト |
ロードされたモデルは、次のタスクを実行します。
| 方法 | 説明 |
|---|---|
| lid.predict(データ) | 文字列または個々の文字列の配列を取得します。予測言語コードの配列を返します |
| did.predict(data) | 文字列または個々の文字列の配列を取得します。予測された国コードの配列を返します |
注:モデルのファイル名は、「.did "/"。蓋 "と「.mlp"/"。svm」を含める必要があります。この情報はモデルタイプを決定するために使用されるためです。
新しいモデルをトレーニングするには、トレーニングデータを準備する必要があります。このプロセスは自動化されています。道順とスクリプトについては、 data_didおよびdata_lidディレクトリを参照してください。
from idNet import idNet_Train
id = idNet_train()
| 口論 | タイプ | 説明 |
|---|---|---|
| タイプ | (str) | 言語の識別で作業するか、方言の識別を扱うか |
| 入力 | (str) | 入力フォルダーへのパス |
| 出力 | (str) | 出力フォルダーへのパス |
| S3 = false | (ブール) | Trueの場合は、boto3を使用してS3バケットと対話します |
| s3_bucket = "" | (str) | S3バケット名は文字列として |
| ニックネーム= "言語" | (str) | モデルの保存 /読み込みのニックネーム |
| divide_data = true | (ブール) | 本当なら、データセットのクロール。偽の場合は、ロードするだけです |
| test_samples = 20 | (int) | 各クラスのテストに使用するファイルの数 |
| しきい値= 100 | (int) | 言語/国がモデルに含まれる前に必要なファイルの数 |
| samples_per_epoch = 5 | (int) | トレーニングエポックごとに使用するサンプルの数 |
| 言語= "" | (str) | そうであったため、現在のモデルの言語を指定します |
| lid_sample_size = 200 | (int) | ふたの場合、サンプルごとに許可する文字の数 |
| did_sample_size = 1 | (int) | そうした、100ワードのサンプルの数を結合する |
| preannotate_cxg = false | (ブール) | そうした、真の濃縮とすべてのcxgベクターを保存する場合 |
| preannotated_cxg = false | (ブール) | そうであった場合、Trueが事前に豊富なCXGベクターをロードするだけです |
| cxg_workers = 1 | (int) | 事前に濃縮データセットの場合、使用する労働者の数は |
| class_constraints = [] | (STRのリスト) | クラス数を制約するオプション |
| merge_dict = {} | (dict) | オリジナル:新しい名前キー |
id.train()
| 口論 | タイプ | 説明 |
|---|---|---|
| model_type = "mlp" | (str) | MLPまたはSVM |
| lid_features = 524288 | (int) | 許可する文字n-gram機能の数、ハッシュのみ |
| lid_ngrams =(1,3) | (INTのタプル) | n-gramsからハッシュへの範囲 |
| did_grammar = ".grammar.p" | (str) | 注釈に使用するC2XG文法の名前 |
| c2xg_workers = 1 | (int) | そうした、C2XG濃縮の労働者の数 |
| MLP_SIZES =(300、300、300) | (INTのタプル) | サイズとレイヤー数。たとえば、それぞれ300個のニューロンで3層 |
| Cross_val = false | (ブール) | 保有テストセットではなく、相互検証を使用するかどうか |
| ドロップアウト= 0.25 | (フロート) | 各レイヤーに適用するドロップアウトの量 |
| activation = "lelu" | (str) | 活性化のタイプ;名前をケラスに渡すだけです |
| optimizer = "sgd" | (str) | 最適化アルゴリズムのタイプ。名前をケラスに渡すだけです |