Mleader2

Results 12 comments of Mleader2

是的,我没有提供模型。要自己训练后才能运行predict_main.py进行离线的推理任务。请先自己准备语料,然后参考rephrase.sh按照顺序执行各个步骤。

文本复述的语料需要自己整理语义一致的文本对。如果用自己业务场景下的语料最好,当然数量不能太少,如果没有或不够就加上LCQMC等语料中的正例。 然后用最长公共子串的长度限制一下,因为这个方法要求source和target的字面表达不能差异过大,可以参考一下“get_text_pair_lcqmc.py”。 目前,我的train.txt,tune.txt中都是三列即text1,text2,lcs_score,之间用tab"\t"分割。

离线是指的不启动服务实时响应,需要预测的时候就运行代码得到结果,所以需要训练模型。现阶段的NLP模型一般是需要聚焦到具体场景的,故我在自己场景下训练的模型不适合别人用,故没有提供。

机器翻译有很多方法和模型,最常见的是Seq2Seq+attention的模型,是一个先编码后解码的过程. 本方法借鉴序列标注的思路,从文献的实验结果看具有训练和推理速度快, 对语料规模要求低等优点.就是在大语料上不比Seq2Seq+attention模型差,在小规模语料上优势显著.

这次明白你的意思了.这个方法要求输入和输出比较接近,例如摘要或文本复述这种任务,确实不能直接用于文本翻译.如果想试着用于文本翻译,可以考虑使用一些中英文之间词汇的对应关系,对source进行一个映射,然后再作为这个模型的输入,改写为语法合理,表述通顺的翻译结果. notice:个人脑洞,未必合适哈!欢迎讨论

要先训练模型,然后再导出,然后在predict. ![image](https://user-images.githubusercontent.com/24227423/106252808-a250a800-6251-11eb-9e98-352b9102e87f.png) 你是已经 "Export the model."了,得到pb文件,但是运行predict_main.py报错么?如果报错,可以把具体的错误贴出来看看呀。

三列文本分别是source prediction target,第一列source是输入,最后一列target是标准的结果(当然是你test里面的第二列呀),中间列是模型预测的结果(看来效果很差呀,可能是你训练的epoch太少或者语料不够)

我这使用的是50万场景下的语料加上公开的数据,总共不到100万吧,效果还挺好的。如果你的使用场景比较局限(就是文本的说法不多,都类似),那估计几十万语料就够了。

我做中文任务一般都是用字的,业内也大多如此。因为分词的准确率较低,会产生级联误差。但是听说有些大厂也经常用分词的,可能是人家基于自己场景下大量语料定制的分词器吧。

我说业内大多如此 1.BERT,GPT在中文上都是用字粒度的 2.身边的同事也都用字粒度