ナード戦隊データマン

機械学習と自然言語処理についてのブログ

Kashgari: 固有表現抽出のモデルを簡単に作成するツール

Kashgari1は、Eliyar Ezizによって作成されている、KerasベースのNLPフレームワークです。

なにができるのか

系列ラベリング、テキスト分類のタスクを解くことができます。3種類のEmbeddingをサポートしており、その中にはBERTがあります。

このツールを使う一つの目的は、簡単にBERTを用いたモデリングすることだと思います。

NERのモデルの作成方法

from kashgari.embeddings import BERTEmbedding
from kashgari.tasks.seq_labeling import CNNLSTMModel
from data_generator import create_data #これは私の作成したモジュール
 
if __name__ == "__main__":
    X_train, y_train = create_data(None, "./data/train.txt", "./data/labels.txt", True) #conll形式のデータを読み込む
    X_valid, y_valid = create_data(None, "./data/dev.txt", "./data/labels.txt", True)
    bert_embedding = BERTEmbedding("./multi_cased_L-12_H-768_A-12",
                                   sequence_length=128)
    model = CNNLSTMModel(bert_embedding) #他のモデルもある
    model.build_model(X_train+X_valid, y_train+y_valid)
    model.fit(
        X_train, y_train, X_valid, y_valid
        batch_size=10, epochs=4)
    model.save("model_saved")

コードを見れば説明の必要はないと思います。BERTは、Googleによる多言語モデルを使っています。多言語モデルで訓練することにより、英語だけで訓練したとしても、ある程度は多言語化できます。

考察

拡張固有表現抽出の日本語モデルを訓練してみましたが、あまり精度がでませんでした。

                              precision    recall  f1-score   support
 
               Product_Other       0.00      0.00      0.00       708
                   GOE_Other       0.00      0.00      0.00        37
              Ordinal_Number       0.24      0.31      0.27       934
                         Age       0.11      0.10      0.10       183
                     Percent       0.31      0.42      0.35       348
  International_Organization       0.00      0.00      0.00       141
                 Period_Week       0.00      0.00      0.00        17
                    Academic       0.00      0.00      0.00        49
                     Company       0.00      0.00      0.00       172
                       Sport       0.00      0.00      0.00        29
                       Space       0.00      0.00      0.00        18
                 Animal_Part       0.00      0.00      0.00       390
                      Person       0.01      0.01      0.01       347
           Position_Vocation       0.01      0.00      0.01       834
       Doctrine_Method_Other       0.00      0.00      0.00       504
                       Music       0.00      0.00      0.00        30
                    Clothing       0.00      0.00      0.00        72
                    Railroad       0.00      0.00      0.00         7
                        Date       0.17      0.19      0.18       805
                   Character       0.00      0.00      0.00        32
                     Country       0.18      0.04      0.07       467
                    N_Person       0.06      0.08      0.07       226
              Animal_Disease       0.00      0.00      0.00       141
                      Weight       0.00      0.00      0.00        28
                       Movie       0.00      0.00      0.00        25
                 Title_Other       0.02      0.03      0.02        77
                  Government       0.09      0.08      0.08       213
                     Offense       0.00      0.00      0.00        86
                       Money       0.06      0.12      0.08       185
                       Point       0.00      0.00      0.00        52
                Countx_Other       0.00      0.00      0.00        62
                    Compound       0.00      0.00      0.00        34
                 Period_Time       0.00      0.00      0.00        59
                      Fungus       0.00      0.00      0.00        13
                        Rank       0.00      0.00      0.00        69
          Ethnic_Group_Other       0.00      0.00      0.00        34
          Organization_Other       0.00      0.00      0.00        61
              Occasion_Other       0.00      0.00      0.00        54
          Research_Institute       0.00      0.00      0.00        18
             Domestic_Region       0.00      0.00      0.00        46
                 Period_Year       0.02      0.04      0.02        81
           Corporation_Other       0.00      0.00      0.00        76
                        Book       0.00      0.00      0.00        30
                      Mammal       0.00      0.00      0.00        84
                   Frequency       0.00      0.00      0.00        67
                 Numex_Other       0.00      0.00      0.00        69
           Measurement_Other       0.00      0.00      0.00        34
           Broadcast_Program       0.00      0.00      0.00        48
                 Timex_Other       0.00      0.00      0.00         8
                         Era       0.00      0.00      0.00        19
                  Food_Other       0.00      0.00      0.00       148
                      Weapon       0.00      0.00      0.00        40
                        Plan       0.00      0.00      0.00        82
                     Element       0.00      0.00      0.00         5
                        Time       0.02      0.01      0.02        73
                Nature_Color       0.00      0.00      0.00        56
              N_Organization       0.00      0.00      0.00        45
                       Flora       0.00      0.00      0.00        48
                         Car       0.00      0.00      0.00        33
                  Conference       0.00      0.00      0.00        68
          Public_Institution       0.00      0.00      0.00        27
                 Nationality       0.00      0.00      0.00        37
                    Material       0.00      0.00      0.00        68
              Language_Other       0.00      0.00      0.00         1
                       Train       0.00      0.00      0.00         1
    Natural_Phenomenon_Other       0.00      0.00      0.00        16
          Continental_Region       0.00      0.00      0.00       127
             Physical_Extent       0.00      0.00      0.00        24
              Incident_Other       0.00      0.00      0.00         8
              Printing_Other       0.01      0.01      0.01       129
                    Province       0.23      0.11      0.14        95
                        City       0.24      0.12      0.16        90
                       River       0.00      0.00      0.00         4
                        Dish       0.00      0.00      0.00       116
                    N_Animal       0.00      0.00      0.00         3
                   N_Product       0.01      0.03      0.01       107
                    Religion       0.00      0.00      0.00         6
                         Spa       0.00      0.00      0.00         4
                        Bird       0.00      0.00      0.00        11
                        Drug       0.00      0.00      0.00        27
                 Day_Of_Week       0.00      0.00      0.00        17
                      School       0.00      0.00      0.00        48
                       Class       0.00      0.00      0.00        12
                 Event_Other       0.00      0.00      0.00        39
                     Station       0.00      0.00      0.00        12
                      Volume       0.00      0.00      0.00        13
                  Period_Day       0.00      0.00      0.00        43
                   GPE_Other       0.00      0.00      0.00        30
              Location_Other       0.00      0.00      0.00        25
                Period_Month       0.00      0.00      0.00        30
              Amusement_Park       0.00      0.00      0.00        13
                  School_Age       0.00      0.00      0.00        54
               Facility_Part       0.00      0.00      0.00        16
                         Law       0.00      0.00      0.00        38
                  Flora_Part       0.00      0.00      0.00        32
                      Planet       0.00      0.00      0.00         9
               Sports_League       0.00      0.00      0.00         3
                  N_Facility       0.00      0.00      0.00        23
                         URL       0.03      0.10      0.05        29
                        Fish       0.00      0.00      0.00        20
              Facility_Other       0.00      0.00      0.00        20
                      Treaty       0.00      0.00      0.00        40
                      Insect       0.00      0.00      0.00        12
                      Island       0.00      0.00      0.00        10
           Mollusc_Arthropod       0.00      0.00      0.00         8
                     N_Event       0.00      0.00      0.00        47
           Show_Organization       0.00      0.00      0.00        39
                        Park       0.00      0.00      0.00         4
                 Color_Other       0.00      0.00      0.00         4
                         War       0.00      0.00      0.00         4
                       Email       0.00      0.00      0.00         8
     Pro_Sports_Organization       0.00      0.00      0.00        30
                  Earthquake       0.00      0.00      0.00        11
                       Speed       0.00      0.00      0.00         4
              Multiplication       0.00      0.00      0.00        14
