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

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第三方库


热门话题
在Android应用程序中处理新活动时出现java NullPointerException   从PSV文件读取Java   在JavaSwing中将方法从一个类传递到另一个类   带有MongoDB错误的java Vertx ClassNotFoundException:com。mongodb。联系溪流工厂   在java中替换2D数组中的数字?   java Avro方案空布尔和双整数布尔的写并集   java导入组织。neo4j无法解决?   从另一个获取变量。使用反射的java文件   Java:以格式化字符串的形式返回具有非常不同的条目长度的2D数组   java客户端应用程序正在从IBMMQ接收不同格式的消息体   java在我的主循环中的步骤有问题   java如何正确安装来自sslforfree的证书。tomcat服务器上的com   java RecyclerView变更单永久   java如何获得屏幕的精确中间位置,即使调整了大小