NLP项目实践——中文序列标注Flat Lattice代码解读、运行与使用_yangjie_word_char_mix.txt_常鸿宇的博客-CSDN博客
论文阅读《FLAT:Chinese NER Using Flat-Lattice Transformer》_flat论文_LawsonAbs的博客-CSDN博客 Flat-Lattice-Transformer模型源码测试_ontonote4ner_Dongxue_NLP的博客-CSDN博客
运行 python flat_main.py --dataset clue
1.根据已有代码,添加了
elif args.dataset == 'clue':datasets, vocabs, embeddings = load_clue2020(clue_2020_ner_path, yangjie_rich_pretrain_unigram_path,yangjie_rich_pretrain_bigram_path,_refresh=refresh_data, index_token=False,train_clip=args.train_clip,_cache_fp=raw_dataset_cache_name,char_min_freq=args.char_min_freq,bigram_min_freq=args.bigram_min_freq,only_train_min_freq=args.only_train_min_freq)
2.gbk问题就写encoding=‘utf-8’
3.invalid argument:因为cacahe文件夹里要读取的一个文件名里有冒号,所以在flat_main.py下
raw_dataset_cache_name = os.path.join('cache', args.dataset +'_trainClip_{} '.format(args.train_clip)+ 'bgminfreq_{} '.format(args.bigram_min_freq)+ 'char_min_freq_{} '.format(args.char_min_freq)+ 'word_min_freq_{} '.format(args.word_min_freq)+ 'oy_train_m_fq{} '.format(args.only_train_min_freq)+ 'number_norm{} '.format(args.number_normalized)+ 'load_dataset_seed{} '.format(load_dataset_seed))中间略过cache_name = os.path.join('cache', (args.dataset + '_lattice' + '_only_train_{} ' +'_trainClip_{} ' + '_norm_num:{} '+ 'char_min_freq{} ' + 'bigram_min_freq{} ' + 'word_min_freq{} ' + 'oy_train_m_fq{}'+ 'number_norm{} ' + 'lexicon_{} ' + 'load_dataset_seed_{} ').format(args.only_lexicon_in_train,args.train_clip, args.number_normalized, args.char_min_freq,args.bigram_min_freq, args.word_min_freq, args.only_train_min_freq,args.number_normalized, args.lexicon_name, load_dataset_seed))
print('cache_name 名字鹿丸')
这里把文件命名改了,冒号全去掉
4.若出现enconding type的错误,注意看自己用的什么数据集,比如clue,就改成bio。
NER 原理及 TENER 模型搭建_tener模型_xiedelong的博客-CSDN博客
5.flat_main.py 因为默认设置就是ues bert == 1,所以这里把
fastNLP_module_V1 会引用一个BertModel,会出错,之后再看
最后clue数据集的结果
直接参数设置为msra就行
1.原代码的load_msra_without_dev没有这个函数,用load_msra_ner_1,注意其中的train_path改成train_dev.char.bmes。不然会报错
2.encodingtype改成bioes
3.因为运行msra数据集时,有些句子长度大于512,所以设置了
auto_truncate=True
4项目内的msra数据集有问题,句子过长,参考最上面的博客重新下载,有从bio转成bmeso的代码。
3.RESUME数据集
1.encodingtype是 ‘bmeso’
这是在服务器上跑出来的结果