Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakartaresearch/quora-question-pairs
Experiment on Quora Question Pairs
https://github.com/jakartaresearch/quora-question-pairs
Last synced: 5 days ago
JSON representation
Experiment on Quora Question Pairs
- Host: GitHub
- URL: https://github.com/jakartaresearch/quora-question-pairs
- Owner: jakartaresearch
- Created: 2020-06-01T14:45:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-12-23T06:32:38.000Z (11 months ago)
- Last Synced: 2023-12-23T07:30:50.371Z (11 months ago)
- Language: Jupyter Notebook
- Size: 185 KB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Quora Question Pairs
Where else but Quora can a physicist help a chef with a math problem and get cooking tips in return? Quora is a place to gain and share knowledge—about anything. It’s a platform to ask questions and connect with people who contribute unique insights and quality answers. This empowers people to learn from each other and to better understand the world.
Over 100 million people visit Quora every month, so it's no surprise that many people ask similarly worded questions. Multiple questions with the same intent can cause seekers to spend more time finding the best answer to their question, and make writers feel they need to answer multiple versions of the same question. Quora values canonical questions because they provide a better experience to active seekers and writers, and offer more value to both of these groups in the long term.
Currently, Quora uses a Random Forest model to identify duplicate questions. In this competition, Kagglers are challenged to tackle this natural language processing problem by applying advanced techniques to classify whether question pairs are duplicates or not. Doing so will make it easier to find high quality answers to questions resulting in an improved experience for Quora writers, seekers, and readers. --Kaggle
Start Project: 25 April 2020
End Project: 31 May 2020## Branch
|--master
|--dev## Main References
| Title | Author | Year |
| ---------------------------------------------------------------------------------------- | ---------------- | ---- |
| Aiming beyond the obvious: Identifying non-obvious cases in semantic similarity datasets | Peinelt et al. | 2020 |
| Bilateral multi-perspective matching for natural language sentences | Wang et al. | 2017 |
| Large Scale Question Paraphrase Retrieval with Smoothed Deep Metric Learning | Bonadiman et al. | 2019 |
| Retrofitting Contextualized Word Embeddings with Paraphrases | Shi et al. | 2019 |## Requirements
```
pip install -r requirements.txt
```## Result
| Name | Stack | Score |
| ----- | ----------------- | ----- |
| Exp-1 | CV - XGBoost | 68.09 |
| Exp-2 | CV - Catboost | 74.66 |
| Exp-3 | TF-IDF - XGBoost | 69.14 |
| Exp-4 | TF-IDF - Catboost | 75.39 |We also experimented using deep learning
| Name | Stack | Score |
| --------------- | ----- | ----- |
| Basic LSTM | LSTM | 80.32 |
| BERT-Base-Cased | BERT | 97.07 |## Quick Start
- You need to download all the data needed from [here](https://drive.google.com/drive/folders/1LpZhav8bftTSqsZHIQEdI_JWT4S-797L?usp=sharing)
To use the Benchmark on Ensemble Algorithms
Train```
python script/ensemble_train.py --data-path data/cross_validation_data --report-path reports --model-path models
```Inference
```
python script/ensemble_inference.py --model-path models/cv_cat.pkl --q1 "where are you going" --q2 "where will you go"
```To use the LSTM Model
Train```
python script/lstm_train.py --cross-path data/cross_validation_data --tokenizer-path data/bert-case --batch-size 50
```Inference
```
python script/lstm_inference.py --model-path models/bi_lstm.pth --tokenizer-path data/bert-case --q1 "where are you going" --q2 "where will you go"
```To use the BERT Model
Train```
python script/BERT_train.py --dataset_path data/quora_duplicate_questions.tsv --kfold_data_path data/cross_validation_data/1 --model_path model
```Inference
```
python script/BERT_inference.py --model_path model --q1 "where are you going" --q2 "where will you go"
```## Contributors
[![](https://github.com/andreaschandra/git-assets/blob/master/pictures/andreas.png)](https://github.com/andreaschandra)
[![](https://github.com/andreaschandra/git-assets/blob/master/pictures/ruben.png)](https://github.com/rubentea16)