免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2441 | 回复: 0
打印 上一主题 下一主题

中科院计算所开源深度文本匹配开源工具 MatchZoo [复制链接]

论坛徽章:
3
15-16赛季CBA联赛之上海
日期:2017-11-16 13:45:42CU十四周年纪念徽章
日期:2017-11-16 17:03:0215-16赛季CBA联赛之北京
日期:2017-11-23 16:03:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-12-05 18:01 |只看该作者 |倒序浏览
导语:中国科学院计算技术研究所网络数据科学与技术重点实验室近日发布了深度文本匹配开源项目 MatchZoo。
via GitHub
雷锋网 AI 科技评论消息,中国科学院计算技术研究所网络数据科学与技术重点实验室近日发布了深度文本匹配开源项目 MatchZoo。MatchZoo 是一个 Python 环境下基于 TensorFlow 开发的开源文本匹配工具,可以应用于文本检索、自动问答、复述问题、对话系统等多种应用任务场景。
在 arxiv 上,MatchZoo: A Toolkit for Deep Text Matching 介绍了开源项目的主要结构:
据雷锋网了解,这一开源工具能够让大家更加直观地了解深度文本匹配模型的设计、更加便利地比较不同模型的性能差异、更加快捷地开发新型的深度匹配模型。
MatchZoo主要特点
MatchZoo 基于 Keras 开发,支持 TensorFlow、CNTK 及 Theano,并能在 CPU 与 GPU 上无缝运行。MatchZoo 包括数据预处理,模型构建,训练与评测三大模块:
数据预处理模块(data preparation)
该模块能将不同类型文本匹配任务的数据处理成统一的格式,具体包含如下的几个文件:
  • word dictionary:每个单词的映射符,通过预设的规则进行过滤常用词,筛选少见词、噪声词。
  • corpus file:问题及回答内容文件,每行以(id, length, word_id)格式书写,分别表示问题或者回答的 id,文本长度,以及词 id;
  • relation file:包括训练、验证、测试文件,每行以(rel,query_id, doc_id)格式书写,分别表示问题与回答的相关度(数据中1为相关,0为不相关),问题的 id,以及答案的 id;

同时,该模块针对不同的任务需求提供了不同的数据生成器,包括有基于单文档的数据生成器、基于文档对的数据生成器、以及基于文档列表的数据生成器。不同的数据生成器可适用于不同的文本匹配任务,如文本问答、文本对话、以及文本排序等。
模型构建模块(model construction)
该模块基于 Keras 以帮助我们快速开发。Keras 中包含了深度学习模型中广泛使用的普通层,如卷积层、池化层、全连接层等,除此之外,在 matchzoo/layers/中,研究人员还针对文本匹配定制了特定的层,如动态池化层、张量匹配层等。这些操作能够快速高效地实现复杂的深度文本匹配的模型,在 matchzoo/models/中,研究人员实现了目前主流的深度文本匹配模型(如 DRMM, MatchPyramid, DUET, MVLSTM, aNMM, ARC-I, ARC-II, DSSM, CDSSM 等)。
训练与评测模块(training and evaluation)
该模块提供了针对回归、分类、排序等问题的目标函数和评价指标函数。例如,在文本排序中常用的基于单文档的目标、基于文档对的目标、以及基于文档序列的目标。用户可以根据任务的需要选择合适的目标函数。在模型评估时,MatchZoo 也提供了多个广为使用的评价指标函数,如 MAP、NDCG、Precision,Recall 等。同时,在文本排序任务中,MatchZoo 还能生成兼容 TREC 的数据格式,可以方便地使用 trec_eval来进行模型评估。
运行
git clone https://github.com/faneshion/MatchZoo.git
cd MatchZoo
python setup.py install

python main.py --phase train --model_file ./models/arci_ranking.config
python main.py --phase predict --model_file ./models/arci_ranking.config
基准测试
在 Github 上,作者们以 WikiQA 数据为例来介绍 MatchZoo 的使用。
以 DRMM 为例,在 MatchZoo/matchzoo 中运行:
python main.py --phase train --model_file models/wikiqa_config/drmm_wikiqa.config
在测试时可运行:
python main.py --phase predict --model_file models/wikiqa_config/drmm_wikiqa.config
运行十个模型的结果如下:
训练 loss 曲线图如下:
测试 MAP 性能曲线图如下:
论文地址:https://arxiv.org/pdf/1707.07270.pdf,雷锋网整理

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP