MCPcopy Index your code
hub / github.com/NTMC-Community/MatchZoo-py

github.com/NTMC-Community/MatchZoo-py @v1.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.1.1 ↗ · + Follow
677 symbols 2,006 edges 149 files 530 documented · 78%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

logo

MatchZoo-py Tweet

PyTorch version of MatchZoo.

Facilitating the design, comparison and sharing of deep text matching models.

MatchZoo 是一个通用的文本匹配工具包,它旨在方便大家快速的实现、比较、以及分享最新的深度文本匹配模型。

Python 3.6 Pypi Downloads Documentation Status Build Status codecov License Requirements Status Gitter


The goal of MatchZoo is to provide a high-quality codebase for deep text matching research, such as document retrieval, question answering, conversational response ranking, and paraphrase identification. With the unified data processing pipeline, simplified model configuration and automatic hyper-parameters tunning features equipped, MatchZoo is flexible and easy to use.

Tasks Text 1 Text 2 Objective
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

Get Started in 60 Seconds

To train a Deep Semantic Structured Model, make use of MatchZoo customized loss functions and evaluation metrics to define a task:

import torch
import matchzoo as mz

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

Prepare input data:

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

Preprocess your input data in three lines of code, keep track parameters to be passed into the model:

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

Generate pair-wise training data on-the-fly:

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

Define padding callback and generate data loader:

padding_callback = mz.models.ArcI.get_default_padding_callback()

trainloader = mz.dataloader.DataLoader(
    dataset=trainset,
    stage='train',
    callback=padding_callback
)
validloader = mz.dataloader.DataLoader(
    dataset=validset,
    stage='dev',
    callback=padding_callback
)

Initialize the model, fine-tune the hyper-parameters:

model = mz.models.ArcI()
model.params['task'] = ranking_task
model.params['embedding_output_dim'] = 100
model.params['embedding_input_dim'] = preprocessor.context['embedding_input_dim']
model.guess_and_fill_missing_params()
model.build()

Trainer is used to control the training flow:

optimizer = torch.optim.Adam(model.parameters())

trainer = mz.trainers.Trainer(
    model=model,
    optimizer=optimizer,
    trainloader=trainloader,
    validloader=validloader,
    epochs=10
)

trainer.run()

References

Tutorials

English Documentation

If you're interested in the cutting-edge research progress, please take a look at awaresome neural models for semantic match.

Install

MatchZoo-py is dependent on PyTorch. Two ways to install MatchZoo-py:

Install MatchZoo-py from Pypi:

pip install matchzoo-py

Install MatchZoo-py from the Github source:

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

Models

Citation

If you use MatchZoo in your research, please use the following BibTex entry.

@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},
} 

Development Team

​ ​ ​ ​

faneshionYixing Fan ​ Core Dev ASST PROF, ICT ​ Chriskuei Jiangui Chen ​ Core Dev PhD. ICT ​ caiyinqiong Yinqiong Cai Core Dev M.S. ICT ​ pl8787Liang Pang ​ Core Dev ASST PROF, ICT ​ lixinsuLixin Su Dev PhD. ICT ​

Core symbols most depended-on inside this repo

add
called by 121
matchzoo/engine/param_table.py
dropout
called by 32
matchzoo/models/bimpm.py
_make_output_layer
called by 20
matchzoo/engine/base_model.py
reset_index
called by 17
matchzoo/dataloader/dataset.py
_make_default_embedding_layer
called by 16
matchzoo/engine/base_model.py
apply_on_text
called by 14
matchzoo/data_pack/data_pack.py
_wrap_as_composite_func
called by 13
matchzoo/engine/hyper_spaces.py
mp_matching_func
called by 12
matchzoo/models/bimpm.py

Shape

Method 426
Function 148
Class 103

Languages

Python100%

Modules by API surface

matchzoo/data_pack/data_pack.py29 symbols
matchzoo/engine/hyper_spaces.py28 symbols
matchzoo/auto/tuner/tuner.py23 symbols
matchzoo/dataloader/dataset.py20 symbols
matchzoo/trainers/trainer.py17 symbols
tests/trainer/test_trainer.py15 symbols
matchzoo/engine/param_table.py15 symbols
matchzoo/engine/base_model.py15 symbols
tests/models/test_models.py13 symbols
matchzoo/engine/param.py12 symbols
matchzoo/dataloader/callbacks/padding.py12 symbols
matchzoo/engine/base_task.py11 symbols

For agents

$ claude mcp add MatchZoo-py \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact