有利于深度文本匹配模型的设计、比较和共享。基于Matchzoo

matchzoo-lite的Python项目详细描述


Matchzoo Lite

发出

修改

数据加载器

{"text_left":"xxx xxx xx","text_right":"xxx xxx xxx","label":1}

中国中央银行

删改

  • 去nltk关
  • 预测数据集
  • 更换投资回报测试
  • 去除部分模型,只留以下模型:
    • arci
    • arcii
    • 决策支持系统
    • CDSSM
    • 康沃公路
    • 二重唱
    • 匹配金字塔
    • MVLSTM

安装

matchzoo依赖于Keras,请安装其后端引擎之一:tensorflow、theano或cntk。我们推荐TensorFlow后端。安装MatchZoo的两种方法:

从github源安装matchzoo lite

git clone http://gitlab.alipay-inc.com/niming.lxm/matchzoo-lite.git
cd matchzoo-lite
python setup.py install

Docker

docker pull seanlee97/matchzoo-lite:latest

训练您的模型

60秒后开始

要训练a Deep Semantic Structured Model,请导入matchzoo并准备输入数据。

importmatchzooasmztrain_pack=mz.datasets.wiki_qa.load_data('train',task='ranking')valid_pack=mz.datasets.wiki_qa.load_data('dev',task='ranking')predict_pack=mz.datasets.wiki_qa.load_data('test',task='ranking')

用三行代码预处理输入数据,跟踪要传递到模型中的参数。

preprocessor=mz.preprocessors.DSSMPreprocessor()train_pack_processed=preprocessor.fit_transform(train_pack)valid_pack_processed=preprocessor.transform(valid_pack)predict_pack_processed=preprocessor.transform(predict_pack)

使用Matchzoo定制的损失功能和评估指标:

ranking_task=mz.tasks.Ranking(loss=mz.losses.RankCrossEntropyLoss(num_neg=4))ranking_task.metrics=[mz.metrics.NormalizedDiscountedCumulativeGain(k=3),mz.metrics.NormalizedDiscountedCumulativeGain(k=5),mz.metrics.MeanAveragePrecision()]

初始化模型,微调超参数。

model=mz.models.DSSM()model.params['input_shapes']=preprocessor.context['input_shapes']model.params['task']=ranking_taskmodel.params['mlp_num_layers']=3model.params['mlp_num_units']=300model.params['mlp_num_fan_out']=128model.params['mlp_activation_func']='relu'model.guess_and_fill_missing_params()model.build()model.compile()

动态生成成对训练数据,使用对预测数据的自定义回调来评估模型性能。

train_generator=mz.PairDataGenerator(train_pack_processed,num_dup=1,num_neg=4,batch_size=64,shuffle=True)pred_x,pred_y=predict_pack_processed.unpack()evaluate=mz.callbacks.EvaluateAllMetrics(model,x=pred_x,y=pred_y,batch_size=len(pred_x))history=model.fit_generator(train_generator,epochs=20,callbacks=[evaluate],workers=5,use_multiprocessing=False)

参考文献

MatchZoo

Tutorials

English Documentation

中文文档

如果你对前沿的研究进展感兴趣,请看一下awaresome neural models for semantic match

许可证

Apache-2.0

Matchzoo许可证

Apache-2.0 版权所有(C)2015,宜兴范(Fasimon)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
返回数组无效的java方法   异步Java CompletableFuture获取其请求   java是否可以像RDBMS那样使用视图?   java如何在屏幕上只运行一个片段?   java无法从Vertex jdbc查询中获取结果   java从jtable获取对象的正确方法   java Spring 3数据设备替代方案   Java BigDecimal:四舍五入到客户首选的数字和增量   JAVA主窗口没有出现,我必须左键单击主窗口。java并单击run查看它   Eclipse RCP中的java进程自定义设备事件   JavaEclipse一次又一次地构建代码(没有任何更改)?   java如何实现对象合并