一般的なエンティティ抽出コードのエンジニアリング実現フローチャート

 

2つの部分に分かれて、最初の部分は一般的な紹介であり、2番目の部分はコードの私自身の理解です

目次

シーケンスマーキングタスクコード全体のプロセス

実装プロセス

(1)データ前処理:手動ラベルデータをバイオラベル形式データに変換します

(2)モデル構築

   (3)モデルトレーニングとパラメータ調整

  (4)モデルをckpt形式で保存します

  (5)モデルの展開

シーケンスアノテーションタスクコードブロックの解釈

データの前処理

モデル構築


シーケンスマーキングタスクコード全体のプロセス

  • 主にエンティティ抽出プロジェクトに使用されますが、BiLSTM + CRFに基づく他のシーケンスラベリングプロジェクトにも使用されます

実装プロセス

 

(1)データ前処理:手動ラベルデータをバイオラベル形式データに変換します

(2)モデル構築

   (3)モデルトレーニングとパラメータ調整

  • batch_sizeはバッチサイズを設定するために使用され、ローカルコンピューターは通常32に設定されます
  • hidden_​​dimは、非表示レイヤーの寸法を設定するために使用されます
  • lrは、学習率を設定するために使用されます。通常、トレーニングの精度を向上させるのが難しい場合は0.001を選択し始め、最適なモデルをロードし、学習率を前者の1/10に調整して、再度トレーニングします。
  • cudnnlstmは、トレーニングにcudnnlstmを使用するかどうかを選択するために使用されます
  • ドロップアウトパラメーターは、モデルの一般化能力を強化するために使用されます。通常は0.5に設定されます。モデルがトレーニングされ、ckptからpbに変換される場合、ドロップアウトを削除する必要があります。


  (4)モデルをckpt形式で保存します

  (5)モデルの展開

   Java言語を使用してデプロイメントコードを記述します

上記はgitlabの上の紹介を参照しています

シーケンスアノテーションタスクコードブロックの解釈(例として列車の実装を取り上げます)

 

コードの正面玄関はmain.pyにあります

ハイパーパラメータに従って実行するプログラムモードを選択します。モードはtest_ckpt、test_pbで、trainハイパーパラメータのデフォルトはtrainです。

データの前処理

dataPreprocess.pyコードは主に3つのことを行います

1.バイオを回す   

resultIdに従ってmongoデータベースのコンテンツをエクスポートします

データをシーケンスラベル形式に変換すると、保存されるデータ形式は次のようになります。
タグID、タグ結果ID、タグ収集テーブル

2、タグを取得

トレーニングデータによると、oldtagタグ付きのデータに変換されます

3.コンテンツを個別に保存する

cutFileは、numのサイズに応じて、f1、f2、およびf3の3つの部分に分割されます。

モデル構築

main.pyのApplyクラスで列車を確認してください

モデルトレーニングの主な機能

基本的にすべての単語を含むファイルをインポートし、バックアップ用にchar-idおよびid-charの形式にします

次に、load_data関数は

train_data、dev_data、tag2id、id2tag

train_data、dev_dataはトレーニングし、テストセットは単語インデックス-単語文字インデックス-マークインデックスを返します

tag2id、id2tagは(E-proj_name:9)などのタグをシリアル化します

次に、BatchManager関数、戻り値

切り上げて合計ノット数を取得します

-----------ここから、いよいよ事前研修は終わったと思います

次に、テンソルフローセッションを開きます。

モデルを作成し、パラメータを再利用します

モデルモジュールのすべてのビルドレイヤーを確認できます

self.add_placeholders()プレースホルダーを追加
self.lookup_layer_op()機能「単語」を
追加self.bilstm_op()双方向lstmを追加
self.loss_layer_op()損失レイヤーcrfを使用
self.optimizer_op()を定義オプティマ
イザーを定義self.add_summary()概要を追加

次に、モデルをバッチ実行します

次に、実行とリターンを評価します

f1値

次にモデルを保存しました

コンプリート

 

 

 

 

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/weixin_45316122/article/details/108533014