lipiji / ttt Goto Github PK
View Code? Open in Web Editor NEWcode for ACL2021 paper "Tail-to-Tail Non-Autoregressive Sequence Prediction for Chinese Grammatical Error Correction"
code for ACL2021 paper "Tail-to-Tail Non-Autoregressive Sequence Prediction for Chinese Grammatical Error Correction"
关于训练有几点疑问:
1.训练中的f1、precision、recall值始终相同,日志显示如下:
At epoch 3, official dev f1 : 0.819952, precision : 0.819952, recall : 0.819952
2.训练未设置任何早停终止条件,只是使用num_epochs控制吗,默认的给出的epoch为1000,感觉明显用不到这么大的。
训练到epoch=60,日志就显示三个值都在0.99以上了,如下:
At epoch 60, official dev f1 : 0.990211, precision : 0.990211, recall : 0.990211
3.训练数据是否就是项目中给出的这些,还是有些数据需要另外下载呢。
@lipiji 先感谢你的项目分享,也希望你能帮助我。
用Hybird数据集训练模型后,test的时候遇到原句子里有阿拉伯数字和英文字母,纠错后的句子相应位置就变成,请问这个问题该如何解决呢?
How can I create the data for another language ? Thanks
请问一下关于处理输出长度可变的问题。
在训练过程中,您是将输入与输出处理到等长然后进行训练,这是只有当您知道目标标签才能进行的处理方式,那么用于测试时,假设不提供标签,如何处理输入呢?根据您的代码,您测试的时候也假设已知标签语句长度的情况下进行的
请问预训练模型是怎么调配的? 无法运行成功
没有很理解的一个问题是,对于测试数据来说是不应该知道target句子长度的,那这个时候怎么进行target句子生成的呢?因为我看论文中提到,针对source句子与target句子不同的长度,会对句子进行不同的预处理,可是真实情况进行语法纠错的时候是不知道target句子长度的,所以请问一下这个时候怎么处理。谢谢回答
请问预训练的bert模型用的什么语料训练呀?
Thanks for the amazing idea proposed in your paper.
But I have some trouble reproducting results on SIGHAN15 dataset. I trained a TtT model using HybirdSet train set for almost 40 epoches, achiving 98% ACC on HybirdSet dev set,but performs 0.77 F1. Even worse, it decreases sharply to P/R/F1 0.50/0.76/0.61 on SIGHAN15 test set.
Without detailed training settings or open resource model, I have no idea of which part is failed in my model, so here are the questions:
请问是否可以提供一个数据sample
看了作者的源码,发现tag是正确的字符,'R',‘E’等标签没有用到,这是为什么呢
你好,论文中的实验结果是通过eval.py评估得到的吗?
如题,这个seqtag-alike的输出结果怎么看都不可能完成变长度的校正呀?
若输入句子10个字符,改正的标准答案16个字符,这个模型怎么处理呢?
Thanks for releasing the code. I have few questions:
Specifically, operations of deletion, insertion, and local shuffling are conducted on the original sentences to obtain the incorrect samples. Each operation covers one-third of samples, thus we get about 540k samples finally.
例如实际上错误的分布,错误的比例这些。希望可以得到解答,谢谢作者
为什么在提供的数据中只看到equal(E)和replace(R)操作,没有delete(D)、insert(I)操作
请问TtTSet的数据集开源了吗,从哪里可以找到呀
在main.py
文件里开始训练的时候需要加载模型,模型内容包括了训练时的参数'args'
,但是初次训练的话并没有这个参数,请问该如何获得?
bert_ckpt= torch.load(args.bert_path)
bert_args = bert_ckpt['args']
而且,在加载模型的时候需要bert_args.embed_dim
这些参数,代码里也没有找到,想问一下是否能够开源一个已经训练好的模型?
bert_model = BERTLM(device, bert_vocab, bert_args.embed_dim, bert_args.ff_embed_dim, bert_args.num_heads, \
bert_args.dropout, bert_args.layers, bert_args.approx)
另外,模型训练的超参数是和train.sh
里一致的吗?
请问TtT数据集的word-level的Detection和Correction指标是怎么计算出来的呢?这个不是变长数据集吗?
另外,随便问一下,SIGHAN15的数据集是否使用的简体中文版本?我在paper中没有看到相关的描述。
白 天 机 械 可 替 换 轮 流 运 转 以 减 少 噪 因 。 <-MASK-> <-SEP-> 白 天 际 以 可 未 换 快 流 运 衣 以 年 少 都 因 。 <-SEP-> <-SEP->
更 换 或 进 一 步 改 善 处 里 味 道 的 设 备 。 <-MASK-> <-SEP-> 更 呢 或 进 一 传 改 善 处 里 味 道 的 设 备 。 <-SEP-> <-SEP->
希 望 您 能 够 以 认 真 的 态 度 面 对 这 些 问 题 且 提 出 处 里 方 案 。 <-MASK-> <-SEP-> 希 望 您 能 够 以 认 真 的 态 度 面 对 这 些 问 题 且 提 出 处 里 方 案 。 <-SEP-> <-SEP->
最 后 希 望 您 能 够 听 到 居 民 们 的 心 听 , 尽 快 给 我 们 一 个 合 理 的 处 里 方 案 , 还 给 居 民 一 个 安 静 的 生 活 环 境 。 <-MASK-> <-SEP-> 最 后 希 望 您 能 够 听 到 居 民 们 的 心 听 , 尽 多 给 我 们 一 个 合 里 的 处 里 方 案 , 还 给 居 民 一 个 安 静 的 生 活 环 境 。 <-SEP-> <-SEP->
她 有 花 生 过 敏 阿 ! 她 昨 天 快 差 一 点 死 掉 了 ! <-MASK-> <-SEP-> 她 有 花 生 过 个 啊 ! 她 昨 天 快 差 一 点 死 掉 了 ! <-SEP-> <-SEP->
我 忘 记 了 那 个 臭 味 ! 工 厂 让 全 部 附 近 都 超 级 抽 。 <-MASK-> <-SEP-> 我 洗 记 了 那 个 臭 味 ! 工 厂 让 全 为 附 进 都 超 级 此 。 <-SEP-> <-SEP->
我 们 受 不 了 了 ! 李 厂 厂 你 必 须 改 变 工 厂 ! 我 要 告 诉 您 怎 么 解 决 我 们 的 问 题 。 <-MASK-> <-SEP-> 我 们 受 不 了 了 ! 完 厂 厂 你 必 需 该 变 工 厂 ! 我 要 告 诉 您 怎 么 解 决 我 们 的 问 题 。 <-SEP-> <-SEP->
音 和 臭 味 影 响 大 家 的 环 境 , 不 能 让 邻 居 狗 舒 服 的 日 子 。 <-MASK-> <-SEP-> 音 和 臭 味 影 响 大 家 的 环 境 , 不 能 让 鲜 哪 狗 舒 服 的 日 子 。 <-SEP-> <-SEP->
如 果 没 处 理 , 我 们 就 没 办 法 可 能 要 去 仅 差 距 报 告 。 <-MASK-> <-SEP-> 如 果 没 处 里 , 我 们 就 没 办 法 可 能 要 去 仅 差 距 抱 告 。 <-SEP-> <-SEP->
心 爱 的 李 大 明 ! <-MASK-> <-SEP-> 性 爱 的 李 大 名 ! <-SEP-> <-SEP->
今 来 怎 么 样 ? 身 体 好 码 ? 我 因 为 刚 开 学 所 以 有 一 点 忙 , 不 能 写 信 给 你 。 今 天 给 你 写 信 是 要 告 诉 你 一 个 好 消 息 。 <-MASK-> <-SEP-> 今 来 怎 么 样 ? 身 体 好 码 ? 我 因 为 刚 开 学 所 以 有 一 点 马 , 不 能 写 信 给 你 。 今 天 给 你 导 信 是 要 告 诉 你 一 个 好 消 息 。 <-SEP-> <-SEP->
事 情 是 这 样 : 我 刚 交 了 一 个 男 朋 友 。 我 门 在 学 校 里 面 见 面 。 谈 过 几 次 话 感 觉 个 性 复 合 , 所 以 交 往 了 。 <-MASK-> <-SEP-> 事 情 是 这 样 : 我 刚 交 了 一 个 男 朋 友 。 我 们 在 学 校 里 面 见 面 。 谈 过 几 次 话 感 觉 个 性 复 合 , 所 以 交 往 了 。 <-SEP-> <-SEP->
听 到 这 个 消 息 , 你 有 一 点 奇 怪 的 感 觉 是 不 是 ? 因 为 从 以 前 到 线 再 我 还 每 一 次 交 过 男 朋 友 。 <-MASK-> <-SEP-> 听 到 这 个 消 息 , 你 有 一 点 奇 怪 的 感 觉 是 不 是 ? 因 为 从 以 前 倒 线 再 我 还 每 一 次 交 过 男 朋 友 。 <-SEP-> <-SEP->
你 知 道 码 ? 以 前 还 没 交 过 男 朋 友 , 我 总 觉 得 有 了 男 朋 友 又 怎 么 样 呢 ? 只 是 花 了 时 间 , 如 果 个 性 不 适 合 就 总 是 吵 架 , 那 时 候 心 里 会 很 烦 恼 的 。 <-MASK-> <-SEP-> 你 知 道 码 ? 以 前 还 没 交 过 男 朋 友 , 我 总 觉 地 有 了 男 朋 友 又 怎 么 样 你 ? 只 是 花 了 时 间 , 如 果 个 性 不 适 合 就 总 是 吵 架 , 那 时 候 鑫 里 会 很 烦 恼 的 。 <-SEP-> <-SEP->
可 事 现 在 事 情 不 是 跟 以 前 这 样 想 了 。 跟 他 在 一 起 , 我 绝 得 很 快 乐 和 幸 福 。 <-MASK-> <-SEP-> 可 事 现 在 事 情 不 是 跟 以 前 这 样 想 了 。 跟 他 在 一 起 , 我 绝 的 很 快 乐 和 幸 福 。 <-SEP-> <-SEP->
如 果 又 机 会 , 我 会 带 他 来 给 您 介 绍 。 看 到 了 他 你 依 定 会 开 心 的 。 <-MASK-> <-SEP-> 如 果 又 机 会 , 我 会 带 他 来 给 您 届 绍 。 看 到 了 他 你 依 定 会 开 心 的 。 <-SEP-> <-SEP->
时 安 部 早 了 , 在 建 有 空 会 再 写 信 给 你 。 保 重 。 <-MASK-> <-SEP-> 时 安 不 早 了 , 在 建 有 空 会 再 写 信 给 你 。 保 重 。 <-SEP-> <-SEP->
我的实验结果中,基本的bert模型只是简单训练了一下,用的自己的语料库720M。貌似真正改在错误位置的频率低效果差,还会把正确位置的修改了,是我的bert模型的问题吗?还是其他配置的问题呢?
由于本人刚入门nlp,对一些专有名词不是很了解,代码可能一时半会看不懂,所以前来咨询下。
我的复现步骤如下:
读取数据的日志正常:
16541 Model construction finished. training number is 1800, dev number is 1100, test_num is 1100 Maximum train sequence length: 96, dev sequence length: 110, test sequence length: 110 data is ready
按照训练1000个epoch后,日志显示
gBatch 19000, lBatch 19, loss 0.13127, loss_crf 0.07497, loss_ft 0.00051 At epoch 999, official dev f1 : 0.950363, precision : 0.950363, recall : 0.950363 At this run, the maximum dev f1:0.950363, dev precision:0.950363, dev recall:0.950363
从代码来看,这个应该是字级别的accuracy,并不是纠错的指标。从ckpt/SIGHAN15_0.5/dev_pred.txt的预测结果看,错误也很多,与论文中80%的sentence-level correction F1不符。
请问如何复现论文结果,最好包括训练步骤和测试步骤,谢谢!
有跑起来的小伙伴吗
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.