方便了深度文本匹配模型的设计、比较和共享。

MatchZoo-test的Python项目详细描述


logo

matchzoo pyTweet

PyTorch version of MatchZoo.

Facilitating the design, comparison and sharing of deep text matching models.
MatchZoo 是一个通用的文本匹配工具包,它旨在方便大家快速的实现、比较、以及分享最新的深度文本匹配模型。

Python 3.6GitterDocumentation StatusBuild StatuscodecovLicenseRequirements Status

matchzoo的目标是为深入的文本匹配研究提供一个高质量的代码库,如文档检索、问答、会话响应排序和释义识别。采用统一的数据处理流水线,简化了模型配置和自动超调参数的特点,MatCHOCLE灵活灵活,易于使用。

TasksText 1Text 2Objective
Paraphrase Indentification string 1 string 2 classification
Textual Entailment text hypothesis classification
Question Answer question answer classification/ranking
Conversation dialog response classification/ranking
Information Retrieval query document ranking

60秒后开始

要训练a Deep Semantic Structured Model,请使用matchzoo自定义的损失函数和评估指标来定义任务:

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

准备输入数据:

train_pack=mz.datasets.wiki_qa.load_data('train',task=ranking_task)valid_pack=mz.datasets.wiki_qa.load_data('dev',task=ranking_task)

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

preprocessor=mz.models.DSSM.get_default_preprocessor()train_processed=preprocessor.fit_transform(train_pack)valid_processed=preprocessor.transform(valid_pack)

动态生成成对训练数据:

trainset=mz.dataloader.Dataset(data_pack=train_processed,mode='pair',num_dup=1,num_neg=4)validset=mz.dataloader.Dataset(data_pack=valid_processed,mode='point')

定义填充回调并生成数据加载器:

padding_callback=mz.models.DSSM.get_default_padding_callback()trainloader=mz.dataloader.DataLoader(dataset=trainset,batch_size=32,stage='train',callback=padding_callback)validloader=mz.dataloader.DataLoader(dataset=validset,batch_size=32,stage='dev',callback=padding_callback)

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

model=mz.models.DSSM()model.params['task']=ranking_taskmodel.params['vocab_size']=preprocessor.context['vocab_size']model.guess_and_fill_missing_params()model.build()

Trainer用于控制培训流程:

optimizer=torch.optim.Adam(model.parameters())trainer=mz.trainers.Trainer(model=model,optimizer=optimizer,trainloader=trainloader,validloader=validloader,epochs=10)trainer.run()

参考文献

Tutorials

English Documentation

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

安装

matchzoo依赖于PyTorch。安装matchzoo py的两种方法:

install matchzoo py from pypi:

pipinstallmatchzoo-py

从github源安装matchzoo py:

git clone https://github.com/NTMC-Community/MatchZoo-py.git
cd MatchZoo-py
python setup.py install

型号

引文

如果您在研究中使用matchzoo,请使用以下bibtex条目。

@inproceedings{Guo:2019:MLP:3331184.3331403,
 author = {Guo, Jiafeng and Fan, Yixing and Ji, Xiang and Cheng, Xueqi},
 title = {MatchZoo: A Learning, Practicing, and Developing System for Neural Text Matching},
 booktitle = {Proceedings of the 42Nd International ACM SIGIR Conference on Research and Development in Information Retrieval},
 series = {SIGIR'19},
 year = {2019},
 isbn = {978-1-4503-6172-9},
 location = {Paris, France},
 pages = {1297--1300},
 numpages = {4},
 url = {http://doi.acm.org/10.1145/3331184.3331403},
 doi = {10.1145/3331184.3331403},
 acmid = {3331403},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {matchzoo, neural network, text matching},
} 

开发团队

faneshion
Yixing Fan

Core Dev
ASST PROF, ICT

Chriskuei
Jiangui Chen

Core Dev
PhD. ICT

caiyinqiong
Yinqiong Cai

Core Dev
M.S. ICT

pl8787
Liang Pang

Core Dev
ASST PROF, ICT

lixinsu
Lixin Su

Dev
PhD. ICT

rgtjf
Junfeng Tian

Dev
M.S. ECNU

wqh17101
Qinghua Wang

Documentation
B.S. Shandong Univ.

贡献

请确保在创建拉取请求之前阅读Contributing Guide。如果您有与matchzoo相关的paper/project/compent/tool,请向this awesome list发送拉取请求!

感谢所有已经为Matchzoo捐款的人!

Bo WangZeyi WangLiu YangZizhen WangZhou YangJianpeng HouLijuan ChenYukun ZhengNiuguo ChengDai ZhuyunAneesh JoshiZeno GantnerKai HuangstanpcfChangQFMike Kellogg

项目组织者

  • 郭嘉峰
    • 中国科学院计算技术研究所
    • Homepage
  • 兰艳艳
    • 中国科学院计算技术研究所
    • Homepage
  • 郑学琪
    • 中国科学院计算技术研究所
    • Homepage

许可证

Apache-2.0

版权(C)2019,宜兴范(Fasimon)

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

推荐PyPI第三方库


热门话题
Selenium中弹出的java句柄窗口   java将格式化消息从任何片段传递到活动   java如何从int类型的方法返回多个整数   servlets数据不会使用java类和bean插入数据库   java如何修改Solr给出的搜索结果页面?   java如何在wildfly中重定向应用程序路径?   java使用Apache异步HTTP客户端从InputStream构造多部分请求   java解析来自REST的压缩输入流   java上载文件失败,原因是Vaadin Spring PlupLocaddon   使用需要CSRF令牌的旧端点的javascript   java如何在viewpager应用程序中将图像设置为墙纸?   java Axis2与SharePoint 2013(ADFS/FedAuth cookie)   java H2选择:意外的类型39映射   Docker Composition中拒绝java Spring应用程序连接   使用Java的ibm mq ibm mq获取LGETTIME   java循环逻辑中的漏洞   javaspringcom。mongodb。util。JSONParseException   方法调用“振动”可能会产生java。更新到Android Studio 3后出现lang.NullPointerException警告   datetime如何将日历的时间与java进行比较。sql。时间物体?