5hirish / adam_qas

ADAM - A Question Answering System. Inspired from IBM Watson
http://www.shirishkadam.com/
GNU General Public License v3.0
357 stars 106 forks source link
adam elasticsearch gensim natural-language-processing pandas python question-answering scikit-learn spacy spacy-extension wikipedia

ADAM -- Question Answering System

License: GPL v3 Codacy Badge Codecov Build Status Gitter Twitter

A question answering system that extracts answers from Wikipedia to questions posed in natural language. Inspired by IBM Watson and START. We are currently focused on improving the accuracy of the extracted answers. Follow the creator's blog at shirishkadam.com for updates on progress.

Getting Started

Elasticsearch is being used to store and index the scrapped and parsed texts from Wikipedia. Elasticsearch 7.X installation guide can be found at Elasticsearch Documentation. You might have to start the elasticsearch search service.

$ git clone https://github.com/5hirish/adam_qas.git
$ cd adam_qas
$ pip install -r requirements.txt
$ python -m qas.adam -vv "When was linux kernel version 4.0 released ?"

Note: The above installation downloads the best-matching default english language model for spaCy. But to improve the model's accuracy you can install other models too. Read more at spaCy docs.

$ python -m spacy download en_core_web_md

Running with Docker

$ git clone https://github.com/5hirish/adam_qas.git
$ cd adam_qas
$ docker-compose up

Now both conntainers are up and running. Next step is to enter in the python container and run Adam:

$ docker exec -it $(docker ps -a -q  --filter ancestor=adam_qas_adam) bash
$ python -m qas.adam -vv "When was linux kernel version 4.0 released ?"

References

Find more in depth documentation about the system with its research paper and system architecture here

Requirements

Python Package dependencies listed in requirements.txt Upgrading Elasticsearch 6.X:

Current Project State ?

GitHub Issue #36: Invalid Answers

TODO

Contributions

Please see our contributing documentation for some tips on getting started.

Maintainers