表格数据自然语言查询工具

tableqa的Python项目详细描述


表QA

在表格数据上查询自然语言的工具,如csv,excel表格等

Build StatusOpen In Colab

功能

  • 支持从多个CSV进行检测
  • 支持FuzzyString实现。i、 e、查询中不完整的csv值可以自动检测并填充到查询中。在
  • 开放域名,无需培训。在
  • 为自定义体验添加手动架构
  • 在未提供架构的情况下自动生成架构
  • 数据可视化

配置:

通过pip安装:

pip install tableqa

从源安装:

git clone https://github.com/abhijithneilabraham/tableQA

cd tableqa

python setup.py install

快速启动

执行示例查询

from tableqa.agent import Agent
agent=Agent(df) #input your dataframe
response=agent.query_db("Your question here")
print(response)

从问题中获取SQL查询

^{pr2}$

添加手动模式

模式格式:
{
    "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"
        }
    ]
}

  • 映射适用于那些值只有几个不同类的列。在
  • 只包括需要有手动关键字或映射.Rest将自动生成。在
  • summable包含在数值类型列中,这些列的值已经是计数表示。例如,Death Count,Cases等包含已经表示计数的值。在

示例(使用手动模式):

数据库查询
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查询
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"

多个CSV

分别传递包含csv和schema的目录的绝对路径。请参考cleaned_dataschema以获取示例。在

示例
csv_path="/content/tableQA/tableqa/cleaned_data"
schema_path="/content/tableQA/tableqa/schema"
agent=Agent(csv_path,schema_path)

加入我们

加入我们的空闲工作区:Slack

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java检查整数是0还是检查变量是null更好?   java Android Kotlin(初学者)使用File(),并从ACTION\u GET\u内容返回Uri   java JavaFx在“内部场景”和根场景之间切换   spring将XMLBean配置转换为java配置   java JPA HIBERNATE映射列两次(embeddedID和POJO)   c#单态模式模型在什么情况下适用?   java请求。getRemoteUser在特定时间后返回null?   spring boot中PUT api控制器的java my单元测试用例失败   java在字符串中互换地解析和替换值   java Android JNI在应用程序中检测到错误:调用JNI GetMethodID时出现挂起异常   JavaSpringDataMongo:使用非简单键持久化映射   爪哇玻璃鱼连接被拒绝   java如何在用户注册时发送特定电子邮件id的自动回复?   Java列表:实例化时和之后的赋值之间的差异