yongzhuo / Keras-TextClassification

中文长文本分类、短句子分类、多标签分类、两句子相似度(Chinese Text Classification of Keras NLP, multi-label classify, or sentence classify, long or short),字词句向量嵌入层(embeddings)和网络层(graph)构建基类,FastText,TextCNN,CharCNN,TextRNN, RCNN, DCNN, DPCNN, VDCNN, CRNN, Bert, Xlnet, Albert, Attention, DeepMoji, HAN, 胶囊网络-CapsuleNet, Transformer-encode, Seq2seq, SWEM, LEAM, TextGCN
https://blog.csdn.net/rensihui
MIT License
1.78k stars 405 forks source link

怎么样判断数据测试的结果是不是正常的? #51

Closed xkungfu closed 4 years ago

xkungfu commented 4 years ago

请问: 1、以下是使用/test/sentence_similarity/predict.py测试的结果,这样的结果是正常的么? 2、有没有基础标准数据测试结果,作为对比数据? 3、pred = graph.predict(x_val)的测试结果( [[9.4600534e-01 5.5518513e-13]])都是什么含义?

请输入sen1: 我的叔叔于勒 请输入sen2: 我的叔叔于勒 ques_embed: [[101, 2769, 4638, 1356, 1356, 754, 1239, 102, 2769, 4638, 1356, 1356, 754, 1239, 102, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0]] pred: [[9.4600534e-01 5.5518513e-13]] pre: [[('1', 0.94600534), ('0', 5.5518513e-13)]] 请输入sen1: 我的叔叔于勒 请输入sen2: 哪一刻你觉得自己被生活磨平了棱角? ques_embed: [[101, 2769, 4638, 1356, 1356, 754, 1239, 102, 1525, 671, 1174, 872, 6230, 2533, 5632, 2346, 6158, 102], [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] pred: [[4.3739200e-01 3.5156117e-15]] pre: [[('1', 0.437392), ('0', 3.5156117e-15)]] 请输入sen1: 18斤新鲜冷冻鸡胸肉狗狗鸡胸脯肉鸡碎肉鸡肉边角料宠物猫狗零食 请输入sen2: 20斤生鲜冷冻鸡腿去皮腿碎肉下脚料宠物配料食品 山东包邮 ques_embed: [[101, 8123, 3165, 3173, 7831, 1107, 1108, 7883, 5541, 102, 8113, 3165, 4495, 7831, 1107, 1108, 7883, 102], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]] pred: [[9.8772520e-01 2.1804944e-13]] pre: [[('1', 0.9877252), ('0', 2.1804944e-13)]] 请输入sen1: 20斤生鲜冷冻鸡腿去皮腿碎肉下脚料宠物配料食品 山东包邮 请输入sen2: 20斤生鲜冷冻鸡腿去皮腿碎肉下脚料宠物配料食品 山东包邮 ques_embed: [[101, 8113, 3165, 4495, 7831, 1107, 1108, 7883, 5597, 102, 8113, 3165, 4495, 7831, 1107, 1108, 7883, 102], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]] pred: [[9.7516745e-01 1.6282820e-12]] pre: [[('1', 0.97516745), ('0', 1.628282e-12)]] 请输入sen1: 微粒咨询电话号码多少 请输入sen2: 你们的人工客服电话是多少 ques_embed: [[101, 2544, 5108, 1486, 6418, 4510, 6413, 1384, 4772, 102, 872, 812, 4638, 782, 2339, 2145, 3302, 102], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]] pred: [[8.413025e-01 7.585427e-13]] pre: [[('1', 0.8413025), ('0', 7.585427e-13)]]

yongzhuo commented 4 years ago
  1. 结果是正常的;
  2. 没有,你可以看看论文或者比赛的评估指标,一般用得多的有哈工大的lcqmc,蚂蚁金服的花呗文本相似度比赛,微众银行的微粒贷文本相似度比赛,今年好像也有个“新冠疫情相似句对判定大赛”;
  3. 你可以认为是文本分类的类别对应的概率,只是这里一般只有两个类。
xkungfu commented 4 years ago

1是指相关的概率,0是指不相关的概率对吧。 0下面的输出结果不是小数,是不是需要再除以10啊。

看论文的我水平肯定是不行了。我才接触python没有几天,都是自学的而且没学过高等数学。感谢你弄出这个项目可以直接使用,让我这个小白也用上人工智能。

这种高级的技术,目前的门槛还是太高了,不专门去学一下就没法实际应用。你的这个项目希望可以继续完善一下,生成一个工具就太好了,外行人也可以用上。据我了解百度有文本相似度的判断的API,但是要收费的。

我的想法是从几个新闻网站提取新闻,然后过滤掉重复的新闻,生成一个重复度低一些的新闻列表。感觉单纯的对比重复的字词,可能不如从语义上判断效果好。

yongzhuo commented 4 years ago

正常输出,这是科学计数法,例如7.585427e-13表示 7.585427往前移动13位,接近0可以忽略不计了