工具篇Flair之使用预训练模型教程
2019-01-17 15:36
946 查看
版权声明:转载请注明出处,谢谢~~ https://blog.csdn.net/m0_37306360/article/details/86525530
更多实时更新的个人学习笔记分享,请关注:
知乎:https://www.zhihu.com/people/yuquanle/columns
微信订阅号:AI小白入门
ID: StudyForAI
Flair工具使用教程
- 教程二: 如何使用预先训练的模型标记您的文本。
- 教程地址:https://github.com/zalandoresearch/flair/blob/master/resources/docs/TUTORIAL_2_TAGGING.md
使用预训练模型进行标记
-
让我们使用预先训练的模型进行命名实体识别(NER)。 该模型通过英语CoNLL-03任务进行训练,可识别4种不同的实体类型。
-
使用tagger的predict()方法。 这会将预测标签添加到句子中的标记中。
from flair.models import SequenceTagger tagger = SequenceTagger.load('ner') sentence = Sentence('George Washington went to Washington .') # predict NER tags tagger.predict(sentence) # print sentence with predicted tags print(sentence.to_tagged_string()) George <B-PER> Washington <E-PER> went to Washington <S-LOC> .
- 许多序列标记方法注释由多个单词组成,例如我们的例句中的“George Washington”。 您可以直接获得这样的跨度标记句子,如下所示:
for entity in sentence.get_spans('ner'): print(entity) PER-span [1,2]: "George Washington" LOC-span [5]: "Washington"
这表明“乔治华盛顿”是一个人(PER),“华盛顿”是一个位置(LOC)。
目前提供以下预训练模型:
- 您可以通过SequenceTagger类的load()方法来选择加载的预训练模型。
语义框架检测
-
对于英语,现在还提供一个预训练模型,用于检测文本中的语义框架,使用Propbank 3.0框架进行训练。
-
这为框架提供了一种词义消歧方法
例子:
# load model tagger = SequenceTagger.load('frame') # make German sentence sentence_1 = Sentence('George returned to Berlin to return his hat .') sentence_2 = Sentence('He had a look at different hats .') # predict NER tags tagger.predict(sentence_1) tagger.predict(sentence_2) # print sentence with predicted tags print(sentence_1.to_tagged_string()) print(sentence_2.to_tagged_string()) George returned <return.01> to Berlin to return <return.02> his hat . He had <have.LV> a look <look.01> at different hats .
正如我们所看到的,框架检测器在句子1中区分单词“return”的两个不同含义。 'return.01’表示返回某个位置,而’return.02’表示返回某个位置。
类似地,在句子2中,框架检测器找到一个轻音动词结构,其中’have’是轻动词。
标记句子列表
-
通常,您可能希望标记整个文本语料库。 在这种情况下,您需要将语料库拆分为句子并将Sentence对象列表传递给.predict()方法。
-
例如,您可以使用segtok的句子拆分器来拆分文本:
-
使用.predict()方法的mini_batch_size参数,可以设置传递给标记器的批次的大小。
# your text of many sentences text = "This is a sentence. This is another sentence. I love Berlin." # use a library to split into sentences from segtok.segmenter import split_single sentences = [Sentence(sent, use_tokenizer=True) for sent in split_single(text)] # predict tags for list of sentences tagger: SequenceTagger = SequenceTagger.load('ner') tagger.predict(sentences)
相关文章推荐
- 工具篇Flair之训练模型教程
- MXNet官方文档教程(4):使用预训练好的模型
- 工具篇Flair之使用加载语料库教程
- 工具篇Flair之使用词向量教程
- (更新视频教程)Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型
- 工具篇Flair之优化模型教程
- MXNet官方文档中文版教程(8):使用预训练模型预测
- 韩顺平_php从入门到精通_视频教程_第13讲_选择器使用细节_块元素和行内元素_盒子模型_盒子模型经典应用①_学习笔记_源代码图解_PPT文档整理
- ASP.NET MVC 教程 - 使用实体框架创建模型类(C#)
- 使用Genism进行词向量训练:教程版
- 最简单的方式使用Discriminatively Trained Deformable Part Models训练自己的模型
- 使用判别训练的部件模型进行目标检测 Object Detection with Discriminatively Trained Part Based Models
- TensorFlow教程03:针对机器学习初学者的MNIST实验——回归的实现、训练和模型评估
- caffe+python 使用训练好的VGG16模型 对 单张图片进行分类,输出置信度
- DedeCMS自定义模型使用教程
- Libgdx New 3D API 教程之 -- 使用Libgdx加载模型
- [Andriod官方训练教程]使用Fragment创建一个动态的UI之与其他Fragments进行交互
- Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- PowerDesigner 业务处理模型( BPM ) 说明 及Enterprise Architect使用教程
- MxNet教程:使用一台机器训练1400万张图片