Yicheng Zou
Yicheng Zou
您好,抱歉之前忘了回复。请您提供具体的公式和代码部分。
参考代码 models/data_loader.py 的 352行至369行,出现这种情况的原因可能是:某一个 example 的 token 总数目超过了 batch size(训练时默认是 2000,测试时默认是 20000),就会将其丢弃,否则可能会 OOM。 另一种可能的原因是,preprocess 时,对话的句子数目小于参数-min_turns 的设置值,就会将其丢弃。但此参数默认是1,只要对话有至少一句话,就会将其保留,除非数据有噪声导致此 example 为空。
max_turns 大于100,后续句子会被截断。
测试和训练使用的数据格式相同,使用了同样的预处理和数据载入过程。如果训练没有问题,测试也应该没有问题。 1. 可以检查是否在训练时也出现了部分训练数据被舍弃的现象。 2. 为测试样例添加标记,查看是哪些样例被丢弃。 3. 检查ali.test.0.bert.pt是否有650个样例,如果有,说明样例在数据载入后被丢弃,如果没有,说明样例在数据处理时就被丢弃。
建议先找出被丢弃的具体样例,然后将其整合成一个小测试集(由被丢弃的样例组成)。再输入模型进行单步调试。
Hi, there. The standard evaluation process is to first validate the model on the validation set and then select the best checkpoint to perform testing on the test set. The...
Other solutions to improve performance can be referred to #4
具体做法在论文中的4.2节。 1. 首先通过nltk标记出所有的动词、名词、形容词等可能带有实际含义的词或短语(按最长的词或短语匹配)。 2. 其次,将这些词和短语与知识库中的概念进行匹配,如果在知识库中出现,就视为关键词。
Hi, there. I am sorry that we could not find the keyword processing codes anymore. The processing was conducted as a pre-task before training and it was a rule-based approach....
这里对应的是论文的公式4,对keyword和其他词进行识别和分类。