CN109614612A - 一种基于seq2seq+attention的中文文本纠错方法 - Google Patents
一种基于seq2seq+attention的中文文本纠错方法 Download PDFInfo
- Publication number
- CN109614612A CN109614612A CN201811441697.0A CN201811441697A CN109614612A CN 109614612 A CN109614612 A CN 109614612A CN 201811441697 A CN201811441697 A CN 201811441697A CN 109614612 A CN109614612 A CN 109614612A
- Authority
- CN
- China
- Prior art keywords
- character
- layer
- vector
- moment
- lstm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及一种基于seq2seq+attention的中文文本纠错方法,属于数据质量的研究范畴,涉及RNN,双向RNN,LSTM,seq2seq,attention机制等技术领域,主要针对通信设备检修记录,构建seq2seq+attention神经网络模型,采用Adam优化方法进行模型训练,利用已经训练好的模型进行纠错任务。本方法中所用到的神经网络模型可广泛应用于其他领域的文本纠错,在一定程度上避免了模型的重新设计。
Description
技术领域
本发明属于中文文本纠错的技术领域,特别涉及到电力通信管理***中产生的通信设备检修记录的纠错领域。
背景技术
该领域涉及到的主要研究对象,关键技术和实际应用价值主要包括:
电力通信管理***:是作为智能电网重要支撑的电力专用通信网络***,是总部和省公司“两级部署”,总部、分部、省公司、市县公司“四级应用”的通信管理***“SG—TMS”。通过标准化规范化的项目建设以及对***实用化的大力推进,“SG—TMS”已经深度融入数万电力通信专业人员的日常工作中,并且全面采集了数万台设备几年来的建设、运行、管理数据,积累下来的海量电力通信数据和众多外部***数据、公共数据一同形成了开展大数据分析的基础。
设备检修记录:智能电网通信的信息化管理***中已经积累了大量检修数据、方式数据、运行记录数据,其中既有规范的结构化数据如检修类型、执行日期等,也有很多类似运行记录一类的半结构化数据,还有很多类似路由方式描述、“三措一案”文档、图片等非结构化数据。通过对这些过程和结论数据的深入分析与挖掘,可以总结出管理规律,对现有的制度和管理方式进行优化和合理安排。还可以通过大数据手段实现对运行方式、“三措一案”等流程化工作的机器自动初审、对工作记录的自动辅助纠错补缺等智能化功能,降低管理人员劳动强度,提升方式、检修审批效率和记录规范性。
基于字粒度:主要有两个原因:第一,由于设备检修记录中包含错别字或者存在缺失情况,导致分词结果不准确,所以纠错任务不适合在词粒度上进行;第二,在给定固定的词汇表的情况下,基于词语的纠错任务无法处理OOV(out ofvocabulary)的词语。
RNN:RNN是一种序列连接模型,通过网络节点中的循环来捕获动态序列。与标准前馈神经网络不同,RNN可以保留任意长度的上下文窗口的状态信息。虽然RNN很难训练,并且通常包含数百万个参数,但网络架构,优化技术和并行计算方面的最新进展使得它们能够成功地进行大规模学习。
双向RNN:在经典的循环神经网络中,状态是从前往后单向传输的。然而,在有些问题中,当前时刻的输出不仅和之前的状态有关系,也和之后的状态相关。这时就需要双向RNN来解决这类问题。例如,在本发明的文本纠错任务中,预测一个语句中缺失的词语不仅需要根据前文来判断,也需要结合后面的内容,这时双向RNN就可以发挥它的作用。
LSTM:Long Short-Term Memory,是长短期记忆网络。RNN在处理长期依赖(时间序列上距离较远的节点)时会遇到巨大的困难,因为计算距离较远的节点之间的联系时会涉及雅可比矩阵的多次相乘,这会带来梯度消失或者梯度***的问题。为了解决此问题,SeppHochreiter等人[3]提出了LSTM模型,通过增加输入门限,遗忘门限和输出门限,使得自循环的权重是变化的,这样一来在模型参数固定的情况下,不同时刻的积分尺度可以动态改变,从而避免了梯度消失或者梯度膨胀的问题。
Seq2seq:seq2seq是一个Encoder–Decoder结构的网络,它的输入是一个序列,输出也是一个序列,Encoder中将一个可变长度的信号序列变为固定长度的向量表达,Decoder将这个固定长度的向量变成可变长度的目标的信号序列。
Attention机制:采用编码器-解码器结构的神经网络模型需要将输入序列中的必要信息表示为一个固定长度的向量,而当输入序列很长时则难以保留全部的必要信息,尤其是当输入序列的长度比训练数据集中的更长时。DzmitryBahdanau等人使用attention机制每生成一个词时都会在输入序列中找出一个与之最相关的词集合,之后模型根据当前的上下文向量和所有之前生成出的词来预测下一个目标词
发明内容
针对通信设备检修记录的错误发现和纠错,本发明提出了基于attention机制的seq2seq神经网络模型。实现检修记录纠错的步骤如下:
一种基于seq2seq+attention的中文文本纠错方法,其特征在于,包括以下步骤:
步骤1,文本预处理:首先基于python读取数据库中的检修记录,提取文档文件中的所有内容,然后利用正则表达式进行中文分句操作,将结果存入文本文件中,每一行对应一个句子,同时将人工标注的正确文本存入另一个文本文件中,和原始文件一一对应;记录下电力通信领域中的专有符号,和常见的汉字表共同组成字符表;
步骤2,构建基于attention的seq2seq神经网络模型,具体包括:
步骤2.1,构建Encoder模块层,包括Embedding Layer和M层双向LSTM,其中:
层一、Embedding Layer的输入为当前字符的one-hot编码,one-hot编码可以根据步骤1中形成的字符表得到;Embedding Layer的输出为当前字符的字向量即:
et=ET·xt
其中xt是t时刻输入字符的one-hot编码,是v维列向量,v是步骤1得到的字符表中的字符总数;E是字符向量矩阵,是v×d维矩阵,在具体实现过程中,d取100-200之间的数字,d代表每一个字符向量的维度,矩阵E是模型的参数,通过训练得到;et是t时刻输入字符的字向量;
在具体实现过程中,使用TensorFlow中tf.nn.embedding_lookup函数,得到字符向量;
层二、M层双向LSTM中的基本单元是LSTM,第j层t时刻LSTM的隐藏状态计算公式如下:
其中, 初始化为零向量,函数σ(x)=1/(1+e-x),函数tanh(x)=(ex-e-x)/(ex+e-x),均是模型参数,通过训练获得,⊙表示对应元素相乘;
基于LSTM的计算公式得到:从前往后传播的隐藏状态向量从后往前传播的隐藏状态向量则在第j层t时刻,Bi-LSTM的输出为
在具体实现过程中,可以使用TensorFlow中的函数BasicLSTMCell来实现;
步骤2.2,构建Decoder模块层,Decoder模块层是一个M层单向LSTM语言模型结构,每一层初始状态向量均来自Encoder;代表Decoder第M层的输出,经过softmax变换,得到每个字符的概率,计算公式如下:
计算损失函数:
其中,yt是one-hot编码,代表t时刻输出的字符,P是输出序列长度;
步骤2.3,构建attention模块层:在Encoder模块层中得到最后一层所有时刻的隐藏状态向量Q为输入字符的总数;在Decoder模块中得到第一层t-1时刻的隐藏状态向量attention向量的计算公式如下:
α=softmax(w)
在计算Decoder模块层中t时刻每一层的隐藏状态向量时,加入β;
步骤3,采用Adam优化方法进行模型训练:神经网络模型构建成功之后,数据从输入到输出的整个流程,以TensorFlow中计算图的形式存在,直接利用tf.train.AdamOptimizer().minimize()进行迭代训练,找到参数最优值;
步骤4,进行纠错任务,具体是:
在Decoder阶段,采用beam search进行推断过程,beam size为2,每次挑选两个概率最高的字符,作为下一次预测的输入,遇见终止符<EOS>时,停止推断,得到输出序列。
因此,本发明具有如下优点:
(1)与现有的基于规则的纠错方案,端到端的深度模型可以避免人工提取特征,减少人工工作量。而且,RNN序列模型对文本任务拟合能力强。
(2)在seq2seq模型加上attention机制,对于长文本效果更好,模型更容易收敛,效果更好。
附图说明
图1是神经网络总体框架。
具体实施方式
具体实施时,本发明所提供技术方案可由本领域技术人员采用计算机软件技术实现自动运行流程。以下结合附图和实施例详细说明本发明技术方案。
步骤1:文本预处理
利用python中的相关工具读取数据库中的检修记录,提取文档文件中的所有内容,然后利用正则表达式进行中文分句操作,将结果存入文本文件中,每一行对应一个句子,同时将人工标注的正确文本存入另一个文本文件中,和原始文件一一对应。记录下电力通信领域中的专有符号,和常见的汉字表共同组成本发明所用到的字符表。
步骤2:构建基于attention的seq2seq神经网络模型
(1)Encoder模块
Encoder模块主要包括两部分:Embedding Layer和M层双向LSTM。
EmbeddingLayer的输入为当前字符的one-hot编码,one-hot编码可以根据步骤1中形成的字符表得到。Embedding Layer的输出为当前字符的字向量即:
et=ET·xt
其中xt是t时刻输入字符的one-hot编码,是v维列向量,v是步骤1得到的字符表中的字符总数。E是字符向量矩阵,是v×d维矩阵,在具体实现过程中,d取100-200之间的数字,d代表每一个字符向量的维度,矩阵E是模型的参数,通过训练得到。et是t时刻输入字符的字向量。
在具体实现过程中,使用TensorFlow中tf.nn.embedding_lookup函数,得到字符向量。
M层双向LSTM中的基本单元是LSTM,第j层t时刻LSTM的隐藏状态计算公式如下:
其中, 初始化为零向量,函数σ(x)=1/(1+e-x),函数tanh(x)=(ex-e-x)/(ex+e-x),均是模型参数,通过训练获得,⊙表示对应元素相乘。
基于上述LSTM的计算公式得到:从前往后传播的隐藏状态向量从后往前传播的隐藏状态向量则在第j层t时刻,Bi-LSTM的输出为
在具体实现过程中,可以使用TensorFlow中的函数BasicLSTMCell来实现。
(2)Decoder模块
Decoder模块是一个M层单向LSTM语言模型结构,每一层初始状态向量均来自Encoder。代表Decoder第M层的输出,经过softmax变换,得到每个字符的概率,计算公式如下:
计算损失函数:
其中,yt是one-hot编码,代表t时刻输出的字符,P是输出序列长度。
(3)attention模块
在Encoder模块中得到最后一层所有时刻的隐藏状态向量Q为输入字符的总数。在Decoder模块中得到第一层t-1时刻的隐藏状态向量attention向量的计算公式如下:
α=softmax(w)
在计算Decoder模块中t时刻每一层的隐藏状态向量时,加入β。
步骤3:采用Adam优化方法进行模型训练
神经网络模型构建成功之后,数据从输入到输出的整个流程,以TensorFlow中计算图的形式存在,直接利用tf.train.AdamOptimizer().minimize()进行迭代训练,找到参数最优值。
步骤4:进行纠错任务
在Decoder阶段,采用beam search进行推断过程,beam size为2,每次挑选两个概率最高的字符,作为下一次预测的输入,遇见终止符<EOS>时,停止推断,得到输出序列。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可对所描述的具体实施例做修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (1)
1.一种基于seq2seq+attention的中文文本纠错方法,其特征在于,包括以下步骤:
步骤1,文本预处理:首先基于python读取数据库中的检修记录,提取文档文件中的所有内容,然后利用正则表达式进行中文分句操作,将结果存入文本文件中,每一行对应一个句子,同时将人工标注的正确文本存入另一个文本文件中,和原始文件一一对应;记录下电力通信领域中的专有符号,和常见的汉字表共同组成字符表;
步骤2,构建基于attention的seq2seq神经网络模型,具体包括:
步骤2.1,构建Encoder模块层,包括Embedding Layer和M层双向LSTM,其中:
层一、Embedding Layer的输入为当前字符的one-hot编码,one-hot编码可以根据步骤1中形成的字符表得到;Embedding Layer的输出为当前字符的字向量即:
et=ET·xt
其中xt是t时刻输入字符的one-hot编码,是v维列向量,v是步骤1得到的字符表中的字符总数;E是字符向量矩阵,是v×d维矩阵,在具体实现过程中,d取100-200之间的数字,d代表每一个字符向量的维度,矩阵E是模型的参数,通过训练得到;et是t时刻输入字符的字向量;
在具体实现过程中,使用TensorFlow中tf.nn.embedding_lookup函数,得到字符向量;
层二、M层双向LSTM中的基本单元是LSTM,第j层t时刻LSTM的隐藏状态计算公式如下:
其中, 初始化为零向量,函数σ(x)=1/(1+e-x),函数tanh(x)=(ex-e-x)/(ex+e-x),均是模型参数,通过训练获得,⊙表示对应元素相乘;
基于LSTM的计算公式得到:从前往后传播的隐藏状态向量从后往前传播的隐藏状态向量则在第j层t时刻,Bi-LSTM的输出为
在具体实现过程中,可以使用TensorFlow中的函数BasicLSTMCell来实现;
步骤2.2,构建Decoder模块层,Decoder模块层是一个M层单向LSTM语言模型结构,每一层初始状态向量均来自Encoder;代表Decoder第M层的输出,经过softmax变换,得到每个字符的概率,计算公式如下:
计算损失函数:
其中,yt是one-hot编码,代表t时刻输出的字符,P是输出序列长度;
步骤2.3,构建attention模块层:在Encoder模块层中得到最后一层所有时刻的隐藏状态向量Q为输入字符的总数;在Decoder模块中得到第一层t-1时刻的隐藏状态向量attention向量的计算公式如下:
α=softmax(w)
在计算Decoder模块层中t时刻每一层的隐藏状态向量时,加入β;
步骤3,采用Adam优化方法进行模型训练:神经网络模型构建成功之后,数据从输入到输出的整个流程,以TensorFlow中计算图的形式存在,直接利用tf.train.AdamOptimizer().minimize()进行迭代训练,找到参数最优值;
步骤4,进行纠错任务,具体是:
在Decoder阶段,采用beam search进行推断过程,beam size为2,每次挑选两个概率最高的字符,作为下一次预测的输入,遇见终止符<EOS>时,停止推断,得到输出序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811441697.0A CN109614612A (zh) | 2018-11-29 | 2018-11-29 | 一种基于seq2seq+attention的中文文本纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811441697.0A CN109614612A (zh) | 2018-11-29 | 2018-11-29 | 一种基于seq2seq+attention的中文文本纠错方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614612A true CN109614612A (zh) | 2019-04-12 |
Family
ID=66005393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811441697.0A Pending CN109614612A (zh) | 2018-11-29 | 2018-11-29 | 一种基于seq2seq+attention的中文文本纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614612A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188353A (zh) * | 2019-05-28 | 2019-08-30 | 百度在线网络技术(北京)有限公司 | 文本纠错方法及装置 |
CN110705399A (zh) * | 2019-09-19 | 2020-01-17 | 安徽七天教育科技有限公司 | 一种数学公式自动识别的方法 |
CN110866390A (zh) * | 2019-10-15 | 2020-03-06 | 平安科技(深圳)有限公司 | 中文语法错误的识别方法、装置、计算机设备和存储介质 |
CN111175852A (zh) * | 2019-12-27 | 2020-05-19 | 中国电子科技集团公司第十四研究所 | 一种基于长短时记忆算法的机场大雾预报预警方法 |
CN114548080A (zh) * | 2022-04-24 | 2022-05-27 | 长沙市智为信息技术有限公司 | 一种基于分词增强的中文错字校正方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059869A1 (en) * | 2006-09-01 | 2008-03-06 | The Regents Of The University Of California | Low cost, high performance error detection and correction |
CN107769972A (zh) * | 2017-10-25 | 2018-03-06 | 武汉大学 | 一种基于改进的lstm的电力通信网设备故障预测方法 |
CN108170686A (zh) * | 2017-12-29 | 2018-06-15 | 科大讯飞股份有限公司 | 文本翻译方法及装置 |
CN108491372A (zh) * | 2018-01-31 | 2018-09-04 | 华南理工大学 | 一种基于seq2seq模型的中文分词方法 |
-
2018
- 2018-11-29 CN CN201811441697.0A patent/CN109614612A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059869A1 (en) * | 2006-09-01 | 2008-03-06 | The Regents Of The University Of California | Low cost, high performance error detection and correction |
CN107769972A (zh) * | 2017-10-25 | 2018-03-06 | 武汉大学 | 一种基于改进的lstm的电力通信网设备故障预测方法 |
CN108170686A (zh) * | 2017-12-29 | 2018-06-15 | 科大讯飞股份有限公司 | 文本翻译方法及装置 |
CN108491372A (zh) * | 2018-01-31 | 2018-09-04 | 华南理工大学 | 一种基于seq2seq模型的中文分词方法 |
Non-Patent Citations (2)
Title |
---|
徐俊 等: "基于seq2seq模型的中文纠错任务", 《人民网》 * |
杨林: "基于循环神经网络的英文写作错误检测及纠正的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188353A (zh) * | 2019-05-28 | 2019-08-30 | 百度在线网络技术(北京)有限公司 | 文本纠错方法及装置 |
CN110705399A (zh) * | 2019-09-19 | 2020-01-17 | 安徽七天教育科技有限公司 | 一种数学公式自动识别的方法 |
CN110866390A (zh) * | 2019-10-15 | 2020-03-06 | 平安科技(深圳)有限公司 | 中文语法错误的识别方法、装置、计算机设备和存储介质 |
CN110866390B (zh) * | 2019-10-15 | 2022-02-11 | 平安科技(深圳)有限公司 | 中文语法错误的识别方法、装置、计算机设备和存储介质 |
CN111175852A (zh) * | 2019-12-27 | 2020-05-19 | 中国电子科技集团公司第十四研究所 | 一种基于长短时记忆算法的机场大雾预报预警方法 |
CN114548080A (zh) * | 2022-04-24 | 2022-05-27 | 长沙市智为信息技术有限公司 | 一种基于分词增强的中文错字校正方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614612A (zh) | 一种基于seq2seq+attention的中文文本纠错方法 | |
US20220147836A1 (en) | Method and device for text-enhanced knowledge graph joint representation learning | |
CN107203511B (zh) | 一种基于神经网络概率消歧的网络文本命名实体识别方法 | |
CN113239186B (zh) | 一种基于多依存关系表示机制的图卷积网络关系抽取方法 | |
CN111143576A (zh) | 一种面向事件的动态知识图谱构建方法和装置 | |
CN111753024A (zh) | 一种面向公共安全领域的多源异构数据实体对齐方法 | |
CN106682089A (zh) | 一种基于RNNs的短信自动安全审核的方法 | |
CN115131627B (zh) | 一种轻量化植物病虫害目标检测模型的构建和训练方法 | |
CN114281968B (zh) | 一种模型训练及语料生成方法、装置、设备和存储介质 | |
CN111709244A (zh) | 一种用于矛盾纠纷事件因果关系识别的深度学习方法 | |
CN116484024A (zh) | 一种基于知识图谱的多层次知识库构建方法 | |
CN109783644A (zh) | 一种基于文本表示学习的跨领域情感分类***及方法 | |
US20230401390A1 (en) | Automatic concrete dam defect image description generation method based on graph attention network | |
CN112905868A (zh) | 事件抽取方法、装置、设备及存储介质 | |
CN116089873A (zh) | 模型训练方法、数据分类分级方法、装置、设备及介质 | |
CN110362797A (zh) | 一种研究报告生成方法及相关设备 | |
CN108920446A (zh) | 一种工程文本的处理方法 | |
CN114239574A (zh) | 一种基于实体和关系联合学习的矿工违规行为知识抽取方法 | |
CN111597816A (zh) | 一种自注意力命名实体识别方法、装置、设备及存储介质 | |
CN115062617A (zh) | 基于提示学习的任务处理方法、装置、设备及介质 | |
CN112559741A (zh) | 核电设备缺陷记录文本分类方法、***、介质及电子设备 | |
CN116975161A (zh) | 电力设备局放文本的实体关系联合抽取方法、设备、介质 | |
CN114357160B (zh) | 基于生成传播结构特征的早期谣言检测方法及装置 | |
CN113626537B (zh) | 一种面向知识图谱构建的实体关系抽取方法及*** | |
CN115587192A (zh) | 关系信息抽取方法、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |