FLAT(Flat-Lattice-Transformer)代码实现

本人在自己实验室服务器上进行实现,供大家参考。

源码地址:

https://github.com/LeeSureman/Flat-Lattice-Transformer

运行环境的各类包版本

Python             3.7.8
blis               0.4.1
catalogue          1.0.0
certifi            2020.6.20
cffi               1.14.0
chardet            3.0.4
click              7.1.2
cymem              2.0.3
docopt             0.6.2
FastNLP            0.5.0
fitlog             0.3.2
Flask              1.1.2
idna               2.10
importlib-metadata 2.0.0
itsdangerous       1.1.0
Jinja2             2.11.2
joblib             0.16.0
MarkupSafe         1.1.1
mkl-fft            1.2.0
mkl-random         1.1.1
mkl-service        2.3.0
murmurhash         1.0.2
nltk               3.5
numpy              1.19.1
olefile            0.46
Pillow             7.2.0
pip                20.2.3
plac               1.1.3
preshed            3.0.2
prettytable        0.7.2
pycparser          2.20
pytz               2020.1
regex              2020.7.14
requests           2.24.0
setuptools         49.6.0.post20200917
six                1.15.0
spacy              2.3.2
srsly              1.0.2
thinc              7.4.1
torch              1.2.0
torchvision        0.4.0a0+6b959ee
tqdm               4.49.0
urllib3            1.25.10
wasabi             0.8.0
Werkzeug           1.0.1
wheel              0.35.1
zipp               3.2.0

将预训练权重放在相对应的文件夹路径下
下面是数据集

/home/lgyao/Flat-Lattice-Transformer-master/remote-home/xnli/data/corpus/sequence_labelling/chinese_ner/ResumeNER

下面是预训练权重

/home/lgyao/Flat-Lattice-Transformer-master/remote-home/xnli/data/pretrain/chinese

在anaconda创建了自己的ner运行环境,首先进入环境:

source activate ner
cd Flat-Lattice-Transformer-master
python preprocess.py
cd V0 (without Bert) / V1 (with Bert)
python flat_main.py --dataset <dataset_name> (ontonotes, msra, weibo or resume)

如果要训练resume数据集,则直接

python flat_main.py --dataset resume

在这里插入图片描述

这部分出现的bug,debug的方法如下。

python flat_main.py --dataset <dataset_name> (ontonotes, msra, weibo or resume)
-bash: 未预期的符号 `newline’ 附近有语法错误

python flat_main.py --dataset ontonotes

还会遇到一个问题:
weibo数据集的命名和运行文件中的命名不一致,这个只要改成相同的即可。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 平面格变换器(Flat Lattice Transformer)是一种用于自然语言处理的神经网络模型,它是基于Transformer模型的改进版本。与传统的Transformer模型不同,平面格变换器使用平面格结构来表示输入和输出序列,这种结构可以更好地捕捉序列中的局部依赖关系。平面格变换器在机器翻译、文本分类、问答系统等任务中取得了很好的效果。 ### 回答2: Flat-lattice-transformer 是一种新型的序列建模技术,它是基于已有的transformer模型而进行改良升级所得到的。Flat-lattice-transformer在序列任务中具有极强的建模能力,在各种语言模型、机器翻译、文本分类等自然语言处理任务中表现优异。 Flat-lattice-transformer的主要思想是将传统的句子表示构建转换成一种扁平化的结构,从而解决了原来transformer模型中无法处理较长句子的问题。Flat-lattice-transformer将输入序列转换成一个图,将每个单词作为结点,并根据它们之间的依赖关系建立边,得到一个扁平的表示。这样做的好处是可以在不损失重要信息的前提下,缩小模型的空间复杂度,使其能够处理更长的序列。 构建这样一个扁平的图结构需要进行一系列的预处理和转换,其中最重要的是将输入的序列转换成一个有限状态自动机(Finite State Machine,FSM),然后将该自动状态转换成一个有向图。在构建图结构之后,Flat-lattice-transformer还会对其进行一定的拓扑排序和优化,以便在后续处理中更加高效地搜索图的信息。 最终的输出是一个矩阵,其中每个元素代表了一个状态下输出的结果概率,然后根据这个矩阵来计算输入序列的概率。 Flat-lattice-transformer在一些自然语言处理任务中已经取得了优异的成果,而且其对于长句建模和处理的能力更为突出,成为了自然语言处理领域中一个备受关注的技术。 ### 回答3: Flat-lattice-transformer是指一种基于transformer模型的语音识别系统。它是由研究人员提出的一种新型语音识别架构,用于解决传统语音识别系统中困扰人们已久的问题。 传统的语音识别系统通常采用深度神经网络(DNN)或循环神经网络(RNN)进行声学建模。这些模型通常使用帧级别的信息来预测每个音素的输出结果。然而,由于音素之间存在连续性和上下文依赖性,这种方法往往会导致误识别率较高。 Flat-lattice-transformer采用transformer作为声学建模器,从而利用transformer的自注意力机制学习多级别上下文信息,并能够直接预测音素序列,而无需使用基于帧的分类器。另外,该模型引入统一的flat lattice生成机制,将声学特征和语言学知识进行融合,使得模型具备更好的能力来解决上下文依赖性和连续性的问题,从而实现了更高的识别精度。 Flat-lattice-transformer还具有许多其他优点。例如,与传统的基于标注的端到端语音识别系统相比,它不需要任何语言标注信息,因此可以避免标注数据的稀缺性和昂贵的标注成本。此外,该系统还可以在训练数据较少的情况下实现较高的识别性能,这为许多实际应用提供了便利和可能性。 总的来说,Flat-lattice-transformer是一种比传统语音识别系统更优秀的语音识别架构。它的出现为语音识别领域带来了新的思路和技术,同时也为我们提供了更多解决语音识别问题的可能性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值