duterscmy / ccks2019-ckbqa-4th-codes

中文知识库问答代码,CCKS2019 CKBQA评测第四名解决方案
476 stars 91 forks source link

关于在entity_extractor等代码中因为调用kb.py访问neo4j数据库过慢的解决方法 #32

Open ConnollyLeon opened 4 years ago

ConnollyLeon commented 4 years ago

修改kb.py代码,使其能通过http api直接访问PKUBASE的数据库。还省去了搭建本地neo4j的步骤。在我自己的机器上,效率从300秒处理完一个数据变成了3秒一个数据。

可能存在的问题:因为将Cypher语句转化成了 sparql语句,可能存在查询不全的问题(原代码中cypher语句基本上是无向查询,而sparql本身就是有向的查询)。如果后期发现有问题再进行修改。

6月9号更新 try要在json.loads之后,不然会报错。现在只有在断网的时候才会报错。 kb_http主要在entity_extractor和tuple_extractor里面使用,这里附上我的修改后的版本。 仅供参考,因为还没有完全调试好,结构写的也不够清晰!! 在修改里参考了原作者的思路,加上了几个本地缓存来避免断网之后要重新查找的问题,毕竟对整个数据集完整查询一次还挺慢的。这样查询完之后再训练,如果以后报错了可以省几个小时。

kb_http.zip

duterscmy commented 4 years ago

点赞点赞~

JS-WangZhu commented 4 years ago

点赞!

xqx1568 commented 4 years ago

舒服了 感谢!从300s变成平均0.几秒

liupenggg commented 3 years ago

搜索结果里面有乱码,怎么处理呀

ConnollyLeon commented 3 years ago

搜索结果里面有乱码,怎么处理呀

这个问题应该是因为PKUBASE的数据库有脏数据。有乱码的话,建议把这个去掉

callmeivy commented 3 years ago

感谢!

DeqianBai commented 3 years ago

修改kb.py代码,使其能通过http api直接访问PKUBASE的数据库。还省去了搭建本地neo4j的步骤。在我自己的机器上,效率从300秒处理完一个数据变成了3秒一个数据。

可能存在的问题:因为将Cypher语句转化成了 sparql语句,可能存在查询不全的问题(原代码中cypher语句基本上是无向查询,而sparql本身就是有向的查询)。如果后期发现有问题再进行修改。

6月9号更新 try要在json.loads之后,不然会报错。现在只有在断网的时候才会报错。 kb_http主要在entity_extractor和tuple_extractor里面使用,这里附上我的修改后的版本。 仅供参考,因为还没有完全调试好,结构写的也不够清晰!! 在修改里参考了原作者的思路,加上了几个本地缓存来避免断网之后要重新查找的问题,毕竟对整个数据集完整查询一次还挺慢的。这样查询完之后再训练,如果以后报错了可以省几个小时。

kb_http.zip

你好,想问一下,如果用你这个代码的话,tuple_extractor.py文件是直接运行吗, 还是说需要注释掉什么内容或者放开哪部分备注掉的内容,我运行完之后,没有生成candidate_tuples_valid.pkl文件,导致后面的tuple_filter.py:文件无法运行,谢谢~

1744084814 commented 2 years ago

使用gstore搜索数据的时候如果有entity中有空格、英文双引号、单书名号等符号时,会导致搜索出错,gstore服务器重启,那么在这些时候是啥也搜索不到的吧。出错的命令如下类: select distinct ?x ?y where {<电影"导演之王":黑泽明> ?x ?b. ?b ?y ?z} select distinct ?x ?y where {<电影导演之王 :黑泽明> ?x ?b. ?b ?y ?z}

cdg1921 commented 2 years ago

修改kb.py代码,使其能通过http api直接访问PKUBASE的数据库。还省去了搭建本地neo4j的步骤。在我自己的机器上,效率从300秒处理完一个数据变成了3秒一个数据。

可能存在的问题:因为将Cypher语句转化成了 sparql语句,可能存在查询不全的问题(原代码中cypher语句基本上是无向查询,而sparql本身就是有向的查询)。如果后期发现有问题再进行修改。

6月9号更新 try要在json.loads之后,不然会报错。现在只有在断网的时候才会报错。 kb_http主要在entity_extractor和tuple_extractor里面使用,这里附上我的修改后的版本。 仅供参考,因为还没有完全调试好,结构写的也不够清晰!! 在修改里参考了原作者的思路,加上了几个本地缓存来避免断网之后要重新查找的问题,毕竟对整个数据集完整查询一次还挺慢的。这样查询完之后再训练,如果以后报错了可以省几个小时。

kb_http.zip

你好,连接数据库时报错:{'StatusCode': 903, 'StatusMsg': 'username not find.'} 具体的账号和密码怎么获取呢?

ConnollyLeon commented 2 years ago

修改kb.py代码,使其能通过http api直接访问PKUBASE的数据库。还省去了搭建本地neo4j的步骤。在我自己的机器上,效率从300秒处理完一个数据变成了3秒一个数据。 可能存在的问题:因为将Cypher语句转化成了 sparql语句,可能存在查询不全的问题(原代码中cypher语句基本上是无向查询,而sparql本身就是有向的查询)。如果后期发现有问题再进行修改。 6月9号更新 try要在json.loads之后,不然会报错。现在只有在断网的时候才会报错。 kb_http主要在entity_extractor和tuple_extractor里面使用,这里附上我的修改后的版本。 仅供参考,因为还没有完全调试好,结构写的也不够清晰!! 在修改里参考了原作者的思路,加上了几个本地缓存来避免断网之后要重新查找的问题,毕竟对整个数据集完整查询一次还挺慢的。这样查询完之后再训练,如果以后报错了可以省几个小时。 kb_http.zip

你好,连接数据库时报错:{'StatusCode': 903, 'StatusMsg': 'username not find.'} 具体的账号和密码怎么获取呢?

2年前的东西突然被翻出来了0.0,我已经不维护这个代码啦,可能数据库不让访问了,我记得我当时是不需要账号和密码的...

Pap-Fish commented 1 year ago

修改kb.py代码,使其能通过http api直接访问PKUBASE的数据库。还省去了搭建本地neo4j的步骤。在我自己的机器上,效率从300秒处理完一个数据变成了3秒一个数据。 可能存在的问题:因为将Cypher语句转化成了 sparql语句,可能存在查询不全的问题(原代码中cypher语句基本上是无向查询,而sparql本身就是有向的查询)。如果后期发现有问题再进行修改。 6月9号更新 try要在json.loads之后,不然会报错。现在只有在断网的时候才会报错。 kb_http主要在entity_extractor和tuple_extractor里面使用,这里附上我的修改后的版本。 仅供参考,因为还没有完全调试好,结构写的也不够清晰!! 在修改里参考了原作者的思路,加上了几个本地缓存来避免断网之后要重新查找的问题,毕竟对整个数据集完整查询一次还挺慢的。这样查询完之后再训练,如果以后报错了可以省几个小时。 kb_http.zip

你好,连接数据库时报错:{'StatusCode': 903, 'StatusMsg': 'username not find.'} 具体的账号和密码怎么获取呢?

现在账号密码好像是root:123456,详情见https://github.com/pkumod/gStore/blob/0.8/docs/API.md