is text classification • 入出力を定義 Defining input and output • データを読み込む Reading data • DatasetReaderを実装 Making a DatasetReader • Modelを構築 Building your model • Modelを実装 Implementing the model - the constructor Implementing the model - the forward method AllenNLP を用いたテキストの分類について説明 テキスト分類について簡単に説明した後、 映画のレビューが肯定的な感情を表しているか 否定的な感情を表しているかを判断する分類器を実装 AllenNLP について > ことはじめ > 学習・予測 > API 化 > Registrable 機構 > オレオレ Subcommand
txt, csv, json) から入出力の 仕様に合うよう Instance に変換する役割 # Input text: TextField # Output label: LabelField I like this movie a lot! [TAB] positive This was a monstrous waste of time [TAB] negative AllenNLP is amazing [TAB] positive Why does this have to be so complicated? [TAB] negative This sentence expresses no sentiment [TAB] neutral • 生データは以下のような形式を仮定: [text] [TAB] [label] AllenNLP について > ことはじめ > 学習・予測 > API 化 > Registrable 機構 > オレオレ Subcommand
Training the model with your own script • allennlp trainによるモデルの学習 Training the model with your own script • モデルの評価 Evaluating the model • ラベルのない入力に対する予測 Making predictions for unlabeled data テキスト分類モデルを学習し、新しい入力に対して予測させる2通りの方法を説明します • 自分でスクリプトを書いてDatasetReaderとModelを構築し、学習ループを実行する方法 • 設定ファイルを書いて allennlp train コマンドを使う方法 AllenNLP は allennlp train コマンドを使うことでさらに強力な実験PDCAサイクルを実現します! スクリプトを書くなら pytorch lightning とかでもいいのでは?とも思います😂 AllenNLP について > ことはじめ > 学習・予測 > API 化 > Registrable 機構 > オレオレ Subcommand
について > ことはじめ > 学習・予測 > API 化 > Registrable 機構 > オレオレ Subcommand $ allennlp --help 2022-07-13 22:12:44,209 - INFO - allennlp.common.plugins - Plugin my_project available usage: allennlp [-h] [--version] ... Run AllenNLP optional arguments: -h, --help show this help message and exit --version show program's version number and exit Commands: train Train a model. evaluate Evaluate the specified model + dataset(s). predict Use a trained model to make predictions. ... hello-subcommand This is the first custom subcommand $ allennlp hello-subcommand --message world! 2022-07-13 22:09:51,665 - INFO - allennlp.co… Hello world! 実際に実行すると...
argparse.ArgumentParser: description = "custom subcommand for just say hello with your message" # create subparser from the parser subparser = parser.add_parser( self.name, description=description, help="This is the first custom subcommand", ) # add arguments subparser.add_argument("--message", type=str, default="world") # set the function to be called when this subcommand is executed. subparser.set_defaults(func=lambda args: hello_function(msg=args.message)) return subparser • my_project/commands/hello_ subcommand 以下のファイルを実装 Subcommand を元に オレオレサブコマンドを実装 (3) 53 AllenNLP について > ことはじめ > 学習・予測 > API 化 > Registrable 機構 > オレオレ Subcommand my_project/commands/hello _subcommand 📝 __init__.py 📝 function.py 📝 sub_command.py def hello_function(msg: str) -> None: print(f"Hello {msg}") sub_command.py: Registrable な Subcommand を継承して 必要なメソッドをオーバーライド function.py: サブコマンドのロジックを実装