songyingxin / Bert-TextClassification

Implemention some Baseline Model upon Bert for Text Classification
Other
682 stars 149 forks source link

怎样对新来的几条文本做预测呢? #5

Open yaleimeng opened 5 years ago

yaleimeng commented 5 years ago

模型训练完成了,准确率也很高。 但到后面用的时候,往往是对新来的一条或若干条文本,需要预测它对应的标签。 加载训练后的模型,对新数据做预测能否单独写个样例参考一下?

yaleimeng commented 5 years ago

我改写了一下dataloader,将句子列表也构造成需要的数据格式。然后通过evaluate_save()来 进行预测并保存结果。警告提示 python3.6/site-packages/sklearn/metrics/classification.py:1437: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. 'precision', 'predicted', average, warn_for) python3.6/site-packages/sklearn/metrics/classification.py:1439: UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. 'recall', 'true', average, warn_for) 最后检查了预测出的类别标签,很多都是错的。跟训练结束时评估的准确率有天壤之别。

pbz123 commented 5 years ago

请问您的问题解决了吗,我也遇到了同样的问题

yaleimeng commented 5 years ago

@pbz123 没解决,无奈只能去研究别的开源仓库了。。 找了十来个基本上都有问题,不是面向实际用途的改写,而是拿数据集评估一下指标就完事了。

pbz123 commented 5 years ago

我也是,找了一个多礼拜了,都是没有测试模块,我想用一个pytorch的代码,tensorflow的模型文件太大了也是出于无奈才来又找的,请问您有这方面的资料可以让我学习一下吗

yaleimeng commented 5 years ago

没什么资料,就是挑选几个开源仓库跑一下看看。结果符合预期的话研究一下怎么按自己的需求改。我不挑框架都没找到好的实现。。 都出来半年多了,居然没有一个好用的,真是非常意外。 只能等我解决了之后再分享了

pbz123 commented 5 years ago

我目前有一个tensorflow的,训练没问题,保存为.pb模型文件,但是测试这里貌似不是很顺利,但是有代码的,您如果需要我可以分享给你

yaleimeng commented 5 years ago

我在博览众码的基础上,终于解决了工业场景实用化的问题。使得模型预测的结果更直观、可追溯。让使用Bert做文本分类不再困难。 现已开源了代码库TextClassify_with_BERT,还在持续完善中。欢迎大家跟我沟通交流~

songyingxin commented 4 years ago

不好意思,刚看到,对新来的预测,本来不就分为 train, dev, test 吗? 你直接将数据作为test 不就能得到评估结果了?

yaleimeng commented 4 years ago

@songyingxin 很感谢您的回复。我的意思是来了一个字符串或者几个句子过来,我不通过保存文件怎样进行预测?现实场景下不可能每个句子来都去磁盘读写文件吧?您的项目只是出于学术目的跑一下成绩,不适应实际需要。 不过我已经搞定了实际需求并开源了自己的代码库。非常感谢。

songyingxin commented 4 years ago

可以,这个需要您这边改一改代码,这部分我没有写,改起来其实很简单的,改一下输入逻辑就行,dataloader之前的改一改就行。

songyingxin commented 4 years ago

额,我自己实际开发中也需要改,总不能一个炮台打所有的炮不是。