Flairのtag_dictionaryをハードコーディングで入力
datapath = "/path/to/BIO" # train.tsv, test.tsv, devel.tsvが入っているフォルダ corpus: Corpus = loadCorpus(datapath) tag_type = "ner" tag_dictionary = corpus.make_tag_dictionary(tag_type=tag_type) tag_dictionary.idx2item = [b'<unk>', b'O', b'B-Chemical', b'I-Chemical', b'<START>', b'<STOP>'] #リストで入力 tag_dictionary.item2idx = {b'<unk>':0, b'O':1, b'B-Chemical':2, b'I-Chemical':3, b'<START>':4, b'<STOP>':5} #辞書で入力 embedding_objects: List[TokenEmbeddings] = [] embedding_objects.append(BytePairEmbeddings("en")) embeddings: StackedEmbeddings = StackedEmbeddings(embeddings=embedding_objects) tagger: SequenceTagger = SequenceTagger( hidden_size=256, embeddings=embeddings, tag_dictionary=tag_dictionary, tag_type=tag_type, use_crf=True, ) from flair.trainers import ModelTrainer resultpath = "/path/to/result" trainer: ModelTrainer = ModelTrainer(tagger, corpus) trainer.train( str(resultpath), learning_rate=0.1, mini_batch_size=128, max_epochs=3, patience=5, embeddings_storage_mode="gpu" )
補足
この方法で学習したところ,エラー発生.やはり.make_tag_dictionaryでしか作れないのか...
ディスカッション
コメント一覧
まだ、コメントがありません