Political_Organization_Other       0.00      0.00      0.00        21
      N_Natural_Object_Other       0.00      0.00      0.00         9
                    Military       0.00      0.00      0.00         8
                       Award       0.00      0.00      0.00         4
            N_Location_Other       0.29      0.08      0.12        25
                    Mountain       0.00      0.00      0.00         3
            Natural_Disaster       0.00      0.00      0.00         9
     Geological_Region_Other       0.00      0.00      0.00         3
                    Magazine       0.00      0.00      0.00         8
                   Newspaper       0.00      0.00      0.00         1
                     Picture       0.00      0.00      0.00         2
                   N_Country       0.00      0.00      0.00        26
                   ID_Number       0.00      0.00      0.00        10
          Living_Thing_Other       0.00      0.00      0.00         8
        Natural_Object_Other       0.00      0.00      0.00        10
                        Road       0.00      0.00      0.00         9
             Political_Party       0.00      0.00      0.00        14
           National_Language       0.00      0.00      0.00         6
                        Game       0.00      0.00      0.00        14
                  Unit_Other       0.00      0.00      0.00         2
              Postal_Address       0.00      0.00      0.00         2
               Periodx_Other       0.00      0.00      0.00         5
                     Airport       0.00      0.00      0.00         9
                        Lake       0.00      0.00      0.00         2
                     Reptile       0.00      0.00      0.00         1
                  Name_Other       0.00      0.00      0.00         1
                   Art_Other       0.00      0.00      0.00         1
               Company_Group       0.00      0.00      0.00         3
                  Money_Form       0.00      0.00      0.00         1
                      Museum       0.00      0.00      0.00         4
                 Temperature       0.00      0.00      0.00         1
                  Rule_Other       0.00      0.00      0.00        15
                   Spaceship       0.00      0.00      0.00         1
     Living_Thing_Part_Other       0.00      0.00      0.00         7
             Sports_Facility       0.00      0.00      0.00         5
                     N_Flora       0.00      0.00      0.00         1
                        Show       0.00      0.00      0.00         1
                         Bay       0.00      0.00      0.00         4
                      Bridge       0.00      0.00      0.00         1
                     Cabinet       0.00      0.00      0.00         1
   Sports_Organization_Other       0.00      0.00      0.00         1
                      County       0.00      0.00      0.00         1
                     Mineral       0.00      0.00      0.00         1
                      Family       0.00      0.00      0.00         1
                Region_Other       0.00      0.00      0.00         3
                         Sea       0.00      0.00      0.00         2
               Vehicle_Other       0.00      0.00      0.00         1
                         Zoo       0.00      0.00      0.00         1
 
                   micro avg       0.10      0.07      0.08     10652
                   macro avg       0.06      0.07      0.06     10652

これは、以下のような理由で精度が出ないのかもしれません:

  1. GoogleのBERTのpre-trainedモデルは日本語への対処能力が低い。
  2. 拡張固有表現はクラスが多すぎる。

実際、単語Embedding + BLSTMCRFモデルでは、以下の精度を出しています。

                              precision    recall  f1-score   support
                   micro avg       0.62      0.50      0.55     10652
                   macro avg       0.54      0.50      0.50     10652

Kashgariモデルになにかバグがある可能性もありますが、People's Daily Ner Corpusで92.20(F1)の精度を出していると報告されています。2

日本語に特化したBERTモデルを事前訓練すれば、精度が上がる可能性はあります。しかし、その場合は「NERの多言語モデル」のようなものは作れません。

参考