专栏首页AI研习社中科院计算所开源深度文本匹配开源工具 MatchZoo

中科院计算所开源深度文本匹配开源工具 MatchZoo

中国科学院计算技术研究所网络数据科学与技术重点实验室近日发布了深度文本匹配开源项目 MatchZoo。MatchZoo 是一个 Python 环境下基于 TensorFlow 开发的开源文本匹配工具,可以应用于文本检索、自动问答、复述问题、对话系统等多种应用任务场景。

GitHub: https://github.com/faneshion/MatchZoo

在 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

本文分享自微信公众号 - AI研习社(okweiwu),作者:奕欣

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手把手教你用 TensorFlow 实现文本分类(上)

    由于需要学习语音识别,期间接触了深度学习的算法。利用空闲时间,想用神经网络做一个文本分类的应用, 目的是从头到尾完成一次机器学习的应用,学习模型的优化方法,同时...

    AI研习社
  • 谷歌发布含 7 种语言的全新数据集:有效提升 BERT 等多语言模型任务精度高达 3 倍!

    近日,谷歌发布了包含 7 种语言释义对的全新数据集,即:PAWS 与 PAWS-X。BERT 通过该数据集的训练,在释义对问题上的精度实现了约为 3 倍的提升;...

    AI研习社
  • 一文带你读懂 OCR

    OCR,或光学字符识别,是最早的计算机视觉任务之一,因为在某些方面它不需要用到深度学习。因此,早在2012年深度学习热潮之前,OCR就有了各种不同的应用,有些甚...

    AI研习社
  • 文本特征提取方法研究

    一、课题背景概述 文本挖掘是一门交叉性学科,涉及数据挖掘、机器学习、模式识别、人工智能、统计学、计算机语言学、计算机网络技术、信息学等多个领域。文本挖掘就是从大...

    机器学习AI算法工程
  • 【陆勤学习】文本特征提取方法研究

    一、课题背景概述 文本挖掘是一门交叉性学科,涉及数据挖掘、机器学习、模式识别、人工智能、统计学、计算机语言学、计算机网络技术、信息学等多个领域。文本挖掘就是从大...

    陆勤_数据人网
  • 文本替换原来可以这么玩~

    今天是第三期朋友提问解答分享~ 今天提问的是我的一位好兄弟,和我同年入职某公司,后来离职独自执剑闯天涯。如今已经事业有成,每天为了心中的理想奋斗,而我还在苦逼的...

    用户1332619
  • ICCV2019 | 任意形状文本检测的像素聚合网络

    本文简要介绍了2019年7月被ICCV录用的论文“Efficient and AccurateArbitrary-Shaped Text Detection w...

    AI科技评论
  • 分析了《无问西东》17万+评论数据,我发现这些信息

    2019即将开启,一大波新电影又将上线争芳斗艳,恰如年初《无问西东》刚上线时的场景一样。

    luanhz
  • PHPEXCEL批量导入数据

    开发过程中有一些数据,如报表信息、财务统计等信息使用excel进行存储,需要将文件导入到数据库中,下面我们将以一个简单的小例子,演示批量导入。

    申霖
  • 1.计算机发展阶段 计算机发展历史 机械式计算机 机电式计算机 电子计算机 逻辑电路与计算机 二极管 电子管 晶体管 硅 门电路 计算机 电磁学计算机二进制

    再后来有了一些数学理论的发展,纳皮尔棒/计算尺则是借助了一定的数学理论,可以理解为是一种查表计算法.

    noteless

扫码关注云+社区

领取腾讯云代金券