总的来说,我是 NER 和 NLP 的新手,我想知道我是否理解了这些材料。例如,我有预训练模型“ner-english-large”。我正在使用一个模型,结果证明该模型没有识别正确的实体。
(在此示例中,“Dsl”未标记为 ORG)
from flair.data import Sentence
from flair.models import SequenceTagger
from flair.data import Corpus
from flair.trainers import ModelTrainer
tagger = SequenceTagger.load("flair/ner-english-large")
sentence = Sentence("Dsl hit 100% success in sales across all the world")
tagger.predict(sentence)
sentence.get_spans('ner')
#output
[]
所以我想改进我的模型。我正在以适当的格式将这句话上传到语料库。
columns = {0 : 'text', 1 : 'ner'}
data_folder = "train"
corpus: Corpus = ColumnCorpus(data_folder, columns)
label_type = 'ner'
label_dict = corpus.make_label_dictionary(label_type=label_type)
然后我正在初始化trainer
tagger = SequenceTagger.load("flair/ner-english-large")
trainer = ModelTrainer(tagger, corpus)
但是在此之后,我对下一步应该做什么有点困惑。在此之前,我尝试train
了方法并且它有效。根据需要识别数据(之前识别不正确)。
trainer.train('fine/taggers/continued_model',
learning_rate=0.01,
mini_batch_size=32,
max_epochs=6)
但我不知道这是正确的方法还是我需要使用fine-tune
?你能解释一下哪种方法更正确吗?