Giter Club home page Giter Club logo

ttt's Introduction

ttt's People

Contributors

lipiji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ttt's Issues

没有很理解的一个问题是,对于测试数据来说是不应该知道target句子长度的,那这个时候怎么进行target句子生成的呢?

没有很理解的一个问题是,对于测试数据来说是不应该知道target句子长度的,那这个时候怎么进行target句子生成的呢?因为我看论文中提到,针对source句子与target句子不同的长度,会对句子进行不同的预处理,可是真实情况进行语法纠错的时候是不知道target句子长度的,所以请问一下这个时候怎么处理。谢谢回答

Having trouble reproducting results in the paper

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:

  1. what is the ideal training loss on HybirdSet, containing nll_loss and crf loss
  2. what is the expected ACC/F1 on HybirdSet
  3. is the weight of fc layer(language model layer) randomly initialed or copied from embedding layer of BERT
    Thanks!

关于模型初始化和超参数

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里一致的吗?

长度问题

请问一下关于处理输出长度可变的问题。
在训练过程中,您是将输入与输出处理到等长然后进行训练,这是只有当您知道目标标签才能进行的处理方式,那么用于测试时,假设不提供标签,如何处理输入呢?根据您的代码,您测试的时候也假设已知标签语句长度的情况下进行的

这是该模型预测的一些结果

  • SIGHAN15
白 天 机 械 可 替 换 轮 流 运 转 以 减 少 噪 因 。 <-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->
  • HybirdSet
心 爱 的 李 大 明 ! <-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,对一些专有名词不是很了解,代码可能一时半会看不懂,所以前来咨询下。

Clarifications

Thanks for releasing the code. I have few questions:

  1. Why has the tagset been restricted to have only E and R labels reference, what about D and I and how is paraphrasing (swaps) being addressed?
  2. How is the VarLen scenario being handled? Would you be releasing scripts and data in future?
  3. How are the characters to be inserted for operations like insert being predicted?

标签

看了作者的源码,发现tag是正确的字符,'R',‘E’等标签没有用到,这是为什么呢

数据集

请问TtTSet的数据集开源了吗,从哪里可以找到呀

data

How can I create the data for another language ? Thanks

关于数据问题

  1. 你好论文中提到了, local paraphrasing, �就是中文语法乱序问题,
    在代码中并未发现乱序的标记, 只是用了 equal, delete, 和insert, replace?

请问是否可以提供一个数据sample

请问是否可以提供一个数据sample

  1. DataLoader里面需要的数据是由\t分割的三段文本,但source和target只有两段,而第三段也没有在后续代码中出现,是不是应该把断言那里改成2
  2. tag_name_list在一开始出现就加了一个sep,而后面的条件判断中又为tag_name_list添加了sep,这应当是冗余了吧?

训练的疑问

关于训练有几点疑问:
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 先感谢你的项目分享,也希望你能帮助我。

运行问题

请问预训练模型是怎么调配的? 无法运行成功

如何复现SIGHAN15数据集上的结果?

我的复现步骤如下:

  1. 下载https://drive.google.com/file/d/1gX9YYcGpR44BsUgoJDtbWqV-4PsaWpq1/view?usp=sharing 文件,解压到model/bert目录
  2. 将train.sh中的dname改为SIGHAN15
  3. 运行sh train.sh开始训练

读取数据的日志正常:
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不符。

请问如何复现论文结果,最好包括训练步骤和测试步骤,谢谢!

关于评估问题

你好,论文中的实验结果是通过eval.py评估得到的吗?

关于TtT数据集

请问TtT数据集的word-level的Detection和Correction指标是怎么计算出来的呢?这个不是变长数据集吗?

另外,随便问一下,SIGHAN15的数据集是否使用的简体中文版本?我在paper中没有看到相关的描述。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.