Code Monkey home page Code Monkey logo

fire's Introduction

Filtering before Iteratively Referring for Knowledge-Grounded Response Selection in Retrieval-Based Chatbots

This repository contains the source code and datasets for the EMNLP 2020 paper Filtering before Iteratively Referring for Knowledge-Grounded Response Selection in Retrieval-Based Chatbots by Gu et al.

Our proposed Filtering before Iteratively REferring (FIRE) model has achieved a new state-of-the-art performance of knowledge-grounded response selection on the PERSONA-CHAT and CMU_DoG datasets.

Model overview

Results

Dependencies

Python 2.7
Tensorflow 1.4.0

Datasets

Your can download the datasets and their corresponding embedding and vocabulary files used in our paper from the following links.

Unzip the datasets to the folder of data and run the following commands. The processed files are stored in data/personachat_processed/ or data/cmudog_processed/.

cd data
python data_preprocess_pc.py
python data_preprocess_cd.py

Then, unzip their corresponding embedding and vocabulary files to the folder of data/personachat_processed/ or data/cmudog_processed/.

Train a new model

Take PERSONA-CHAT as an example.

cd scripts
bash train_personachat.sh

The training process is recorded in log_FIRE_train_personachat_original.txt file.

Test a trained model

bash test_personachat.sh

The testing process is recorded in log_FIRE_test_personachat_original.txt file. And your can get a test_out_FIRE_personachat_original.txt file which records scores for each example. Run the following command and you can compute the metric of Recall.

python compute_recall.py

Cite

If you use the code and datasets, please cite the following paper: "Filtering before Iteratively Referring for Knowledge-Grounded Response Selection in Retrieval-Based Chatbots" Jia-Chen Gu, Zhen-Hua Ling, Quan Liu, Zhigang Chen, Xiaodan Zhu. EMNLP (2020)

@inproceedings{gu-etal-2020-filtering,
 title = "Filtering before Iteratively Referring for Knowledge-Grounded Response Selection in Retrieval-Based Chatbots",
 author = "Gu, Jia-Chen and
           Ling, Zhenhua and
           Liu, Quan and
           Chen, Zhigang and
           Zhu, Xiaodan",
 booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings",
 month = nov,
 year = "2020",
 address = "Online",
 publisher = "Association for Computational Linguistics",
 url = "https://www.aclweb.org/anthology/2020.findings-emnlp.127",
 pages = "1412--1422",
}

Acknowledgments

Thank ParlAI for providing the PERSONA-CHAT dataset.
Thank Xueliang Zhao for providing the processed CMU_DoG dataset used in their paper.

Contact

Please keep an eye on this repository if you are interested in our work.
Feel free to contact us ([email protected]) or open issues.

fire's People

Contributors

jasonforjoy avatar

Stargazers

Coldog avatar zhenli avatar Aditya Srivastava avatar Arjun Nemani avatar Bakhtiyar Syed avatar  avatar Haozhe Ji avatar  avatar  avatar yanqiangmiffy avatar 黄培松 avatar Dongming Sheng avatar

Watchers

James Cloos avatar  avatar

Forkers

wenwub ammieqi

fire's Issues

More details about the data and how to use them

Hi, I downloaded the data and for each split it has 7 versions. both, other, self with original and revised version and none with only original version. I saw the code of training and testing only uses the ones with self tag. So what are the differences between these four types? Is it I only need to use the self ones in order to compare with the results in the paper?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.