Metadata-Version: 2.1
Name: tableqa
Version: 0.0.10
Summary: Tool for querying natural language on tabular data
Home-page: https://github.com/abhijithneilabraham/tableQA
Author: Abhijith Neil Abraham, Fariz Rahman
Author-email: abhijithneilabrahampk@gmail.com,farizrahman4u@gmail.com
License: GNU GPL v2
Description: # tableQA
        Tool for querying natural language on tabular data like csvs,excel sheet,etc.
        
        [![Build Status](https://travis-ci.com/abhijithneilabraham/tableQA.svg?branch=master)](https://travis-ci.com/abhijithneilabraham/tableQA)
        [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1Bgd3L-839NVZiP3QqWfpkYIufQIm4Rar?usp=sharing)
        
        
        #### Features    
        * Supports detection from multiple csvs
        * Supports FuzzyString implementation. i.e, incomplete csv values in query can be automatically detected and filled in the query.
        * Open-Domain, No training required.
        * Add manual schema for customized experience
        * Auto-generate schemas in case schema not provided
        * Data visualisations
        
        
        ### Configuration:
        
        ##### install via pip:   
        
        ```pip install tableqa```
        
        ##### installing from source:   
        
        ```git clone https://github.com/abhijithneilabraham/tableQA ```  
        
        ```cd tableqa```
        
        ```python setup.py install```
        
        
        ## Quickstart
        
        
        #### Do sample query
        
        ```
        from tableqa.agent import Agent
        agent=Agent(df) #input your dataframe
        response=agent.query_db("Your question here")
        print(response)
        ```
        
        #### Get an SQL query from the question
        ```
        sql=agent.get_query("Your question here")  
        print(sql) #returns an sql query
        ```
        
        
        #### Adding Manual schema
        
        
        
        ##### Schema Format:
        ```
        {
            "name": DATABASE NAME,
            "keywords":[DATABASE KEYWORDS],
            "columns":
            [
                {
                "name": COLUMN 1 NAME,
                "mapping":{
                    CATEGORY 1: [CATEGORY 1 KEYWORDS],
                    CATEGORY 2: [CATEGORY 2 KEYWORDS]
                }
        
                },
                {
                "name": COLUMN 2 NAME,
                "keywords": [COLUMN 2 KEYWORDS]
                },
                {
                "name": "COLUMN 3 NAME",
                "keywords": [COLUMN 3 KEYWORDS],
                "summable":"True"
                }
            ]
        }
        
        ```
        * Mappings are for those columns whose values have only few distinct classes.
        * Include only the column names which need to have manual keywords or mappings.Rest will will be autogenerated.
        * ```summable``` is included for Numeric Type columns whose values are already count representations. Eg. ```Death Count,Cases``` etc. consists values which already represent a count.
        
        
        
        Example (with manual schema):    
        
        
        
        
        ##### Database query
        
        ```
        from tableqa.agent import Agent
        agent=Agent(df,schema) #pass the dataframe and schema objects
        response=agent.query_db("how many people died of stomach cancer in 2011")
        print(response)
        #Response =[(22,)]
        ```
        
        ##### SQL query
        ```
        sql=agent.get_query("How many people died of stomach cancer in 2011")
        print(sql)
        #sql query: SELECT SUM(Death_Count) FROM cancer_death WHERE Cancer_site = "Stomach" AND Year = "2011"
        ```
        
        #### Multiple CSVs
        
        Pass the absolute path of the directories containing the csvs and schemas respectively. Refer [cleaned_data](tableqa/cleaned_data)  and [schema](tableqa/schema) for examples.
        
        ##### Example
        
        ```
        csv_path="/content/tableQA/tableqa/cleaned_data"
        schema_path="/content/tableQA/tableqa/schema"
        agent=Agent(csv_path,schema_path)
        
        ```
        
        #### Join us
        
        Join our slack workspace:[Slack](https://join.slack.com/t/newworkspace-ehh1873/shared_invite/zt-hp3i6ic7-exMal1I4ZmFMWaHAwXk8HA)
        
Platform: UNKNOWN
Requires-Python: >=3.6
Description-Content-Type: text/markdown
