将自然语言转换为数据库查询的框架。
quep的Python项目详细描述
__ _ _ _ ___ _ __ _ _ / _` | | | |/ _ \ '_ \| | | | | (_| | |_| | __/ |_) | |_| | \__, |\__,_|\___| .__/ \__, | |_| |_| |___/
奎比是什么?
quepy是一个将自然语言问题转换为查询的python框架。 在数据库查询语言中。它可以很容易地定制为不同类型的 自然语言和数据库查询中的问题。所以,只要给你一点编码 可以为自然语言访问数据库构建自己的系统。
示例
为了说明如何使用quepy,我们提供了一个示例应用程序 通过其sparql端点访问DBpedia内容。
您可以在这里在线尝试示例:Online demo
或者,您可以自己尝试这个示例,方法是:
python examples/dbpedia/main.py "Who is Tom Cruise?"
它将输出如下内容:
SELECTDISTINCT?x1WHERE{?x0rdf:typefoaf:Person.?x0rdfs:label"Tom Cruise"@en.?x0rdfs:comment?x1.}ThomasCruiseMapotherIV,widelyknownasTomCruise,isan...
从自然语言到sparql的转换首先使用 正则表达式的特殊形式:
person_name=Group(Plus(Pos("NNP")),"person_name")regex=Lemma("who")+Lemma("be")+person_name+Question(Pos("."))
然后使用和一种方便的方式来表示语义关系:
person=IsPerson()+HasKeyword(person_name)definition=DefinitionOf(person)
转换的其余部分由框架自动处理,以 最后生成这个sparql:
SELECTDISTINCT?x1WHERE{?x0rdf:typefoaf:Person.?x0rdfs:label"Tom Cruise"@en.?x0rdfs:comment?x1.}
使用非常相似的过程,可以为同一个问题生成和mql查询 获取:
[{"/common/topic/description":[{}],"/type/object/name":"Tom Cruise","/type/object/type":"/people/person"}]
贡献!
想帮助发展出湿疹吗?欢迎上船!在中找到我们
- #quepy at freenode
- quepydev at librelist.com