• This repository has been archived on 14/Jun/2020
  • Stars
    star
    357
  • Rank 119,149 (Top 3 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 9 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ADAM - A Question Answering System. Inspired from IBM Watson

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:

  • Rolling Update 6.2 to 6.8 > ref
  • Rolling Update 6.8 to 7.1 > ref

Features

  • Extract information from Wikipedia
  • Classify questions with regular expression (default)
  • Classify questions with a SVM (optional)
  • Vector space model used for answer extraction
  • Rank candidate answers
  • Merge top 5 answers into one response

Current Project State ?

GitHub Issue #36: Invalid Answers

TODO

  • Replace Wikipedia APIs with custom scraper
  • Storing extracted data in database (elasticsearch)
  • SQLite test input data storage
  • Anaphora resolution in both questions and answers
  • Machine learning query constructor rather than rule-based
  • Improve vector space language model for answer extraction

Contributions

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

Maintainers

More Repositories

1

quinine

A Flutter IDE by developers for developers (In Development)
Dart
108
star
2

tweet_scrapper

Scrape the Twitter frontend API without any authentication and restriction.
Python
58
star
3

weisaw

A Slack bot to track your leave plans. Uses Basic text processing.
Python
3
star
4

Android_repeating_alarms

Android implementation of fault tolerant repeating alarms (Daily, weekly or on selected weekdays).
Java
3
star
5

android_recyclerview_compelete

RecyclerView with Divider, Notify Data Update, Insert and Delete.
Java
3
star
6

flask-restful-template

Flask REST API Template
Python
3
star
7

android_attendance_managment

Attendance Management System for Colleges. Has Semester wise Subjects and Teachers. Two account types supported - Administrator and User. Admin has rights to add users and mark their attendance according to the date. View the complete data in tabular format. View user details and info.
Java
3
star
8

facebook_scrapper

Python
2
star
9

naive_bayes_classifier

A Supervised Machine Learning Algorithim
Python
2
star
10

django_adam_qas

ADAM - QA -- Front-end using Django and Material Design.
Python
2
star
11

currency_converter_yahooapi

Android Currency Converter using Yahoo Finance API (YQL) and implements Text change Listener.
Java
2
star
12

android_movies

An Android app to manage and track all my Movie collection along with fetching metadata about the movies from the internet.
Java
2
star
13

android_iris_scan

IRIS Recognition for Smart India Hackathon 2017 [Android Client]
Java
1
star
14

adam_app

Electron based Desktop App using Material Design
HTML
1
star
15

5hirish

Config files for my GitHub profile.
1
star
16

dashbash

A Sample Flask Project
Python
1
star
17

android_meditrack

Track your Medicines and never skip one.
Java
1
star
18

noteapp

Android Notes App built with Room & Android Architecture Components
Java
1
star
19

android_gcm_notify

Implements Android Google Cloud Messaging with a LAMP Server.
Java
1
star