From 56b088303246225134104e5a5784beff9486c7c6 Mon Sep 17 00:00:00 2001 From: chenjiawen Date: Mon, 15 Apr 2019 20:25:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0finetune=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PaddleNLP/ELMO/finetune/bilm.py | 199 +++++++++++ PaddleNLP/ELMO/finetune/conf/q2b.dic | 172 +++++++++ PaddleNLP/ELMO/finetune/data/dev/dev.tsv | 200 +++++++++++ PaddleNLP/ELMO/finetune/data/tag.dic | 60 ++++ PaddleNLP/ELMO/finetune/data/train/train.tsv | 200 +++++++++++ PaddleNLP/ELMO/finetune/infer.py | 144 ++++++++ PaddleNLP/ELMO/finetune/network.py | 149 ++++++++ PaddleNLP/ELMO/finetune/reader.py | 128 +++++++ PaddleNLP/ELMO/finetune/run.sh | 13 + PaddleNLP/ELMO/finetune/train.py | 354 +++++++++++++++++++ 10 files changed, 1619 insertions(+) create mode 100755 PaddleNLP/ELMO/finetune/bilm.py create mode 100755 PaddleNLP/ELMO/finetune/conf/q2b.dic create mode 100644 PaddleNLP/ELMO/finetune/data/dev/dev.tsv create mode 100755 PaddleNLP/ELMO/finetune/data/tag.dic create mode 100644 PaddleNLP/ELMO/finetune/data/train/train.tsv create mode 100755 PaddleNLP/ELMO/finetune/infer.py create mode 100755 PaddleNLP/ELMO/finetune/network.py create mode 100755 PaddleNLP/ELMO/finetune/reader.py create mode 100755 PaddleNLP/ELMO/finetune/run.sh create mode 100755 PaddleNLP/ELMO/finetune/train.py diff --git a/PaddleNLP/ELMO/finetune/bilm.py b/PaddleNLP/ELMO/finetune/bilm.py new file mode 100755 index 00000000..785878cc --- /dev/null +++ b/PaddleNLP/ELMO/finetune/bilm.py @@ -0,0 +1,199 @@ +# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import paddle.fluid.layers as layers +import paddle.fluid as fluid +import numpy as np +import os + +cell_clip=3.0 +proj_clip=3.0 +hidden_size=4096 +vocab_size=52445 +emb_size=512 + +def dropout(input): + dropout_rate=0.5 + return layers.dropout( + input, + dropout_prob=dropout_rate, + dropout_implementation="upscale_in_train", + is_test=False) + + +def lstmp_encoder(input_seq, gate_size, h_0, c_0, para_name, proj_size, args): + # A lstm encoder implementation with projection. + # Linear transformation part for input gate, output gate, forget gate + # and cell activation vectors need be done outside of dynamic_lstm. + # So the output size is 4 times of gate_size. + + + init = None + init_b = None + input_proj = layers.fc(input=input_seq, + param_attr=fluid.ParamAttr( + name=para_name + '_gate_w', initializer=init), + size=gate_size * 4, + act=None, + bias_attr=False) + hidden, cell = layers.dynamic_lstmp( + input=input_proj, + size=gate_size * 4, + proj_size=proj_size, + h_0=h_0, + c_0=c_0, + use_peepholes=False, + proj_clip=proj_clip, + cell_clip=cell_clip, + proj_activation="identity", + param_attr=fluid.ParamAttr(initializer=init), + bias_attr=fluid.ParamAttr(initializer=init_b)) + return hidden, cell, input_proj + +def emb(x, vocab_size=52445,emb_size=512): + x_emb = layers.embedding( + input=x, + size=[vocab_size, emb_size], + dtype='float32', + is_sparse=False, + param_attr=fluid.ParamAttr(name='embedding_para')) + return x_emb + + +def encoder_1(x_emb, + vocab_size, + emb_size, + init_hidden=None, + init_cell=None, + para_name='', + args=None): + rnn_input = x_emb + #rnn_input.stop_gradient = True + rnn_outs = [] + rnn_outs_ori = [] + cells = [] + projs = [] + num_layers=2 + for i in range(num_layers): + if init_hidden and init_cell: + h0 = layers.squeeze( + layers.slice( + init_hidden, axes=[0], starts=[i], ends=[i + 1]), + axes=[0]) + c0 = layers.squeeze( + layers.slice( + init_cell, axes=[0], starts=[i], ends=[i + 1]), + axes=[0]) + else: + h0 = c0 = None + rnn_out, cell, input_proj = lstmp_encoder( + rnn_input, hidden_size, h0, c0, + para_name + 'layer{}'.format(i + 1), emb_size, args) + rnn_out_ori = rnn_out + if i > 0: + rnn_out = rnn_out + rnn_input + rnn_out.stop_gradient = True + rnn_outs.append(rnn_out) + rnn_outs_ori.append(rnn_out_ori) + return rnn_outs, rnn_outs_ori + + +def weight_layers(lm_embeddings, name="", l2_coef=0.0): + ''' + Weight the layers of a biLM with trainable scalar weights to + compute ELMo representations. + + Input: + lm_embeddings(list): representations of 2 layers from biLM. + name = a string prefix used for the trainable variable names + l2_coef: the l2 regularization coefficient $\lambda$. + Pass None or 0.0 for no regularization. + + Output: + weighted_lm_layers: weighted embeddings form biLM + ''' + + n_lm_layers = len(lm_embeddings) + W = layers.create_parameter([n_lm_layers, ], dtype="float32", name=name+"ELMo_w", + attr=fluid.ParamAttr(name=name+"ELMo_w", + initializer=fluid.initializer.Constant(0.0), + regularizer=fluid.regularizer.L2Decay(l2_coef))) + normed_weights = layers.softmax( W + 1.0 / n_lm_layers) + splited_normed_weights = layers.split(normed_weights, n_lm_layers, dim=0) + # compute the weighted, normalized LM activations + pieces = [] + for w, t in zip(splited_normed_weights, lm_embeddings): + pieces.append(t * w) + sum_pieces = layers.sums(pieces) + # scale the weighted sum by gamma + gamma = layers.create_parameter([1], dtype="float32", name=name+"ELMo_gamma", + attr=fluid.ParamAttr(name=name+"ELMo_gamma", + initializer=fluid.initializer.Constant(1.0))) + weighted_lm_layers = sum_pieces * gamma + return weighted_lm_layers + + +def elmo_encoder(x_emb, elmo_l2_coef): + lstm_outputs = [] + x_emb_r=fluid.layers.sequence_reverse(x_emb, name=None) + fw_hiddens, fw_hiddens_ori = encoder_1( + x_emb, + vocab_size, + emb_size, + para_name='fw_', + args=None) + bw_hiddens, bw_hiddens_ori = encoder_1( + x_emb_r, + vocab_size, + emb_size, + para_name='bw_', + args=None) + + num_layers = len(fw_hiddens_ori) + token_embeddings = layers.concat(input=[x_emb, x_emb], axis=1) + token_embeddings.stop_gradient = True + concate_embeddings = [token_embeddings] + for index in range(num_layers): + embedding = layers.concat(input = [fw_hiddens_ori[index], bw_hiddens_ori[index]], axis=1) + embedding = dropout(embedding) + embedding.stop_gradient=True + concate_embeddings.append(embedding) + weighted_meb = weight_layers(concate_embeddings, l2_coef=elmo_l2_coef) + return weighted_meb + + +def init_pretraining_params(exe, + pretraining_params_path, + main_program): + assert os.path.exists(pretraining_params_path + ), "[%s] cann't be found." % pretraining_params_path + + def if_exist(var): + path = os.path.join(pretraining_params_path, var.name) + exist = os.path.exists(path) + if exist: + print('Load model: %s' % path) + return exist + + fluid.io.load_vars( + exe, + pretraining_params_path, + main_program=main_program, + predicate=if_exist) + print("Load pretraining parameters from {}.".format( + pretraining_params_path)) diff --git a/PaddleNLP/ELMO/finetune/conf/q2b.dic b/PaddleNLP/ELMO/finetune/conf/q2b.dic new file mode 100755 index 00000000..d1f14691 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/conf/q2b.dic @@ -0,0 +1,172 @@ +  +、 , +。 . +— - +~ ~ +‖ | +… . +‘ ' +’ ' +“ " +” " +〔 ( +〕 ) +〈 < +〉 > +「 ' +」 ' +『 " +』 " +〖 [ +〗 ] +【 [ +】 ] +∶ : +$ $ +! ! +" " +# # +% % +& & +' ' +( ( +) ) +* * ++ + +, , +- - +. . +/ / +0 0 +1 1 +2 2 +3 3 +4 4 +5 5 +6 6 +7 7 +8 8 +9 9 +: : +; ; +< < += = +> > +? ? +@ @ +A a +B b +C c +D d +E e +F f +G g +H h +I i +J j +K k +L l +M m +N n +O o +P p +Q q +R r +S s +T t +U u +V v +W w +X x +Y y +Z z +[ [ +\ \ +] ] +^ ^ +_ _ +` ` +a a +b b +c c +d d +e e +f f +g g +h h +i i +j j +k k +l l +m m +n n +o o +p p +q q +r r +s s +t t +u u +v v +w w +x x +y y +z z +{ { +| | +} } + ̄ ~ +〝 " +〞 " +﹐ , +﹑ , +﹒ . +﹔ ; +﹕ : +﹖ ? +﹗ ! +﹙ ( +﹚ ) +﹛ { +﹜ { +﹝ [ +﹞ ] +﹟ # +﹠ & +﹡ * +﹢ + +﹣ - +﹤ < +﹥ > +﹦ = +﹨ \ +﹩ $ +﹪ % +﹫ @ + , +A a +B b +C c +D d +E e +F f +G g +H h +I i +J j +K k +L l +M m +N n +O o +P p +Q q +R r +S s +T t +U u +V v +W w +X x +Y y +Z z diff --git a/PaddleNLP/ELMO/finetune/data/dev/dev.tsv b/PaddleNLP/ELMO/finetune/data/dev/dev.tsv new file mode 100644 index 00000000..8ef88308 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/data/dev/dev.tsv @@ -0,0 +1,200 @@ +笔记本 电脑 对 胎儿 影响 大 吗 n n p n v a xc +这个 跟 我们 一直 传承 《 易经 》 的 精神 是 分 不 开 的 r p r d v w nz w u n v v-B v-I v-I u +他们 不 但 上 名医 门诊 , 还 兼 作 门诊 医生 的 顾问 团 r d c v n vn w d v-B v-I vn n u n-B n-I +负责 外商 投资 企业 和 外国 企业 的 税务 登记 , 纳税 申报 和 税收 资料 的 管理 , 全面 掌握 税收 信息 v n vn n c n n u n vn w vn vn c n n u vn w ad v n n +采用 弹性 密封 结构 , 实现 零 间隙 v n vn n w v a n +要 做 好 这 三 件 事 , 支行 从 风险 管理 到 市场 营销 策划 都 必须 专业 到位 v v-B v-I r m-B m-I n w n p n vn p n vn vn d d a v +那么 , 请 你 一定 要 幸福 . r w v nz-B nz-I nz-I nz-I w +叉车 在 企业 的 物流 系统 中 扮演 着 非常 重要 的 角色 , 是 物料 搬运 设备 中 的 主力 军 n p n u n n f v u d a u n w v n v n f u n-B n-I +我 真 的 能够 有 机会 拍摄 这部 电视 剧 么 r a u v v n v r n-B n-I xc +这种 情况 应该 是 没 有 危害 的 r n v v v-B v-I vn u +你 帮 我 找 找 附近 有 搞基 的 吗 r v r v-B v-I f v v u xc +三 十 里 和 百里 风 区 有 10 级 西北 风 , 瞬间 11 级 m-B m-I q c m n n v m-B m-I n-B n-I w t m-B m-I +让 你 的 瞬间 爆发 满足 一切 理想 状态 v r u vn-B vn-I v r a n +实践 证明 , 党委 的 重视 , 关心 和 支持 , 是 做 好 人大 工作 的 根本 保证 vn v w n u vn w vn c vn w v v-B v-I nt n u a vn +对 开展 治理 工作 不 认真 , 组织 领导 不 力 的 , 要 及时 督促 纠正 , 必要 时 进行 通报 批评 和 责任 追究 p v vn n d a w v v a-B a-I u w v ad v v w t-B t-I v vn vn c n vn +语气 非常 强硬 , 能 有 什么 办法 , 咱们 能 不 遵命 吗 n d a w v v r n w r v d v xc +在 低 明度 色彩 的 衬托 下 , 最 为 醒目 p a n n u vn f w d-B d-I a +实验 中心 负责 相关 教学 计划 , 实施 监控 及 教学 质量 的 评价 . n n v vn n-B n-I w v vn c n n u vn w +欢迎 有 商业 拓展 需求 的 企业 来电 咨询 洽谈 v v n vn n u n v v v +杨武 我 听到 了 床 摇动 的 声音 , 意识 到 妻子 被 强奸 了 , 声音 很大 , 我 距离 只有 几米 远 nr r v u n v u n w v-B v-I n p v xc w n a w r v d m a +只有 火 , 利刃 或 极度 的 悲伤 可以 杀死 精灵 v n w n c a u an v v n +一 队 队员 则 连同 实力 较 弱 的 苏醒 一 起 待定 等候 结果 . m-B m-I n c p n d a u nr d-B d-I v v n w +城市 要 兼顾 各 方面 员工 的 利益 , 因此 , 在 有限 的 资源 条件 下 , 只能 帮助 部分 员工 实现 最 迫切 的 诉求 n v v r-B r-I n u n w c w p a u n n f w v v n n v d a u n +因此 折射 出来 的 不 仅仅 是 企业 管理 结构 的 问题 , 还有 淘宝 员工 对 社会 良知 的 践踏 和 对 商业 信誉 的 漠视 c v v u d-B d-I v n-B n-I n u n w v nt n p n n u vn c p n n u vn +没 有 这种 能力 , 他们 是 没 有 资格 做 中华 民族 , 泱泱 大 国 的 宰相 的 v-B v-I r n w r v v-B v-I n v nz-B nz-I w n-B n-I n-I u n u +这 周 还要 继续 工作 的 , 到 了 中秋 , 就 可以 放松 休假 啦 r q v vd v u w v u nz w d v v v xc +本票 上 未 记载 出票 地 的 , 出票 人 的 营业 场所 为 出票 地 n f d v n-B n-I u w vn n u vn n v n-B n-I +系统 可以 无 限制 的 提供 两种 药剂 , 而且 林 天 给 精灵 们 的 , 都 是 最 低级 的 药剂 n v v-B v-I u v m n w c nr-B nr-I v n-B n-I u w v-B v-I d a u n +郑 先生 故去 了 , 可是 郑 先生 的 医院 也 随 他 故去 , 确实 让 人 感到 遗憾 nr-B nr-I v xc w c nr-B nr-I u n d p r v w ad v n v-B v-I +三伏 天气 过于 潮湿 时 , 可以 短期 密闭 保存 n n d an n w v n v v +协议 的 解释 在 任何 时候 以 协议 的 英文 版本 为 准 n u vn p r n p n u nz n v-B v-I +通过 该 方式 避免 了 部分 楼盘 价格 过 快 上涨 以及 因 结构 性 差异 导致 的 价格 波动 而 影响 购房 者 预期 p r n v u n n n d a vn c p n-B n-I n v u n vn c v n-B n-I vn +才 是 那个 地道 的 味道 ! v-B v-I r a u n w +全身 保温 可达 4 小时 , 关节 部位 加入 了 软骨 材料 , 关节 更 灵活 , 能 摆动 更多 高 难度 姿势 n v v m n w n n v u n n w n a-B a-I w v v a a-B a-I n +2006 年 8 月 辞去 职务 t-B t-I t-B t-I v n +解决 方案 背诵 每个 句子 , 这 就 是 打包 记忆 n-B n-I v r n w r v-B v-I v n +2009 年 4 月 21 日 , 国家 代码 中心 门户 网站 正式 改版 上线 运行 . t-B t-I t-I t-I t-I t-I w nt-B nt-I nt-I n-B n-I ad v v v w +惊怕 地 注视 着 周围 的 一切 v u v u f u r +各 组 仪器 未经 老师 许可 , 不 得 随意 移动 r-B r-I n v n v w v-B v-I ad v +至 红 , 白斑 区分 明显 为止 p a w n vn a v +可 制作 肥皂 和 洗涤 剂 . v v n c n-B n-I w +嘿嘿 , 大叔 碎 觉 去 了 , 明 儿 要 出门 . xc w n v-B v-I v xc w t-B t-I v v w +把 行李 放 好 , 她 转身 又 走出 去 p n v a w r v d v-B v-I +你 也 说 了 , 他 跟 他 的 前 女友 的 激情 在 你 这里 根本 就 不 在 了 r d v xc w r c r u n-B n-I u n p r r d d v-B v-I xc +郑州 癫痫 病 医院 专家 提醒 , 患者 只有 诊断 正确 才能 确保 治疗 效果 , 从而 早日 摆脱 癫痫 的 困扰 nt-B nt-I nt-I nt-I n v w n c v a v v vn n w c d v n u vn +晚上 , 我们 约定 一 块 骑车 去 赛 场 t w r v d-B d-I v v n-B n-I +很 明显 , 广大 期货 市场 的 投资 者 及 监管 机构 对 期货 市场 价格 的 暴涨 暴跌 尤 为 敏感 a-B a-I w a nz-B nz-I u n-B n-I c vn n p n n-B n-I u vn vn d-B d-I a +法令 一旦 制定 出来 , 就要 坚决 的 执行 , 不 能 轻易 的 改变 和 废止 n d v v w v a u v w v-B v-I a u v c v +行凶 之 人 , 又 会 如何 浮 出 台面 ? v u n w d v r v-B v-I n w +分析 和 触发 这种 串行 数据 通常 比 并行 数据 要 困难 得 多 v c v r vn n d p vn n v a u a +认真 总结 转变 作风 , 强化 执行 活动 开展 情况 , 立足 实际 , 集中 研讨 , 巩固 活动 成果 , 形成 长效 机制 ad v v n w vd v n vn n w v an w ad v w v vn n w v a n +高校 校级 科研 项目 设置 初探 . n a n-B n-I vn vn w +荚 褐色 , 平均 每 荚 1 . 9 粒 种子 , 底 荚 高 8 . 6cm 左右 . n n w a r n m-B m-I m-I m-I n w n n a m-B m-I m-I f w +我 这次 不 付款 , 保留 这个 金额 在 以后 航程 中 抵扣 r r d v w v r n p f n f v +这 一 点 可以 陪侍 丫环 的 名字 中 看出 . r-B r-I r-I v vn n u n f v w +土 表 设 在 会场 的 正中 , 是 用 粘土 堆 成 高 约 60 厘米 , 边长 6 . 7 米 的 正 方形 场地 n n v-B v-I n u f w v p n v v n d m-B m-I w n m-B m-I m-I m-I u n-B n-I n +虽然 我们 现在 没 有 能够 来 陪衬 这 张 图片 的 官方 细节 图 , 但是 仍 有 些 细节 是 显 而 易 见 的 c r t v-B v-I v v v r q n u n n n w c d r-B r-I n v v-B v-I v-I v-I u +林 副 市长 的 身家 财产 全部 被 李 三 盗走 , 大发 雷霆 nr n-B n-I u n n d p nr-B nr-I v w v-B v-I +你 有 什么 资格 在 这 指 手 画 脚 r v r n p r v-B v-I v-I v-I +不过 有 时候 会 打 不 开 一些 ie 下 能 打开 的 网页 d d-B d-I v v d v m n f v v u n +继而 , 国土 资源 部 出台 土地 出让 新 规定 c w nt-B nt-I nt-I v n v n-B n-I +黄色 在 中国 的 色彩 文化 中 具有 崇高 的 象征 意义 . n p ns u n n f v a u vn n w +因此 , 大家 对 抗日 救亡 情绪 深受 打击 c w r p vn vn n v vn +是否 让 孩子 这样 持续 做 下去 d v n r vd v v +提倡 做 学习 型 辅导 员 v v n-B n-I n-B n-I +工作 以 外 接触 异性 的 机会 不 多 , 公司 也 很少 组织 联谊 活动 vn f-B f-I v n u n d a w n d ad v vn n +患者 愈 后 甲肝 抗体 又 如何 消失 n v f nz nz d r v +海事 大学 场 ~ 不 用 裁判 nt-B nt-I n w v-B v-I n +在 短期 内 , 公司 的 任务 是 " 巩固 " , 既 巩固 东莞 的 市场 p f-B f-I w n u n v w vn w w c v ns u n +就让 我们 随着 主角 的 脚步 , 一 步 一 步 的 探索 吧 v r p n u n w m-B m-I m-I m-I u v xc +可见 早恋 危害 不 一定 大于 利 d vn vn d-B d-I v n +它 是 与 社会 其他 成员 相 区别 的 内在 规定 性 r v p n r n d v u a n-B n-I +结果 国内 市场 的 竞争 不 受 制约 , 政府 几乎 不 干预 n n-B n-I u vn v-B v-I vn w n d d v +做 好 音响 扩声 系统 设计 主要 应 把握 好 以下 两 个 方面 内容 v-B v-I n vn n vn ad v v-B v-I f m-B m-I n n +没 想到 宇文 家 竟然 捡 了 个 大 便宜 , 平 白 的 添 了 这么 一 个 顶尖 的 存在 v-B v-I nr n d v u q a n w a-B a-I u v u d m-B m-I a u vn +当 委托 人 死亡 , 蜡烛 上 的 火光 也 会 随之 而 熄灭 p n-B n-I v w n f u n d v d c v +直到 那时 , 我 才 忽然 意识 到 , 那 不 可能 是 一 架 飞机 或 直升 机 p t w r d d v-B v-I w r d v v m-B m-I n c n-B n-I +您 需要 不 断 总结 , 测试 , 优化 您 的 公式 r v ad-B ad-I v w v w v r u n +他 笑 认 目前 生活 开心 , 新年 期间 有 抽空 跟 好友 相聚 , 默认 与 舒淇 有 见面 r v v t v a w t f v v p n v w v p nr v v +天池山 , 在 县 北 一 十 余 里 . ns w v n f m-B m-I m-I q w +人们 被 驱逐 到 最后 的 圣地 - 萨尔蒙 神殿 . n p v v n-B n-I n-I w ns-B ns-I w +命途多舛 的 波音 787 梦想 飞机 在 日本 再次 遭遇 噩梦 a u nz-B nz-I n n p ns d v n +要 是 这 两 条 都 做 不 到 , 就 只有 发 神经 了 c c r m-B m-I d v-B v-I v-I w d d v-B v-I xc +法律 , 行政 法规 , 国务院 决定 未 规定 许可 的 , 自主 选择 经营 项目 开展 经营 n w n n w nt n d v vn u w vd v vn n v vn +小 寺 工厂 也 很 乐意 的 答应 了 nt-B nt-I nt-I d d a u v xc +要 发挥 他们 的 积极 性 , 就要 制定 一 套 正确 的 政策 v v r u n-B n-I w v v m-B m-I a u n +徐 老师 发现 , 这种 运动 方式 不仅 不 适合 仅 10 分钟 的 课间 休息 , 而且 很 危险 nr-B nr-I v w r vn n c d v d m-B m-I u n-B n-I w c d a +中国 老 百姓 对 政府 的 期望 本来 就 普遍 低 下 , 现在 则 转向 了 非常 的 负面 ns n-B n-I p n u vn d d ad a-B a-I w t d v u d u n +平台 融合 的 过程 中 , 对 投资 人 来 说 , 第 一 比 第 二 更 重要 n v u n f w p n-B n-I v-B v-I w m-B m-I p m-B m-I a-B a-I +温家宝 强调 , 经济 特区 是 改革 开放 的 产物 , 是 改革 开放 的 旗帜 和 风向标 nr v w n-B n-I v vn-B vn-I u n w v vn-B vn-I u n c n +欢迎 各 生产 厂家 及 经销 商 洽谈 合作 事宜 v r vn n c n-B n-I v vn n +对 身体 虚弱 以及 病 后 需要 调养 的 人 也 是 极 好 的 食物 p n a c n f v vn u n v-B v-I a-B a-I u n +应该 说 , 对 广场 舞 单 方面 抑制 , 是 没 有 从 " 需求 角度 " 理解 广场 舞 为何 流行 v v w p n-B n-I d-B d-I v w v v-B v-I p w n n w v n-B n-I r v +日子 就 这样 一 天天 在 心绪不宁 中 过去 了 n d-B d-I m-B m-I p vn f v xc +随后 , 出租 车 绝尘 而 去 , 消失 在 滚滚 车 流 之 中 d w n-B n-I v-B v-I v-I w v p a n-B n-I f-B f-I +清晨 , 当 校长 和 家属 巡查 校园 时 , 发现 一 具 教师 的 尸体 . t w v n c n v n n w v m-B m-I n u n w +我 觉得 除了 我 的 射手 都 是 处女 座 r v p r u nz v-B v-I nz-B nz-I +每日 清晨 , 它们 趁 着 朝日 东升 , 吸取 天地 间 的 灵气 , 一 点 一 点 地 增加 自己 的 灵力 r t w r p p n v w v s-B s-I u n w m-B m-I m-I m-I u v r u n +刚 开始 只是 小小 的 热 感 , 流 点 鼻涕 , 说话 有 点 痰 , 稍微 有 点 咳嗽 d v v a u n-B n-I w v q n w v v-B v-I n w d d-B d-I v +讨厌 一切 束缚 自由 , 繁琐 复杂 的 东西 . v r v an w a a u n w +是 一 种 儿童 学习 电脑 的 软件 . v m-B m-I n v n u n w +第 三 位 小姐 没 给 钱 , 司机 也 照 样 让 她 上 车 , 为什么 m-B m-I m-I n v v-B v-I w n d d-B d-I v r v-B v-I w r +李明启 老师 出生 于 辽宁 省 丹东 , 具有 回族 血统 , 现 居住 在 北京 . nr n v-B v-I ns-B ns-I ns w v nz n w t v p ns w +一 是 领带 产业 . m v n n w +中国 的 铁矿 石 库存 约 有 三 个 月 的 消耗 量 , 这 意味 着 即使 有 实际 需求 , 也 不 会 在 现 阶段 出现 明显 的 原料 短缺 现象 ns u n-B n-I n d v n-B n-I n-I u n-B n-I w r v-B v-I c v a n w d v-B v-I p n-B n-I v a u n v n +小雨 称 , 这种 书 好像 在 学校 旁 的 文具 店 可以 买到 nr v w r n d p n f u n-B n-I v v +《 武魂 》 " 霸王 大陆 " 玩法 的 出现 , 让 我们 如愿 以 偿 w nz w w nz-B nz-I w n u vn w v r v-B v-I v-I +婚姻 花园 所 需要 的 适度 肥料 是 夫妻 彼此 的 接纳 和 欣赏 n n u v u a n v n r u vn c vn +后来 我们 刀 也 没 敢 拣 就 默默 走 了 t r n d d v v d d v xc +做工 精细 , 没 有 多余 线头 , 赞 一 个 vn a w v-B v-I a n w v m-B m-I +我们 想 弄 明白 的 问题 是 什么 r v v a u n v-B v-I +但是 不 知道 男 主 是 谁 ? c v-B v-I n-B n-I v r w +不 由 泛起 一抹 恶狠狠 地 笑 d-B d-I v m a u vn +没 想到 日本 也 会 做出 这种 忘 祖 弃 宗 的 蠢事 v-B v-I ns d v v r v n v n u n +哪个 男孩 没 有 对 机械 的 东西 着迷 过 ? r n v-B v-I p n u n v u w +他 说 是 朋友 , 可是 她 总 觉得 有 什么 不 对 r v v n w c r d v v r an-B an-I +babcock 公司 在 气体 中 加入 石墨 颗粒 后 发现 换热 系数 可 提高 9 倍 nt-B nt-I p n f v n n f v vn n v v m-B m-I +项 梁 事业 有 了 刘邦 的 加盟 , 如 虎 添翼 nr-B nr-I n v u nr u vn w v-B v-I v-I +平时 可以 适当 的 热敷 或 按摩 一 下 的 t v a u v c v m-B m-I u +比如 春天 开花 的 有 三色堇 , 石竹 v t v u v nz w nz +用户 拥有 对 租赁 设备 的 使用 权 ( 所有 权 ) 和 完全 控制 权限 , 自行 安装 和 维护 软件 系统 n v p vn n u n-B n-I w n-B n-I w c ad v n w d v c v n n +1949 年 当 第 一 面 五星 红旗 在 天安门 广场 上 徐徐 升起 时 , 钱学森 爷爷 深 为 祖国 的 新生 而 高兴 t-B t-I p m-B m-I m-I n-B n-I p ns-B ns-I f d v n w nr n d p n u n c a +这 味 药 最 大 的 本事 就 是 能 祛除 我们 体 内 的 湿 浊 之 物 , 中医 在 治疗 肺痈 , 肠痈 的 时候 , 往往 会 用 到 薏苡 仁 r q n a-B a-I u n v-B v-I v v r s-B s-I u a a u n w n p v nz w nz u n w d v v-B v-I nz-B nz-I +星期 五 的 " 聚 礼 " 一般 去 清真 寺 做 . t-B t-I u w vn n w d v n-B n-I v w +市 首批 中学 化学 中 青年 骨干 教师 . n m n n n-B n-I n n w +促使 人们 去 观察 它 研究 它 提出 克服 它 的 措施 v n v v r v r v v r u n +当时 大家 议论 纷纷 , 有 领导 认为 模具 结构 不 合理 须 重新 设计 等等 t r v-B v-I w v n v n n d a v v-B v-I u +而 另外 两 个 人类 则 在 小 木屋 里 团 团 转 c r m-B m-I n d p n-B n-I f v-B v-I v-I +客观 能 给 我们 的 感觉 带来 什么 an v p r u n v r +2012 年 中国 作 协 迎春 联欢 会 特 等 奖 奖品 就 是 陈奕纯 创作 的 工笔 画 . t-B t-I ns nt-B nt-I vn n-B n-I n-B n-I n-I n v-B v-I nr v u n-B n-I w +现在 我 必须 把 你 重新 改造 , 你 愿 不 愿意 留 在 这里 t r d p r d v w r v-B v-I v-I v-B v-I r +右侧 颈 动脉 怒 张 . f n-B n-I vd v w +考虑 研究 对象 在 dt 时间 内 能量 的 增量 , 并 考虑 研究 对象 端面 上 所 受 压力 作 的 功 以及 与 外界 的 热 交换 v n-B n-I p n n f n u n w c v n-B n-I n f u v n v u n c p n u vn-B vn-I +这 款 显卡 899 能 买到 行货 吗 r-B r-I n m v v n xc +所以 , 只能 选择 远远 守护 她 , 默默 爱 着 她 , 所以 , 只要 静静 守护 她 , 悄悄 爱 着 她 , 就好 c w v v ad v r w ad v-B v-I r w c w c ad v r w ad v-B v-I r w a +明白 了 , 看 来 我 的 确 有 点 笨 呐 v xc w v-B v-I r d-B d-I d-B d-I a xc +因此 , 提高 人体 内 生长 激素 的 含量 , 以及 延缓 骨骺 闭合 , 就 成 了 能否 继续 长高 的 关键 c w v n f n-B n-I u n w c v n v w d v u v vd v u n +改名 泽 胤 v nr-B nr-I +你们 先 要 我 提供 照片 , 又 要 我 提供 视频 , 如果 不 能 作为 证据 , 为何 要 我 提供 r d v r v n w v-B v-I r v n w c v-B v-I v n w r v r v +但是 透镜 里面 的 灯炮 是 不 动 的 c n f u n v a-B a-I u +她 手 中 提 着 一 个 小 篮子 , 里面 是 满满 的 雪白 的 槐花 r s-B s-I v u m-B m-I a n w f v a u a u n +果皮 , 果肉 均 为 桔 红色 , 肉 细嫩 , 酸甜 可口 , 耐 贮运 n w n v-B v-I n-B n-I w n a w a a w v-B v-I +对 没 有 把握 的 判断 题 , 考生 最 好 坚持 " 谨慎 原则 " p v-B v-I vn u vn n w n d-B d-I v w a n w +他们 对 自己 国家 的 政策 和 神话 提出 挑战 r p r n u n c n v vn +要 这么 想 , 我 第 一天 就 不 会 把 阿里巴巴 股份 这么 稀释 v r v w r m-B m-I d v-B v-I p n-B n-I r a +更多 时候 , 静静 的 , 到 海边 , 脚踩 松软 沙粒 , 沉淀 心事 , 整理 心绪 , 使 自己 去掉 尘世 的 喧嚣 , 变得 温良 谦恭 让 一些 a n w a u w v-B v-I w v a n w v n w v n w v r v n u an w v a a v m +但 他 的 导演 作品 的 数量 至今 已 开始 呈现 上升 趋势 , 而且 还 设计 电视 等 其他 门类 作品 c r u vn n u n d d v v vn n w c d v n u r n n +东西 还 没 用 , 应该 也是 跟 以前 买 的 一 样 n d v-B v-I w v v p f v u a-B a-I +只见 关 明 正 蹲 在 一 刻 大树 下 正 扒拉 着 什么 v nr-B nr-I nr-I v p m-B m-I n f d v u r +也 可以 在 法院 受理 破产 申请 后 , 宣告 债务 人 破产 前 , 向 法院 申请 和解 d v p n v vn vn f w v n-B n-I v f w p n v vn +西部 王军 把 议会 军 赶出 了 南 威尔士 , 占领 了 多塞特郡 f n p n n v u f ns w v u ns +点评 : 加点 最 简单 的 门派 , 全 体质 , 只要 气力 够 拿起 装备 就 可以 了 . vn w v d a u n w a n w c n v v n d v xc w +一般 情况 下 , 就 好像 在 定期 寿险 中 的 情况 一 样 , 信息 的 存在 形式 是 非常 零散 的 a n f w d v p nz-B nz-I f u n a-B a-I w n u vn n v d a u +与 中文 不 同 , 在 英文 中 字母 的 大小 写 有 时 也 就 决定 了 一句 话 的 意义 p nz a-B a-I w p nz f n u n-B n-I d-B d-I d d v u n-B n-I u n +在 忙碌 的 现代 社会 中 , 很多 人 出现 各种 胃病 p a u t n f w n-B n-I v r n +由于 被 骚扰 并 不 是 一 件 光彩 的 事情 , 张恒 不 想 再 提起 p p v c v-B v-I m-B m-I a u n w nr d v d v +材料 自 熄 是 指 原本 燃烧 的 材料 在 离开 火源 就会 自动 熄灭 , 衡量 某种 材料 是否 会 燃烧 可用 氧 指数 值 作 判断 n d v v v d v u n p v n v ad v w v r n v v v v nz-B nz-I nz-I v vn +某天 , 下车 很久 之后 在 某 个 节目 中 再次 相逢 的 夫妇 r w v a f p r q n f d v u n +无 论 多少 , 我 付 双倍 , 三 倍 c c r w r v m w m-B m-I +郭 子 明 最 痛恨 人家 拿 他 的 姓名 开 玩笑 nr-B nr-I nr-I d v r p r u n v-B v-I +照料 室 , 以 帮助 老年 人 解决 生活 困难 n-B n-I w p v n-B n-I v n n +同时 , 我 也 萌 生 了 译 好 这 书 送给 费 先生 的 意念 d w r d v-B v-I u v a r n v nr n u n +这 对 当时 中国 近代 史 学科 建设 是 有 着 十分 重要 的 意义 的 r p t ns n-B n-I n vn v v-B v-I d a u n u +而 下 影 线 愈 长 表示 市场 向上 的 支撑 力 愈 大 c n-B n-I n-I d a v n v u vn n d a +中国 足球 的 当 务 之 急 是 理 顺 职权 关系 , 完善 联赛 职业 进程 , 加强 民间 推广 ns n u n-B n-I n-I n-I v v-B v-I n n w v n n n w v n vn +莱斯利 成 了 最后 知道 自己 " 被 分手 " 的 人 nr v u ad v r w p v w u n +宗旨 意识 和 群众 观念 有 所 弱化 , 头脑 中 还有 " 官 本 位 " 的 思想 残余 n n c n n d-B d-I v w n f v w n-B n-I n-I w u n n +从 这个 意义 上 讲 , 王晓棠 已经 具备 成为 第 一类 女人 的 条件 p r n f v w nr d v v m-B m-I n u n +萨维奇 已经 活 了 八 万 多 年 , 他 曾 多次 成为 名 垂 青史 的 统治 者 . nr d v u m-B m-I m-I m-I w r d-B d-I v a-B a-I a-I u n-B n-I w +你 这么 大 的 屏幕 , 有 点 变形 是 正常 的 吧 r r a u n w d-B d-I v v a u xc +主要 投资 部门 为 冶金 , 建筑 材料 和 服务 业 a vn n v n w n-B n-I c n-B n-I +客户 就 是 玉帝 , 我 还 怕 你们 不 来 呢 n v-B v-I n w r d v r d v xc +刘备 军 追到 雏 城 , 张任 又 逃往 金雁 桥 , 在 金雁 桥 一战 孔明 把 有 实力 的 武将 列 于 阵 前 , 击败 了 张任 n-B n-I v ns-B ns-I w nr d v ns-B ns-I w p ns-B ns-I n nr p v n u n v-B v-I s-B s-I w v u nr +以上 是 主 卧室 装修 会 出现 的 项目 及 应 注意 的 事项 , 所有 的 分项 均 包含 了 小 五金 的 价格 , 不 需要 再 单独 另 计 f v n-B n-I vn v-B v-I u n c v v u n w r u n d v u nz-B nz-I u n w v-B v-I d d d v +虽然 铁 饭碗 比 金 饭碗 差 了 一 点 , 但 这 说明 公务员 在 韩国 同样 是 很 吃 香 的 c n-B n-I p n-B n-I a u m-B m-I w c r v n p ns d v d a-B a-I u +不过 如今 时 过境 迁 , 我们 不 难 发现 , 蔡卓妍 与 谢霆锋 拥有 的 不过 只是 兄妹 之 情 罢 了 c t v-B v-I v-I w r d-B d-I v w nr c nr v u d v n u n v xc +生活 中 , 我 会 和 每 一 个 女孩 子 一 样 , 享受 生活 , 感恩 生活 n f w r v p r-B r-I r-I n-B n-I a-B a-I w v n w v n +你 是 不 是 问答 型 的 r v-B v-I v-I a-B a-I u +当 分子 中 正负 电荷 中心 不 重叠 时 , 就会 使 分子 中 局部 带 正 电 , 局部 带 负 电 , 此时 分子 具有 偶极 矩 p n f a n n d v n w v v n f n v n-B n-I w n v n-B n-I w t n v nz-B nz-I +日本 对 二战 结果 充满 忌恨 , 但 它 不 敢 拿 美国 军事 占领 开刀 , 而是 冲 着 美国 现实 政治 中 的 主要 防范 对象 挑衅 ns p nz n v vn w c r v-B v-I v ns n vn v w c p p ns n n f u a vn n v +金城 作为 贯穿 全剧 的 剧本 家 , 表现 的 十分 活跃 . nr p v n u n n w v u d a w +再 说 了 , 她 现在 正 头疼 怎么 出门 去 v-B v-I xc w r t d a r v v +所以 , 该 明白 许多 道理 了 吧 c w v v m n xc xc +为什么 考生 需要 在 面试 前 模拟 考场 和 题目 r n v p v f v n c n +这 是 最早 的 一 种 行 之 有效 的 办法 , 用来 解决 单兵 使用 黑 火药 兵器 所 遇到 的 一 个 基本 问题 r v a u m-B m-I a-B a-I a-I u n w v v n v n-B n-I n u v u m-B m-I a n +中央 银行 要求 的 存款 准备金 占 其 存款 总额 的 比例 就 是 存款 准备金 率 nt-B nt-I v u n n v r n n u n v-B v-I n n-B n-I +盘古 大陆 所有 的 优点 恰恰 是 岛屿 地图 的 缺点 ns-B ns-I r u n d v n n u n +魔兽 视频 网 都 出 了 视频 了 , 我 没 找到 nz n n d v u n xc w r v v +这个 网站 不 错 , 网站 叫 啥 呢 r n a-B a-I w n v r xc +在 乔丹 带领 下 , 公牛 队 杀 入 当年 的 季后赛 , 在 东部 首轮 淘汰 黄蜂 队 , 但 在 东部 半 决赛 中 被 奥兰多 魔术 队 淘汰 p nr vn f w nt-B nt-I v-B v-I t u n w p f n v nt-B nt-I w c p f n-B n-I f p ns nt-B nt-I v +男人 遇到 大 的 机会 永远 想着 如何 获得 下 一 个 , 女人 则 会 想着 如何 把 这个 机会 的 空间 做 得 更 精细 n v a u n d v r v r-B r-I r-I w n c v v r p r n u n v u d a +然后 说 自己 不 想 让 明 瑾 看 扁 , 才 假装 不 害怕 的 c v r d v v nr-B nr-I v-B v-I w d v d v u +在 这个 时候 , 影响 力 所 发挥 的 作用 更加 关键 p r n w n-B n-I u v u n d a +厮守 在 一 起 还有 进 言 或 示意 的 可能 , 对于 阴谋 或 中 伤 , 也有 阻止 或 解释 的 机会 v d-B d-I d-I v v-B v-I c v u n w p n c vn-B vn-I w v vn c vn u n +不 是 高丽 森 吗 d v nz-B nz-I xc +或者 , 如果 他 找到 这个 地方 , 可能 一切 都会 迎 刃 而 解 c w c r v r n w v r v v-B v-I v-I v-I +本 周 , 国内 外 都 有 一 系列 重要 数据 公布 t-B t-I w s-B s-I d v a-B a-I a n v +每天 大家 都 在 教室 , 寝室 , 食堂 交替 忙碌 r r d p n w n w n vd a +2007 年 被 聘 为 乌海 市 消费 者 协会 法律 顾问 团 律师 t-B t-I p v-B v-I nt-B nt-I nt-I nt-I nt-I nt-I nt-I nt-I n +在 这样 的 季节 , 把 我 的 真挚 的 祝福 捎 给 您 , 愿 幸福 常 在 您 身边 p r u n w p r u a u vn v p r w v an v-B v-I r s diff --git a/PaddleNLP/ELMO/finetune/data/tag.dic b/PaddleNLP/ELMO/finetune/data/tag.dic new file mode 100755 index 00000000..2adb6b8b --- /dev/null +++ b/PaddleNLP/ELMO/finetune/data/tag.dic @@ -0,0 +1,60 @@ +a +a-B +a-I +ad +ad-B +ad-I +an +an-B +an-I +c +d +d-B +d-I +f +f-B +f-I +m +m-B +m-I +n +n-B +n-I +nr +nr-B +nr-I +ns +ns-B +ns-I +nt +nt-B +nt-I +nw +nw-B +nw-I +nz +nz-B +nz-I +p +q +r +r-B +r-I +s +s-B +s-I +t +t-B +t-I +u +v +v-B +v-I +vd +vd-B +vd-I +vn +vn-B +vn-I +w +xc \ No newline at end of file diff --git a/PaddleNLP/ELMO/finetune/data/train/train.tsv b/PaddleNLP/ELMO/finetune/data/train/train.tsv new file mode 100644 index 00000000..4a5931b9 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/data/train/train.tsv @@ -0,0 +1,200 @@ +b . 这 几 个 人 一 坐 到 一 块 儿 就 谈 吃 谈 穿 , 真 是 百 无聊 赖 xc w r m-B m-I n v-B v-I v m-B m-I m-I d v vn v vn w v-B v-I v-B v-I v-I +不 嫩 不 老 是 什么 样 的 d a a-B a-I v n-B n-I u +那么 曾国藩 为什么 这样 对待 李鸿章 呢 c nr r r v nr xc +鲜血 未 干 的 卢旺达 , 已经 重 归 宁静 的 生活 n v-B v-I u ns w d v-B v-I a u n +因为 这些 故事 不仅 新鲜 , 而且 真实 c r n c a w c a +早点 回来 参加 早 午餐 , 好 吗 ? d v v nz-B nz-I w a xc w +生活 中 , 他们 是 让 人 倾慕 的 侠客 , 从容 自得 , 豪情 万丈 n f w r v v n v u n w a a w n m +但是 虽然 如此 , 他 的 病 仍 是 一天 加重 一天 c c r w r u n v-B v-I m v m +袁科 在 袁 志 帮助 下 买 了 火药 , 订制 了 装 爆炸 物 的 木盒 nr p nr-B nr-I vn f v u n w v u v n-B n-I u n +那 我 就 不 知道 怎么 才能 到 外婆 家 了 r r d v-B v-I r v v n-B n-I xc +实际 上 他 虽然 有 着 男人 的 器官 , 确 没 有 男人 的 功能 d-B d-I r c v-B v-I n u n w d n-B n-I n-I u n +是 " 慈悲 " , " 智慧 " 与 " 和平 " 的 精神 象征 v w an w w w n w c w n w u n n +它 的 硝酸 盐 含量 较 其他 培养 基 为 高 , 广泛 地 用于 植物 的 器官 , 花药 , 细胞 和 原生质 体 培养 , 效果 良好 r u nz-B nz-I n d r nz-B nz-I v an w a u v n u n w n w n c vn-B vn-I vn-I w n a +分类 方 示 可以 按 年龄 断 , 按 主题 内容 或 其它 你 认为 方便 的 方法 v d v v p n v w p n n c r r v a u n +全 班 齐 练 , 教师 巡视 , 做完 后 集体 订正 n-B n-I d v w n v w v f n v +他 勉强 爬 起来 , 躲 到 一 棵 树 下 . r ad v-B v-I w v v n-B n-I n-I f w +讨厌 他 那 双 漆黑 如 子夜 清澈 如 泉水 的 眼眸 , 昭示 了 众人 的 丑陋 与 罪恶 . v r r-B r-I a v n a v n u n w v u n u an c n w +作者 具有 深邃 的 洞察 力 , 强烈 的 社会 责任 感 n v a u n-B n-I w a u n n-B n-I +看看 胶南 的 大街 , 还有 写字 楼 v ns u n w c n-B n-I +成都 神钢 挖掘 机 掀开 外资 进军 中国 挖掘 机 市场 的 序幕 ns nz n-B n-I v n v ns n-B n-I n u n +书 里面 交代 非常 清楚 , 父亲 叫 李守中 , 什么 样 的 家庭 背景 呢 n f v d a w n v nr w n-B n-I u n-B n-I xc +两年 过去 了 , 我 对 小令 的 爱 还是 无法 释怀 m v xc w r p nr u vn d vd v +企业 成立 于 1985 年 , 是 一 家 制造 , 设计 各类 大 中型 铝 , 锌 , 镁 结构 复杂 精度 高 的 压铸 模具 专业 生产 工厂 n v p t-B t-I w v m-B m-I v w v r a-B a-I n w n w n n a a-B a-I u nz-B nz-I a vn n +像 是 约 好 了 一 样 , 第 24 代 张 天师 张 正 随 , 也 恰好 是 活 满 了 87 岁 v v v a u a-B a-I w m-B m-I m-I nr-B nr-I nr-B nr-I nr-I w d d v v a u m-B m-I +从前 , 他 没 给 她 的 感情 半点 儿 机会 , 却 只是 对 她 很好 t w r v v r u n m-B m-I n w d d p r a +5 个 民族 乡 俄 亚 纳西 族 乡 , 屋 脚 蒙古 族 乡 , 白 碉 苗族 乡 , 项 脚 蒙古 族 乡 , 固 增 苗族 乡 m-B m-I n-B n-I ns-B ns-I ns-I ns-I ns-I w ns-B ns-I ns-I ns-I ns-I w ns-B ns-I ns-I ns-I w ns-B ns-I ns-I ns-I ns-I w ns-B ns-I ns-I ns-I +有 点 担心 成份 会 不 会 对 皮肤 有 害 d-B d-I v n d-B d-I d-I v n a-B a-I +而且 我 也 经常 在 报纸 上 发表 文章 c r d d p n f v n +我们 以 细致 入 微 的 人性 化 服务 和 独具 特色 的 夜场 滑雪 而 广 受 赞誉 . r p a a-B a-I u vn-B vn-I vn c v n u n vn c ad v-B v-I w +根据 国家 , 省 电子 政务 相关 标准 , 进一步 完善 江门 市 政务 信息 共享 目录 和 数据 交换 规范 p n w n nz-B nz-I vn n w d v ns-B ns-I n n vn n c n vn n +爱 财 君子 才 回 过 神 来 , 赶紧 擦 了 一 把 嘴边 的 口水 , 他 还 没 听说 行 会 里 谁 爆出 过 更 好 的 武器 nr-B nr-I nr-I d v u n v w d v u m-B m-I s u n w r d d v n-B n-I f r v u a-B a-I u n +高 效率 合理 分配 人力 是 很 必要 的 . n-B n-I ad v n v d a u w +草地 上 无 遮 无 挡 , 哪 怕 是 一 顶 帐篷 都 找 不 到 . n f v-B v-I v-I v-I w d-B d-I v m-B m-I n d v-B v-I v-I w +一 楼 原本 是 宾馆 的 大堂 , 已经 夷 为 平 地 m n d v n u n w d v-B v-I v-I v-I +事情 见 报 后 , 他 当 即 成 了 美国 乃至 整个 北美 军人 的 传奇 及 骄傲 . n v-B v-I f w r d-B d-I v u ns c a ns n u n c an w +电气 产品 必须 通过 " 3c " 认证 n n d v w n w vn +以上 就 是 关于 " 江苏 省 南京 市 哪 看 滑膜 炎 好 " 的 相关 介绍 , 希望 对 您 有 所 帮助 f v-B v-I p w ns-B ns-I ns-B ns-I r v n-B n-I a w u vn vn w v p r v-B v-I vn +给 别人 真诚 , 是 给 自己 公道 v r an w v v r n +目前 , 除 我 国 之外 , 还有 一些 国家 征收 营业 税 t w p r n f w v m n v n-B n-I +我 的 目的 很 简单 希望 更多 的 装修 公司 更加 的 诚信 r u n a-B a-I v a u vn n d u a +每个 应用 程序 对其 程式 的 使用 方式 并 不 相同 , 让 我们 先 看看 它们 中 最 常见 的 三 个 吧 r n-B n-I v a u vn n d d a w v r d v r f d a u m-B m-I xc +是 什么 决定 了 我们 一生 的 方向 , 需求 , 使命 , 价值 ? v r v u r n u n w n w n w n w +旱冰 鞋 是 多大 号 的 啊 亲 n-B n-I v a q u xc n +比如 欺诈 客户 , 骗 了 钱 但是 不 给 客户 做 , 或者 , 假装 安排 人 去 医院 做 v v n w v u n c d p n v w c w v v n v n v +但是 , 希望 以后 , 我 还能 遇见 各位 c w v f w r v v r +无锡 龙 寺 农业 生态 园 中 采摘 水果 要钱 吗 ns ns-B ns-I ns-I ns-I ns-I f v n v xc +该 次 我们 在 香港 拜访 了 6 家 大型 资产 管理 公司 , 其他 5 家 均 为 欧美 资 , 而 其 管理 规模 和 人员 团队 均 不 及 惠理 r q r p ns v u m-B m-I a n vn n w r m-B m-I v-B v-I n-B n-I w c r vn n c n n d v-B v-I nt +多元化 , 综合 性 游戏 社区 一 步步 迈进 , 贴心 的 服务 协作 创新 , 给予 用户 最 极致 的 游戏 体验 vn w n-B n-I n n m-B m-I v w a u vn vn vn w v n d a u n vn +刘备 为什么 选择 了 诸葛 亮 作为 政治 委托 人 nr r v u nr-B nr-I v n n-B n-I +除 农业 为 主 外 , 其余 的 劳力 在 外 打工 , 全 村 人均 收入 不 足 3000 元 . p n v-B v-I f w r u n p f v w n-B n-I v n v-B v-I m-B m-I w +创业 管理 是 要 想 办法 生 个 婴儿 并且 最 好 还要 健康 一 点 的 , 直至 使 他 能够 自理 自立 , 这样 就 进入 了 创业 后 阶段 vn vn v v v-B v-I v q n c d-B d-I v a m-B m-I u w p v r v v v w r d v u vn f n +qq 寻仙 法宝 怎么 才能 升 到 12 段 nz nz-B nz-I r v v v m-B m-I +一 个 幸福 的 三 口 之 家 就 这样 因为 战争 而 破碎 了 m-B m-I a u m-B m-I u n d-B d-I p n c v xc +资源 一般 包括 人力 , 材料 , 费用 等 n ad v n w n w n u +一天 夜里 , 小明 的 铅笔 盒 里 传 出 了 吵闹 声 m t w nr u n-B n-I f v-B v-I u vn n +最 明显 的 是 一些 暴力 意味 的 动词 的 大量 使用 d a u v m n n u n u a vn +因此 , 可以 说 国 有 建筑 安装 企业 的 制度 缺陷 , 才 是 人才 流失 的 深层 次 原因 c w v-B v-I a-B a-I vn vn n u n n w v-B v-I vn-B vn-I u n-B n-I n +( 4 ) 客户 端 接收 服务 器 所 返回 的 信息 通过 浏览 器 显示 在 用户 的 显示 屏 上 , 然后 客户 机 与 服务 器 断开 连接 w m w n-B n-I v n-B n-I u v u n p n-B n-I v p n u n-B n-I f w c n-B n-I p n-B n-I v vn +她 介绍 , 她 的 外 祖父 , 父亲 和 她 , 三 代 都 和 共产 党 有 密切 的 联系 r v w r u n-B n-I w n c r w m-B m-I d c nt-B nt-I v a u vn +硬件 稍 显 陈旧 , 但 还是 蛮 温馨 的 n d v an w c v d a u +抱怨 缺水 的 声音 到处 弥漫 , 许多 人 愿意 用 一 块 金币 换 一 壶 凉水 v vn u n d v w n-B n-I v p m-B m-I n v m-B m-I n +着装 正 是 表达 出 与 生活 方式 的 高度 相关 . n v-B v-I v v p n-B n-I u ad vn w +施工 人员 生活 垃圾 定期 运 至 当地 环卫 部门 指定 地点 处理 vn n n n d v p s n n vn n v +实现 廉价 的 无线 显示 输出 v a u a nz-B nz-I +圣诞 节 送 女 朋友 什么 礼物 好 呢 nz-B nz-I v n-B n-I r n a xc +这 是 一 部 叙述 南北 战争 期间 一支 美国 黑人 军队 浴血 奋战 的 历史 影片 . r v m-B m-I v nz-B nz-I n m ns n n v-B v-I u n n w +其实 就 是 变相 传销 , 去 河南 工作 的 兄弟 一定 要 小心 d v-B v-I vn vn w v ns v u n v-B v-I a +江苏 全日制 自考 本科 ns n vn n +在 中国 , 谁 能 为 孩子 代言 ? p ns w r v-B v-I n v w +饭后 服 阿司匹林 可 减少 恶心 呕吐 等 胃肠 道 一 败 涂 地 症状 . t v n v-B v-I n vn u n-B n-I a-B a-I a-I a-I n w +特别 谈到 了 绿化 , 每 平 400 元 投入 , 让 人 很 是 期待 d v u vn w r q m-B m-I v w v n d v v +少年 握 着 一 个 白色 的 板面 , 展示 和 说明 n v u m-B m-I n u n w v c v +经 复核 , 本 年 年末 无形 资产 的 使用 寿命 及 摊销 方法 与 以前 估计 未有 不 同 p vn w n-B n-I t n-B n-I u n-B n-I c vn n p f vn d a-B a-I +凡尔纳 的 小说 有 着 十分 深远 的 影响 nr u n v-B v-I d a u vn +包括 《 世界 报 》 在 内 的 共 10 家 媒体 给 出 了 满分 , 15 家 媒体 给 出 四 颗星 v w nt-B nt-I w v-B v-I u d m-B m-I n v-B v-I u n w m-B m-I n v-B v-I n-B n-I +在 国家 服务 外包 产业 政策 的 大力 支持 下 , 服务 外包 企业 快速 成长 p n vn n n n u ad vn f w vn n n ad v +坚定 不 移 地 推进 产业 转型 升级 a-B a-I a-I u v n vn vn +流浪 者 再次 出现 继续 强暴 她 n-B n-I v-B v-I vd v r +同桌 自主 进入 课件 , 判断 各 幅 图 上 的 小 朋友 的 行为 , 并 说说 判断 原因 n vd v n w v r q n f u n-B n-I u n w c v vn n +目前 , 工业 区 新 一 轮 开发 已 全面 启动 t w n-B n-I n-B n-I n-I vn d ad v +杨怡 饰演 的 宠 妃 万 贞 儿 , 善妒 有 谋略 , 心狠 手辣 . nr v u n-B n-I nr-B nr-I nr-I w v v n w a-B a-I w +最后 , 希望 我们 大家 继续 关注 感恩 中国 网站 , 从 身边 做起 , 从 小事 做起 , 让 我们 的 社会 , 让 我们 的 生活 更加 美好 f w v r r v v nz-B nz-I n w p s v w v-B v-I v-I w v r u n w v r u vn d a +搜狐 娱乐 : 什么 时候 开始 决定 做 这部 戏 的 ? nz-B nz-I w r n v v v r n u w +关键 的 是 怎么 处理 发烧 这个 症状 a u v r v vn r n +新春 期间 , 男女 青年 跨 上 骏马 , 带 上 哈达 , 美酒 等 礼物 , 三 五 成群 , 挨个 地 给 亲友 拜年 t f w n n v-B v-I n w v v n w n u n w v-B v-I v-I w d u p n v +可是 , 赛 前 的 种 种 细节 却 透露 出 球队 并 没 有 那么 自信 c w f-B f-I u q q n d v v n v-B v-I v-I r a +目前 , 7 名 犯罪 嫌疑 人 已 被 顺义 警方 依法 刑事 拘留 t w m-B m-I n-B n-I n-I d p ns n vd v-B v-I +教官 说 着 , 就 摆 开 了 架 式 n v-B v-I w d v-B v-I u n-B n-I +因为 提供 的 材料 很多 , 所以 学生 都 自由 地 列出 竖式 进行 计算 p v u n a w c n d a u v n v vn +加强 同 国内 外 史 学 界 , 学术 团体 的 联谊 , 开展 学术 交流 活动 . v p s-B s-I n-B n-I n-I w n-B n-I u vn w v n vn n w +2001 年 毕业 于 哈尔滨 工业 大学 结构 工程 专业 , 获 硕士 学位 . t-B t-I v p nt-B nt-I nt-I n n n w v n-B n-I w +我 听 女儿 说 , 我 这 儿 天 晚晚 发 高烧 , 如果 人 退烧 了 , 我 就 得 要 出院 了 r v n v w r r-B r-I n t v-B v-I w c n v xc w r d v v v xc +正 因为 这个 平衡 , 使 中国 的 封建 社会 延续 了 数 千年 . d p r an w v ns u nz-B nz-I v u m-B m-I w +服务 很 周 到 , 用餐 也 很 适中 vn d a-B a-I w vn d d a +他们 还 准备 带 克莱尔 去 安全 的 地方 , 彼得 一 怒 之 下 单独 离开 了 . r d v v nr v a u n w nr d-B d-I d-I d-I d v u w +伍兹 还 澄清 了 关于 他 曾经 服用 过 兴奋剂 , 生长 素 等 违禁 药品 的 不 实 传闻 nr d v u p r d v u n w n-B n-I u vn n u d a n +这个 时候 军队 出 动 进行 封锁 , 清扫 r n n v-B v-I v vn w vn +唐 舞桐 是 谁 ? nr-B nr-I v r w +第 三 , 如果 你 没 有 一 个 快乐 的 计划 , 那么 痛苦 便 会 乘虚而入 m-B m-I w c r v-B v-I m-B m-I a u n w c an d v v +霎时 , 尖叫 , 惊呼 , 哭声 充斥 店 内 , 惊骇 的 女人 们 逃 的 逃 , 跑 不 动 的 就 哭喊 d w vn w vn w n v n f w a u n-B n-I v u v w v-B v-I v-I u d v +那些 食物 里 含 的 纤维 素 多 r n f v u n-B n-I a +生死 间 不 容 发 , 彼此 都 要 顾 到 对方 的 安全 n a-B a-I a-I a-I w r d v v v n u an +共 有 8 间 房间 可 供 客人 选择 , 全部 都 给 人 以 安静 典雅 的 感觉 v-B v-I m-B m-I n v v n v w n d v n p a a u n +此外 , 贾士荣 对 不 同 国家 和 地区 转 基因 产品 的 管理 政策 进行 了 比较 c w nr p a-B a-I n c n vn-B vn-I n u vn n v u vn +我 想 走 过去 , 揽 过 她 的 肩膀 安慰 她 让 她 不 要 哭 r v v v w v-B v-I r u n v r v r v-B v-I v-I +线条 宜 细 至 一 丝 至 半 丝 , 采用 施 针 以 稀 线条 打底 . n vd a v m-B m-I v m-B m-I w v v n p a n v w +她 是 名门 之后 , 贵府 小姐 , 却 骄傲 的 宣称 自己 是 一 个 自 食 其 力 的 小 市民 r v n-B n-I w n n w d a u v r v m-B m-I vn-B vn-I vn-I vn-I u n-B n-I +恐怖 电影 , 运用 一 系列 表现 手法 , 使 生命 受到 威胁 而 引起 人 内心 恐惧 的 电影 an n w v m n n-B n-I w v n v vn c v n n an u n +因为 照 书 上 所 说 , 有 一颗 钉子 应 扎 在 天灵盖 c p n-B n-I n-B n-I w v m n v v p n +人民 群众 的 创造 力 是 中国 马克思 主义 理论 不 断 创新 的 源泉 n-B n-I u n-B n-I v ns nz-B nz-I n ad-B ad-I v u n +小说 的 市场 表现 也 颇 为 亮丽 , 出版 社 在 发行 数 日 后 即 决定 加 印 . n u n vn d d-B d-I a w n-B n-I p v t-B t-I t-I d v v-B v-I w +一般 每亩 每次 施 用 硫酸 铵 15 千克 或 尿素 8 千克 . ad r r v-B v-I n-B n-I m-B m-I c n m-B m-I w +淋病 患者 能 不 能 吃 辣 的 东西 n n v-B v-I v-I v-I a u n +并 与 冷却 愈 慢 应力 愈 小 的 传统 观念 大 相 径庭 . c p vn d a n d a u n-B n-I a-B a-I a-I w +德国 爱情 小说 两人 在 第 一 章 就 看 对眼 , 最后 一 章 才能 比翼 双飞 ns n-B n-I n p m-B m-I m-I d v-B v-I w m-B m-I m-I v v-B v-I +难道 情愿 让 父母 贫寒 下去 吗 d v v n a v xc +也 找 过 物业 交涉 过 , 还是 解决 不 了 问题 , 之后 , 过 不 久 还是 漏水 d v u n v xc w c v d u n w f w v d a d v +这 也是 目前 这个 世界 发展 的 不 好 方向 r v t n-B n-I v u a-B a-I n +地图 学 由 起草 技术 的 集合 成长 为 实际 的 科学 nz-B nz-I p vn n u vn v v a u n +加强 重点 领域 技术 攻关 , 抓好 科技 成果 转化 . v n n vn-B vn-I w v n n vn w +电气 自动 化 在 工厂 里 应用 比较 广泛 , 几乎 为 每所 工厂 所 必需 n vn-B vn-I p n f vn d a w d p r n u v +下面 是 我们 几 个 来 回 的 短信 f v r m-B m-I vn-B vn-I u n +但 今天 的 中国 , 充当 了 一 个 反面 的 教材 c t u ns w v u m-B m-I a u n +是 怕 和 他们 平时 报道 的 一 片 歌舞 升 平 的 景象 起 冲突 吗 v v p r t v u m-B m-I an-B an-I an-I u n v vn xc +从前 有 比丘 , 比丘尼 , 式 叉 摩 那 , 沙弥 , 沙弥 尼 , 在 历史 发展 的 过程 中 , 上座部 的 比丘尼 僧 团 消失 了 t v nz w nz w nz-B nz-I nz-I nz-I w nz w nz-B nz-I w p n vn u n f w n u nz n n v-B v-I +报价 相同 , 按 报价 时间 的 先后 排序 n a w p vn n u n v +这些 细节 之 处 是 伪造 不 出来 . r n u n v v d v w +教学 模式 和 学习 任务 二者 共同 构成 了 教学 问题 的 解决 方案 vn n c vn n r ad v u vn n u n-B n-I +举升 车辆 时 一定 要 注意 安全 v n n v-B v-I v an +我们 了解 了 家乡 人 物质 生活 所 发生 的 巨大 变化 r v u n n n vn u v u a vn +大黄 更 是 耳聪目明 . nr d-B d-I a w +做 高级 将领 的 , 主意 有 参谋 给 出 , 计划 自有 下级 军官 去 施行 , 自己 凭 什么 还要 去 找 苦 头 吃 呢 v a n u w n v n v-B v-I w vn v n n v v w r d-B d-I v v-B v-I n-B n-I v xc +面对 这些 存在 的 问题 , 一 味 的 抱怨 , 等待 都 解决 不 了 问题 v r v u n w d-B d-I u v w v d v d u n +车队 每 到 夏季 会 派发 冷饮 , 凉茶 还有 绿豆 汤 n r p t v v n w n c n-B n-I +不 可 触及 的 夜空 , 写 满 过往 的 哀伤 v-B v-I v-I u n w v a t u n +环境 问题 已经 越来 越 严重 影响 到 我们 的 日常 生活 n-B n-I d d-B d-I ad v v r u n-B n-I +该 型号 并 未 投产 . r n d-B d-I v w +男孩 与 女孩 ) 图片 n c n w n +农村 社会 的 诉讼 现象 所 反映 的 司法 诉讼 观念 , 同样 决定 于 社会 存在 中 历史 和 现实 的 法律 现象 n n u vn n u v u n vn n w ad v p vn-B vn-I f n c n u n n +4 . 我们 要 不 断 改进 学习 方法 , 增加 学习 效率 m-B m-I r v d-B d-I v n-B n-I w v n-B n-I +整个 里斯德 帝国 就 只有 她 一 个 圣女 , 难 不 成 还能 扯 到 国外 去 a ns n d v r m-B m-I n w ad v-B v-I v v v s v +协助 驻地 监理 工程 师 对 施工 计划 进行 审查 v n vn n-B n-I p vn n v vn +其中 农业 人口 1342 人 , 劳动 力 685 人 . f n n m n w n-B n-I m n w +那 就 是 想 拯救 现实 中 深受 苦难 的 百姓 , 只有 通过 正确 的 政治 才 可以 ! r v-B v-I v v n f v n u n w c p a u n d v w +国家 是否 有 颁布 什么 法律 法规 对 这种 情况 进行 说明 n d v v r n n p r n v vn +一 家 韩国 公司 在 本 周 内 将 举行 为 期 48 小时 的 黑客 竞赛 , 并 提供 10 万 美元 奖金 m-B m-I ns n p r-B r-I f d v v-B v-I m-B m-I u nz n w c v m-B m-I m-I n +3 , 负责 全 区 人口 和 计划 生育 基础 信息 库 的 建设 , 维护 , 管理 . m w v n-B n-I n c n-B n-I n n-B n-I u vn w vn w vn w +被 称赞 的 人 就 去 打听 了 一 下 , 原来 舂 谷 者 却 是 这 人 的 母亲 p v u n d v v u m-B m-I w d n-B n-I n-I v-B v-I r n u n +许多 中国 物理 学 家 一直 是 维护 这种 观念 的 . m ns n-B n-I n-I d v v r n u w +由此 实现 中国 户籍 制度 的 全面 改革 d v ns n n u a vn +第 五 十 七 条 各级 人民 政府 应当 加强 粮食 仓储 设施 , 物流 运输 , 应急 加工 和 供应 网点 建设 m-B m-I m-I m-I m-I r n-B n-I v v n vn n w n vn w vn vn c vn n vn +一 个 人 想 创业 成功 , 不 仅仅 取决 于 自身 的 努力 , 更 重要 的 是 要 有 一 个 好 的 平台 n-B n-I n-I v vn a w d-B d-I v-B v-I r u an w a-B a-I u v v v m-B m-I a-B a-I n +他 仍然 关心 国家 和 军队 的 建设 与 发展 , 坚决 拥护 党 中央 的 路线 及 政策 . r d v n c n u vn c vn w ad v nt-B nt-I u n c n w +忽然 , 他 要 王洪文 把 桌子 上 的 一 个 鸡蛋 立 起来 d w r v nr p n f u m-B m-I n v v +你 换 到 另 一 排 , 你 原来 站 的 那 一 排 , 就 开始 动 的 比较 快 了 r v v r m-B m-I w r d v u r m-B m-I w d v v u d a xc +千千 要 将 这 几 个 看 上去 很 奇妙 的 事物 联系 到 一 起 , 然而 , 却 总 像 是 欠缺 一 点 什么 nr v p r m-B m-I d-B d-I d a u n v p s-B s-I w c w d d v v v m-B m-I r +剧目 所 用 曲牌 215 个 . n v-B v-I n m-B m-I w +那么 一般 外痔 需要 如何 治疗 呢 d ad n v r v xc +玛雅 的 天文 台 也是 充满 特色 的 建筑 物 ns u n-B n-I v v n u n-B n-I +这种 回应 基于 如 下 认识 公平 竞争 将 产生 最 经济 的 资源 配置 , 最 低 的 价格 , 最 高 的 质量 和 最 大 的 物质 进步 r vn v vn-B vn-I n vn-B vn-I d v d n u vn-B vn-I w a-B a-I u n w a-B a-I u n c a-B a-I u n vn +我们 只能 进 不 能 退 了 , 我们 只能 坚持 下去 r v v v-B v-I v xc w r v v v +在 对于 一 个 生词 的 一次 学习 中 , 就 可以 反复 多次 强化 对 这个 单词 的 记忆 p p m-B m-I n u m vn f w d v d m v p r n u n +雨夜 朝 东方 眨 了 眨 眼睛 , 放 出 高 分贝 的 电量 nr p nr v-B v-I v-I n w v-B v-I n-B n-I u n +你 可以 表现 得 更 谦虚 , 时不时 的 来 点 自嘲 , 装 点 小 傻 , 这样 会 让 别人 感觉 更 好 v-B v-I v u d a w n u v q v w v-B v-I a a w r v v r v a-B a-I +解决 好 早餐 问题 后 , 大家 分别 把 各自 的 东西 都 放在 咱们 领队 飞鹰 的 车 上 v-B v-I n n f w r d p r u n d v r n nr u s-B s-I +钉 马掌 是 相当 讲究 的 专业 本事 . v n v d a u a n w +实验 结果 验证 了 该 方案 的 可行 性 和 有效 性 vn n v u r n u n-B n-I c n-B n-I +平 日 里 这 名 老人 帮 着 男孩 的 妈妈 照 看 他 , 枪击 案 发生 在 老人 家中 t-B t-I t-I r q n v u n u n v-B v-I r w n-B n-I v p n s +景点 小吃 他 都 懂 都 可以 拿到 最 实惠 的 价格 n n r d v d v v a-B a-I u n +这次 洽谈 会 有 20 多 个 国家 的 客 商 参加 , 成交 项目 金额 4000 多万 美元 . r n-B n-I v m-B m-I m-I n u n-B n-I v w vn n n m-B m-I m-I w +符合 未来 人 居 标准 固然 重要 , 市场 表现 也 不 可 或 缺 v t n-B n-I n d a w n vn d a-B a-I a-I a-I +这 一 点 来 说 , 不管 是 男 设计 师 还是 女 设计 师 , 主要 还是 看 作品 的 思想 表达 r-B r-I r-I v-B v-I w c v a n-B n-I c a n-B n-I w ad d v n u n vn +那 分明 是 阿爸 , 人 却 只 剩 了 上 半 个 r d v n w n d d v u f m-B m-I +2005 年 至今 , 任 广东 钜豪 照明 有限 公司 营销 副总 经理 t-B t-I d w v nt-B nt-I nt-I nt-I nt-I vn n-B n-I +这 对 我 和 弓 都 是 很好 的 锻炼 . r p r c nr v-B v-I a u vn w +当 接近 地面 时 , 太空 船 会 像 飞机 一 样 缓缓 滑行 到 跑道 上 . p v n n w n-B n-I v v n a-B a-I d v v n f w +巴菲特 在 会 上 轻松 化解 提问 , 对 美国 的 经济 前景 也 信心 十足 nr p n f ad v vn w p ns u n n d n a +还有 , 美国 总统 选举 很 不 公平 v w n-B n-I vn d a-B a-I +境内 单位 或者 个人 在 境外 接受 应 税 服务 s n c n p s v nz-B nz-I nz-I +每个 帝国 战争 都 是 一 场 内战 , 一 个 警察 行动 . r nz-B nz-I v-B v-I m-B m-I n w m-B m-I n vn w +此 建议 旨在 使 俄罗斯 为 加强 世界 粮食 安全 作出 更 大 贡献 r n v v ns p v n n an v a-B a-I n +一些 人 争先 恐 后 的 答应 着 冲 了 出来 n-B n-I v-B v-I v-I u v u v u v +对 部分 病人 可能 剂量 过 大 , 产生 了 毒 副 作用 , 反而 削弱 或 抵销 了 治疗 的 积极 作用 p n n v n a-B a-I w v u n n-B n-I w d v c v u vn u a n +朱元璋 在 世 时 即 首开 恶 例 nr v-B v-I n d v a n +头痛 也 可以 是 痛觉 传导 纤维 或 痛觉 各级 中枢 或 调节 痛觉 的 镇痛 结构 发生 病变 所致 an d v v n vn n c n r n c v n u vn n v vn v +不过 这个 价钱 也 算 很 值 了 c r n d v d a xc +第 5 , 6 自然 段 , 谈 对 这 两 样 伟大 事物 的 研究 探索 的 方式 m-B m-I w m n-B n-I w v p m-B m-I m-I a n u vn vn u n +接 下来 的 日子 里 朝廷 上 风云 变幻 , 爷 倒 是 喜事 颇多 v-B v-I u n f n f v-B v-I w n d-B d-I n a +建立 工作 责任 制度 , 保证 每 项 工作 都 有 具体 人 负责 , 避免 有 的 工作 无 人 过 问 v n n n w v r q n d v a n v w v v u n v-B v-I v-B v-I +秀 米 于 出嫁 途中 遭遇 土匪 绑票 , 被 劫 至 偏 野 小 村 花 家 舍 的 一 处 湖 心 小岛 上 nr-B nr-I p vn s v n vn w v-B v-I p a a n-B n-I n n-B n-I u m-B m-I n-B n-I n f +科学 研究 表明 , 这 是 人体 的 信息 传递 在 起 作用 a vn v w r v n u n vn d v-B v-I +可见 , 该 项目 的 经济 效益 , 社会 效益 , 生态 效益 尤 为 显著 v w r n u n-B n-I w n-B n-I w n n d-B d-I a +中国 国内 出具 的 公证 书 , 商业 证明 等 , 如何 办理 领事 认证 ns s v u n-B n-I w n n u w r v n vn +无 需 投入 太多 的 启动 费用 既 可 拥有 合作 机会 v-B v-I v a u vn n c v v vn n +也 不 知道 是 怎么 回事 , 今年 的 女生 怎么 比 男生 还要 壮实 d d v v n-B n-I w t u n r p n v a +1933 年 生 , 江苏 常熟 人 . t-B t-I v w ns ns n w +北部 的 外敌 重创 , 虽然 不 敢 说 突厥 人 已经 彻底 降服 , 但是 , 他们 想要 南下 趁 火 打劫 , 那 是 不 可能 的 了 f u n v w c v-B v-I v n-B n-I d ad v w c w r v v v-B v-I v-I w r v d v u xc +就 一 张 脸 , 老 了 就 变 不 回来 了 d n-B n-I n-I w a u d v d v xc +能够 根据 材料 的 特性 , 用途 , 来源 或 其他 标准 对 纺织 材料 进行 分类 v p n u n w n w n c r n p n-B n-I v vn +搅拌 台 上 操作 人员 应 戴 口罩 , 搬运 水泥 工人 应 戴 口罩 和 手套 vn s-B s-I vn n v v-B v-I w v n n v v-B v-I c n diff --git a/PaddleNLP/ELMO/finetune/infer.py b/PaddleNLP/ELMO/finetune/infer.py new file mode 100755 index 00000000..5ef2bde0 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/infer.py @@ -0,0 +1,144 @@ +from __future__ import print_function +import numpy as np +import reader +import paddle.fluid as fluid +import paddle +import argparse +import time +import sys +import io + +if sys.version_info > (3,): + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +else: + reload(sys) + sys.setdefaultencoding("utf8") + +def parse_args(): + parser = argparse.ArgumentParser("Run inference.") + parser.add_argument( + '--batch_size', + type=int, + default=5, + help='The size of a batch. (default: %(default)d)' + ) + parser.add_argument( + '--model_path', + type=str, + default='./conf/model', + help='A path to the model. (default: %(default)s)' + ) + parser.add_argument( + '--test_data_dir', + type=str, + default='./data/test_data', + help='A directory with test data files. (default: %(default)s)' + ) + parser.add_argument( + "--word_dict_path", + type=str, + default="./conf/word.dic", + help="The path of the word dictionary. (default: %(default)s)" + ) + parser.add_argument( + "--label_dict_path", + type=str, + default="./conf/tag.dic", + help="The path of the label dictionary. (default: %(default)s)" + ) + parser.add_argument( + "--word_rep_dict_path", + type=str, + default="./conf/q2b.dic", + help="The path of the word replacement Dictionary. (default: %(default)s)" + ) + args = parser.parse_args() + return args + + +def print_arguments(args): + print('----------- Configuration Arguments -----------') + for arg, value in sorted(vars(args).items()): + print('%s: %s' % (arg, value)) + print('------------------------------------------------') + + +def get_real_tag(origin_tag): + if origin_tag == "O": + return "O" + return origin_tag[0:len(origin_tag) - 2] + +def to_lodtensor(data, place): + seq_lens = [len(seq) for seq in data] + cur_len = 0 + lod = [cur_len] + for l in seq_lens: + cur_len += l + lod.append(cur_len) + flattened_data = np.concatenate(data, axis=0).astype("int64") + flattened_data = flattened_data.reshape([len(flattened_data), 1]) + res = fluid.LoDTensor() + res.set(flattened_data, place) + res.set_lod([lod]) + return res + +def infer(args): + id2word_dict = reader.load_dict(args.word_dict_path) + word2id_dict = reader.load_reverse_dict(args.word_dict_path) + + id2label_dict = reader.load_dict(args.label_dict_path) + label2id_dict = reader.load_reverse_dict(args.label_dict_path) + q2b_dict = reader.load_dict(args.word_rep_dict_path) + test_data = paddle.batch( + reader.test_reader(args.test_data_dir, + word2id_dict, + label2id_dict, + q2b_dict), + batch_size = args.batch_size) + place = fluid.CPUPlace() + exe = fluid.Executor(place) + + inference_scope = fluid.core.Scope() + with fluid.scope_guard(inference_scope): + [inference_program, feed_target_names, + fetch_targets] = fluid.io.load_inference_model(args.model_path, exe) + for data in test_data(): + full_out_str = "" + word_idx = to_lodtensor([x[0] for x in data], place) + word_list = [x[1] for x in data] + (crf_decode, ) = exe.run(inference_program, + feed={"word":word_idx}, + fetch_list=fetch_targets, + return_numpy=False) + lod_info = (crf_decode.lod())[0] + np_data = np.array(crf_decode) + assert len(data) == len(lod_info) - 1 + for sen_index in range(len(data)): + assert len(data[sen_index][0]) == lod_info[ + sen_index + 1] - lod_info[sen_index] + word_index = 0 + outstr = "" + cur_full_word = "" + cur_full_tag = "" + words = word_list[sen_index] + for tag_index in range(lod_info[sen_index], + lod_info[sen_index + 1]): + cur_word = words[word_index] + cur_tag = id2label_dict[str(np_data[tag_index][0])] + if cur_tag.endswith("-B") or cur_tag.endswith("O"): + if len(cur_full_word) != 0: + outstr += cur_full_word + u"/" + cur_full_tag + u" " + cur_full_word = cur_word + cur_full_tag = get_real_tag(cur_tag) + else: + cur_full_word += cur_word + word_index += 1 + outstr += cur_full_word + u"/" + cur_full_tag + u" " + outstr = outstr.strip() + full_out_str += outstr + u"\n" + print(full_out_str.strip(), file=sys.stdout) + +if __name__ == "__main__": + args = parse_args() + print_arguments(args) + infer(args) diff --git a/PaddleNLP/ELMO/finetune/network.py b/PaddleNLP/ELMO/finetune/network.py new file mode 100755 index 00000000..d8489794 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/network.py @@ -0,0 +1,149 @@ +""" +The function lex_net(args) define the lexical analysis network structure +""" +import sys +import os +import math + +import paddle.fluid as fluid +from paddle.fluid.initializer import NormalInitializer +import paddle.fluid.layers as layers +from bilm import elmo_encoder +from bilm import emb +#import bilm +import ipdb + +def lex_net(args, word_dict_len, label_dict_len): + """ + define the lexical analysis network structure + """ + word_emb_dim = args.word_emb_dim + grnn_hidden_dim = args.grnn_hidden_dim + emb_lr = args.emb_learning_rate + crf_lr = args.crf_learning_rate + bigru_num = args.bigru_num + init_bound = 0.1 + IS_SPARSE = True + + def _bigru_layer(input_feature): + """ + define the bidirectional gru layer + """ + pre_gru = fluid.layers.fc( + input=input_feature, + size=grnn_hidden_dim * 3, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=-init_bound, high=init_bound), + regularizer=fluid.regularizer.L2DecayRegularizer( + regularization_coeff=1e-4))) + gru = fluid.layers.dynamic_gru( + input=pre_gru, + size=grnn_hidden_dim, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=-init_bound, high=init_bound), + regularizer=fluid.regularizer.L2DecayRegularizer( + regularization_coeff=1e-4))) + + pre_gru_r = fluid.layers.fc( + input=input_feature, + size=grnn_hidden_dim * 3, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=-init_bound, high=init_bound), + regularizer=fluid.regularizer.L2DecayRegularizer( + regularization_coeff=1e-4))) + gru_r = fluid.layers.dynamic_gru( + input=pre_gru_r, + size=grnn_hidden_dim, + is_reverse=True, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=-init_bound, high=init_bound), + regularizer=fluid.regularizer.L2DecayRegularizer( + regularization_coeff=1e-4))) + + bi_merge = fluid.layers.concat(input=[gru, gru_r], axis=1) + return bi_merge + + def _net_conf(word, target): + """ + Configure the network + """ + #add elmo + #ipdb.set_trace() + #elmo_embedding = emb(word) + #layers.Print(word, message='input_seq', summarize=10) + #drnn = layers.DynamicRNN() + #with drnn.block(): + # elmo_embedding = drnn.step_input(elmo_embedding) + # elmo_enc= elmo_encoder(elmo_embedding) + # drnn.output(elmo_enc) + # elmo_enc = drnn() + + word_embedding = fluid.layers.embedding( + input=word, + size=[word_dict_len, word_emb_dim], + dtype='float32', + is_sparse=IS_SPARSE, + param_attr=fluid.ParamAttr( + learning_rate=emb_lr, + name="word_emb", + initializer=fluid.initializer.Uniform( + low=-init_bound, high=init_bound))) + #layers.Print(word, message='word', summarize=-1) + #layers.Print(word_r, message='word_r', summarize=-1) + #word_r=fluid.layers.sequence_reverse(word, name=None) + #layers.Print(word_r, message='word_r_1', summarize=-1) + elmo_embedding = emb(word) + #elmo_embedding_r=emb(word_r) + #layers.Print(elmo_embedding, message='elmo_embedding', summarize=10) + #layers.Print(word, message='input_seq', summarize=10) + #drnn = layers.DynamicRNN() + #with drnn.block(): + #elmo_embed = drnn.step_input(elmo_embedding) + #layers.Print(elmo_embed, message='elmo_enc', summarize=10) + #elmo_enc = elmo_encoder(elmo_embedding) + elmo_enc = elmo_encoder(elmo_embedding, args.elmo_l2_coef) + #input_feature=layers.concat(input=[elmo_enc, word_embedding], axis=1) + #input_feature=elmo_enc + #input_feature=layers.concat#drnn.output(input_feature) + #input_feature = drnn() + # input_feature = word_embedding + #layers.Print(elmo_enc, message='elmo_enc', summarize=10) + input_feature=layers.concat(input=[elmo_enc, word_embedding], axis=1) + for i in range(bigru_num): + bigru_output = _bigru_layer(input_feature) + input_feature = bigru_output + + emission = fluid.layers.fc( + size=label_dict_len, + input=bigru_output, + param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Uniform( + low=-init_bound, high=init_bound), + regularizer=fluid.regularizer.L2DecayRegularizer( + regularization_coeff=1e-4))) + + crf_cost = fluid.layers.linear_chain_crf( + input=emission, + label=target, + param_attr=fluid.ParamAttr( + name='crfw', + learning_rate=crf_lr)) + crf_decode = fluid.layers.crf_decoding( + input=emission, param_attr=fluid.ParamAttr(name='crfw')) + avg_cost = fluid.layers.mean(x=crf_cost) + return avg_cost, crf_decode + + word = fluid.layers.data( + name='word', shape=[1], dtype='int64', lod_level=1) + #word_r = fluid.layers.data( + # name='word_r', shape=[1], dtype='int64', lod_level=1) + target = fluid.layers.data( + name="target", shape=[1], dtype='int64', lod_level=1) + + avg_cost, crf_decode= _net_conf(word, target) + + return avg_cost, crf_decode, word,target diff --git a/PaddleNLP/ELMO/finetune/reader.py b/PaddleNLP/ELMO/finetune/reader.py new file mode 100755 index 00000000..ac7ce8e7 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/reader.py @@ -0,0 +1,128 @@ +#coding: utf-8 +""" +The file_reader converts raw corpus to input. +""" +import os +import __future__ +import io + +def file_reader(file_dir, + word2id_dict, + label2id_dict, + word_replace_dict, + filename_feature=""): + """ + define the reader to read files in file_dir + """ + word_dict_len = max(map(int, word2id_dict.values())) + 1 + label_dict_len = max(map(int, label2id_dict.values())) + 1 + def reader(): + """ + the data generator + """ + index = 0 + for root, dirs, files in os.walk(file_dir): + for filename in files: + for line in io.open(os.path.join(root, filename), 'r', encoding='utf8'): + index += 1 + bad_line = False + line = line.strip("\n") + if len(line) == 0: + continue + seg_tag = line.rfind("\t") + # TODO 词和字模型 + word_part = line[0:seg_tag].strip().split(' ') + label_part = line[seg_tag + 1:] + word_idx = [] + words = word_part + for word in words: + if word in word_replace_dict: + word = word_replace_dict[word] + if word in word2id_dict: + word_idx.append(int(word2id_dict[word])) + else: + word_idx.append(int(word2id_dict[""])) + target_idx = [] + labels = label_part.strip().split(" ") + for label in labels: + if label in label2id_dict: + target_idx.append(int(label2id_dict[label])) + else: + target_idx.append(int(label2id_dict["O"])) + if len(word_idx) != len(target_idx): + print(line) + continue + #import ipdb;ipdb.set_trace() + #import copy;word_idx1=copy.deepcopy(word_idx) + #word_idx1=word_idx + #word_idx.reverse() + #import ipdb;ipdb.set_trace() + yield word_idx, target_idx + return reader + +def test_reader(file_dir, + word2id_dict, + label2id_dict, + word_replace_dict, + filename_feature=""): + """ + define the reader to read test files in file_dir + """ + word_dict_len = max(map(int, word2id_dict.values())) + 1 + label_dict_len = max(map(int, label2id_dict.values())) + 1 + def reader(): + """ + the data generator + """ + index = 0 + for root, dirs, files in os.walk(file_dir): + for filename in files: + if not filename.startswith(filename_feature): + continue + for line in io.open(os.path.join(root, filename), 'r', encoding='utf8'): + index += 1 + bad_line = False + line = line.strip("\n") + if len(line) == 0: + continue + seg_tag = line.rfind("\t") + if seg_tag == -1: + seg_tag = len(line) + word_part = line[0:seg_tag] + label_part = line[seg_tag + 1:] + word_idx = [] + words = word_part + for word in words: + if ord(word) < 0x20: + word = ' ' + if word in word_replace_dict: + word = word_replace_dict[word] + if word in word2id_dict: + word_idx.append(int(word2id_dict[word])) + else: + word_idx.append(int(word2id_dict["OOV"])) + yield word_idx, words + return reader + + +def load_reverse_dict(dict_path): + """ + Load a dict. The first column is the key and the second column is the value. + """ + result_dict = {} + # TODO 字和词模型 + for idx, line in enumerate(io.open(dict_path, "r", encoding='utf8')): + terms = line.strip("\n") + result_dict[terms] = idx + return result_dict + + +def load_dict(dict_path): + """ + Load a dict. The first column is the value and the second column is the key. + """ + result_dict = {} + for idx, line in enumerate(io.open(dict_path, "r", encoding='utf8')): + terms = line.strip("\n") + result_dict[idx] = terms + return result_dict diff --git a/PaddleNLP/ELMO/finetune/run.sh b/PaddleNLP/ELMO/finetune/run.sh new file mode 100755 index 00000000..dde44774 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/run.sh @@ -0,0 +1,13 @@ +export FLAGS_fraction_of_gpu_memory_to_use=0.5 +export FLAGS_eager_delete_tensor_gb=0.0 +export FLAGS_fast_eager_deletion_mode=1 +export CUDA_VISIBLE_DEVICES=4 + +python train.py \ +--traindata_dir data/train \ +--model_save_dir model \ +--use_gpu 1 \ +--corpus_type_list train \ +--corpus_proportion_list 1 \ +--num_iterations 200000 \ +--testdata_dir data/dev $@ \ diff --git a/PaddleNLP/ELMO/finetune/train.py b/PaddleNLP/ELMO/finetune/train.py new file mode 100755 index 00000000..c1914857 --- /dev/null +++ b/PaddleNLP/ELMO/finetune/train.py @@ -0,0 +1,354 @@ +""" +This file is used to train the model. +""" +import os +import sys +import math +import time +import random +import argparse + +import numpy as np +import paddle +import paddle.fluid as fluid + +import reader +from network import lex_net +from bilm import init_pretraining_params + +def parse_args(): + """ + Parsing the input parameters. + """ + parser = argparse.ArgumentParser("Training for lexical analyzer.") + parser.add_argument( + "--traindata_dir", + type=str, + default="data/train_data", + help="The folder where the training data is located.") + parser.add_argument( + "--testdata_dir", + type=str, + default="data/test_data", + help="The folder where the training data is located.") + parser.add_argument( + "--model_save_dir", + type=str, + default="./models", + help="The model will be saved in this path.") + parser.add_argument( + "--save_model_per_batchs", + type=int, + default=1000, + help="Save the model once per xxxx batch of training") + parser.add_argument( + "--eval_window", + type=int, + default=20, + help="Training will be suspended when the evaluation indicators on the validation set" \ + " no longer increase. The eval_window specifies the scope of the evaluation.") + parser.add_argument( + "--batch_size", + type=int, + default=32, + help="The number of sequences contained in a mini-batch, or the maximum" \ + "number of tokens (include paddings) contained in a mini-batch.") + parser.add_argument( + "--corpus_type_list", + type=str, + default=["human", "feed", "query", "title", "news"], + nargs='+', + help="The pattern list of different types of corpus used in training.") + parser.add_argument( + "--corpus_proportion_list", + type=float, + default=[0.2, 0.2, 0.2, 0.2, 0.2], + nargs='+', + help="The proportion list of different types of corpus used in training.") + parser.add_argument( + "--use_gpu", + type=int, + default=False, + help="Whether or not to use GPU. 0-->CPU 1-->GPU") + parser.add_argument( + "--traindata_shuffle_buffer", + type=int, + default=200000, + help="The buffer size used in shuffle the training data.") + parser.add_argument( + "--word_emb_dim", + type=int, + default=128, + help="The dimension in which a word is embedded.") + parser.add_argument( + "--grnn_hidden_dim", + type=int, + default=256, + help="The number of hidden nodes in the GRNN layer.") + parser.add_argument( + "--bigru_num", + type=int, + default=2, + help="The number of bi_gru layers in the network.") + parser.add_argument( + "--base_learning_rate", + type=float, + default=1e-3, + help="The basic learning rate that affects the entire network.") + parser.add_argument( + "--emb_learning_rate", + type=float, + default=5, + help="The real learning rate of the embedding layer will be" \ + " (emb_learning_rate * base_learning_rate)." + ) + parser.add_argument( + "--crf_learning_rate", + type=float, + default=0.2, + help="The real learning rate of the embedding layer will be" \ + " (crf_learning_rate * base_learning_rate)." + ) + parser.add_argument( + "--word_dict_path", + type=str, + default="../data/vocabulary_min5k.txt", + help="The path of the word dictionary." + ) + parser.add_argument( + "--label_dict_path", + type=str, + default="data/tag.dic", + help="The path of the label dictionary." + ) + parser.add_argument( + "--word_rep_dict_path", + type=str, + default="conf/q2b.dic", + help="The path of the word replacement Dictionary." + ) + parser.add_argument( + "--num_iterations", + type=int, + default=40000, + help="The maximum number of iterations. If set to 0 (default), do not limit the number." + ) + + #add elmo args + parser.add_argument( + "--elmo_l2_coef", + type=float, + default=0.001, + help="Weight decay. (default: %(default)f)" + ) + parser.add_argument( + "--elmo_dict_dir", + default='data/vocabulary_min5k.txt', + help="If set, load elmo dict." + ) + parser.add_argument( + '--pretrain_elmo_model_path', + default="data/baike_elmo_checkpoint", + help="If set, load elmo checkpoint." + ) + args = parser.parse_args() + if len(args.corpus_proportion_list) != len(args.corpus_type_list): + sys.stderr.write( + "The length of corpus_proportion_list should be equal to the length of corpus_type_list.\n" + ) + exit(-1) + return args + + +def print_arguments(args): + print('----------- Configuration Arguments -----------') + for arg, value in sorted(vars(args).items()): + print('%s: %s' % (arg, value)) + print('------------------------------------------------') + + +def to_lodtensor(data, place): + """ + Convert data in list into lodtensor. + """ + seq_lens = [len(seq) for seq in data] + cur_len = 0 + lod = [cur_len] + for l in seq_lens: + cur_len += l + lod.append(cur_len) + flattened_data = np.concatenate(data, axis=0).astype("int64") + flattened_data = flattened_data.reshape([len(flattened_data), 1]) + res = fluid.LoDTensor() + res.set(flattened_data, place) + res.set_lod([lod]) + return res + + +def test(exe, chunk_evaluator, save_dirname, test_data, place): + """ + Test the network in training. + """ + #import ipdb;ipdb.set_trace() + inference_scope = fluid.core.Scope() + with fluid.scope_guard(inference_scope): + [inference_program, feed_target_names, fetch_targets] = fluid.io.load_inference_model(save_dirname, exe) + chunk_evaluator.reset() + for data in test_data(): + word = to_lodtensor(list(map(lambda x: x[0], data)), place) + #import ipdb;ipdb.set_trace() + #word_r = to_lodtensor(list(map(lambda x: x[0].reverse(), data)), place) + #word_r_lod=[] + #for data1 in data: + # data1[0].reverse() + # word_r_lod.append(data1[0]) + #import ipdb;ipdb.set_trace() + #word_r = to_lodtensor(word_r_lod,place) + target = to_lodtensor(list(map(lambda x: x[1], data)), place) + #import ipdb + #ipdb.set_trace() + result_list = exe.run( + inference_program, + feed={ + "word": word, + "target": target + }, + fetch_list=fetch_targets) + number_infer = np.array(result_list[0]) + number_label = np.array(result_list[1]) + number_correct = np.array(result_list[2]) + chunk_evaluator.update(int(number_infer[0]), int(number_label[0]), + int(number_correct[0])) + return chunk_evaluator.eval() + +def train(args): + """ + Train the network. + """ + if not os.path.exists(args.model_save_dir): + os.mkdir(args.model_save_dir) + + word2id_dict = reader.load_reverse_dict(args.word_dict_path) + label2id_dict = reader.load_reverse_dict(args.label_dict_path) + word_rep_dict = reader.load_dict(args.word_rep_dict_path) + word_dict_len = max(map(int, word2id_dict.values())) + 1 + label_dict_len = max(map(int, label2id_dict.values())) + 1 + + avg_cost, crf_decode, word,target= lex_net(args, word_dict_len, label_dict_len) + adam_optimizer = fluid.optimizer.Adam(learning_rate=args.base_learning_rate) + adam_optimizer.minimize(avg_cost) + + (precision, recall, f1_score, num_infer_chunks, num_label_chunks, + num_correct_chunks) = fluid.layers.chunk_eval( + input=crf_decode, + label=target, + chunk_scheme="IOB", + num_chunk_types=int(math.ceil((label_dict_len - 1) / 2.0))) + chunk_evaluator = fluid.metrics.ChunkEvaluator() + chunk_evaluator.reset() + + train_reader_list = [] + corpus_num = len(args.corpus_type_list) + for i in range(corpus_num): + train_reader = paddle.batch( + paddle.reader.shuffle( + reader.file_reader(args.traindata_dir, + word2id_dict, + label2id_dict, + word_rep_dict, + args.corpus_type_list[i]), + buf_size=args.traindata_shuffle_buffer), + batch_size=int(args.batch_size * args.corpus_proportion_list[i])) + train_reader_list.append(train_reader) + test_reader = paddle.batch( + reader.file_reader(args.testdata_dir, word2id_dict, label2id_dict, word_rep_dict), + batch_size=args.batch_size) + train_reader_itr_list = [] + for train_reader in train_reader_list: + cur_reader_itr = train_reader() + train_reader_itr_list.append(cur_reader_itr) + + place = fluid.CUDAPlace(0) if args.use_gpu else fluid.CPUPlace() + feeder = fluid.DataFeeder(feed_list=[word, target], place=place) + exe = fluid.Executor(place) + exe.run(fluid.default_startup_program()) + #add elmo finetune layers + init_pretraining_params(exe,args.pretrain_elmo_model_path,fluid.default_main_program()) + batch_id = 0 + start_time = time.time() + eval_list = [] + iter = 0 + while True: + full_batch = [] + cur_batch = [] + for i in range(corpus_num): + reader_itr = train_reader_itr_list[i] + try: + cur_batch = next(reader_itr) + except StopIteration: + print(args.corpus_type_list[i] + + " corpus finish a pass of training") + new_reader = train_reader_list[i] + train_reader_itr_list[i] = new_reader() + cur_batch = next(train_reader_itr_list[i]) + full_batch += cur_batch + random.shuffle(full_batch) + + cost_var, nums_infer, nums_label, nums_correct = exe.run( + fluid.default_main_program(), + fetch_list=[ + avg_cost, num_infer_chunks, num_label_chunks, + num_correct_chunks + ], + feed=feeder.feed(full_batch)) + print("batch_id:" + str(batch_id) + ", avg_cost:" + str(cost_var[0])) + chunk_evaluator.update(nums_infer, nums_label, nums_correct) + batch_id += 1 + + if (batch_id % args.save_model_per_batchs == 1): + save_exe = fluid.Executor(place) + save_dirname = os.path.join(args.model_save_dir, + "params_batch_%d" % batch_id) + #fluid.io.save_inference_model(save_dirname, ['word'], [crf_decode], + # save_exe) + temp_save_model = os.path.join(args.model_save_dir, "temp_model_for_test") + fluid.io.save_inference_model(temp_save_model, ['word', 'target'], [num_infer_chunks, num_label_chunks, num_correct_chunks], save_exe) + + precision, recall, f1_score = chunk_evaluator.eval() + print("[train] batch_id:" + str(batch_id) + ", precision:" + + str(precision) + ", recall:" + str(recall) + ", f1:" + + str(f1_score)) + chunk_evaluator.reset() + p, r, f1 = test( + exe, chunk_evaluator, temp_save_model, test_reader, place) + chunk_evaluator.reset() + print("[test] batch_id:" + str(batch_id) + ", precision:" + + str(p) + ", recall:" + str(r) + ", f1:" + str(f1)) + end_time = time.time() + print("cur_batch_id:" + str(batch_id) + ", last " + + str(args.save_model_per_batchs) + " batchs, time_cost:" + + str(end_time - start_time)) + start_time = time.time() + + if len(eval_list) < 2 * args.eval_window: + eval_list.append(f1) + else: + eval_list.pop(0) + eval_list.append(f1) + last_avg_f1 = sum( + eval_list[0:args.eval_window]) / args.eval_window + cur_avg_f1 = sum(eval_list[ + args.eval_window:2 * args.eval_window]) / args.eval_window + if cur_avg_f1 <= last_avg_f1: + return + else: + print("keep training!") + iter += 1 + if (iter == args.num_iterations): + return + + +if __name__ == "__main__": + args = parse_args() + print_arguments(args) + train(args) \ No newline at end of file -- GitLab