pkumod / gAnswer

A KBQA system based on DBpedia.
http://ganswer.gstore-pku.com
BSD 3-Clause "New" or "Revised" License
376 stars 98 forks source link

GAnswer系统(中文问答版本),导入eclipse,运行GanswerHttp.java报错 #30

Open jamestch opened 5 years ago

jamestch commented 5 years ago

报错信息如下: java.io.FileNotFoundException: data\pkubase\paraphrase\mini-mention2ent.txt (系统找不到指定的文件。) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:213) at java.base/java.io.FileInputStream.(FileInputStream.java:155) at java.base/java.io.FileInputStream.(FileInputStream.java:110) at java.base/java.io.FileReader.(FileReader.java:60) at utils.FileUtil.readFile(FileUtil.java:14) at qa.extract.EntityRecognitionCh.(EntityRecognitionCh.java:125) at paradict.ParaphraseDictionary.addPredicateAsNLPattern(ParaphraseDictionary.java:250) at paradict.ParaphraseDictionary.(ParaphraseDictionary.java:71) at qa.Globals.init(Globals.java:50) at application.GanswerHttp.main(GanswerHttp.java:71)

\data\pkubase\paraphrase目录下文件名如下: +ccksminutf.txt +pkubase-mention2ent.txt +pkubase-paraphrase.txt

是否应该是将 pkubase-mention2ent.txt改名为mini-mention2ent.txt??

nicklin96 commented 5 years ago

您好! 非常抱歉,由于我们的疏忽,/data/pkubase/paraphrase下的文件名和代码中的文件名出现了不一致。您可以通过修改文件名或者代码中的文件路径先自行修复这一问题。 目前,中文gAnswer还处于紧张调试中,目前提供的版本只是一个可以正常运行的框架。如果您希望提升中文gAnswer在您的数据集上的效果,可以尝试自行定义和生成mention2ent与paraphrase两个词典。 感谢您对gAnswer的关注!

jamestch commented 5 years ago

非常感谢您的帮助。另外有个疑问请教您:中文版本Ganswer中用到DBpediaLookup服务或者类似替代服务吗?

nicklin96 commented 5 years ago

目前暂时还没有用到类似的服务

jamestch commented 5 years ago

根据文档我在本地部署的gstore中导入了pkubase-triples,并在ganswer中文版源代码中修改配置了本地gstore的ip和port,然后打包成jar后部署,服务启动成功。 但是请求(问题:姚明的妻子是谁?) http://ip:port/gSolve/?data={maxAnswerNum:3,%20maxSparqlNum:2,%20question:%E5%A7%9A%E6%98%8E%E5%A6%BB%E5%AD%90%E6%98%AF%E8%B0%81?} 返回结果如下: { question: "姚明妻子是谁?", message: "Unkown Exception", status: "500" } 后台输出日志如下: [Input:] 姚明妻子是谁? Result: ①,妻子,是,谁,?, step0 [Node Recognition] : 3ms transQ: 姚明妻子是谁? ====StanfordDependencies(23ms)==== -> 是-VC (root)[3] -> 谁-PN (attr)[4] -> 妻子-NN (top)[2] -> 姚明-NR (nn)[1]

java.lang.NullPointerException at qa.parsing.BuildQueryGraph.isNodeCandidate(BuildQueryGraph.java:867) at qa.parsing.BuildQueryGraph.getTheModifiedWordBySentence(BuildQueryGraph.java:797) at qa.parsing.BuildQueryGraph.process(BuildQueryGraph.java:79) at qa.GAnswer.getSparqlList(GAnswer.java:72) at application.GanswerHandler.handle(GanswerHandler.java:66) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1096) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1032) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:258) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:445) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:267) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:224) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532) at java.lang.Thread.run(Thread.java:745) number of rankedSparqls = 0

请问这个原因是因为数据中没有姚明的信息吗?您那边有没有在pkubase数据集上测试过有结果返回的中文问题?

yangjianxin1 commented 4 years ago

@nicklin96 你好,请问这个中文问答的准确率怎样

nicklin96 commented 4 years ago

@yangjianxin1 您好!目前我们发布的版本属于先行demo,用到的词典和数据规模较小,仅能回答一小部分问题,日后我们会陆续发布更好的版本

jamestch commented 4 years ago

@nicklin96 目前中文版似乎有bug,我按照步骤试了,一直报status 500

ZainZhou commented 4 years ago

@nicklin96 请问作者有中文问答的在线问答系统可以测试吗?

nicklin96 commented 4 years ago

@ZainZhou 您好,目前我们还在改进中文问答的效果,因此暂时不提供在线的中文问答版本

southproject commented 4 years ago

根据文档我在本地部署的gstore中导入了pkubase-triples,并在ganswer中文版源代码中修改配置了本地gstore的ip和port,然后打包成jar后部署,服务启动成功。 但是请求(问题:姚明的妻子是谁?) http://ip:port/gSolve/?data={maxAnswerNum:3,%20maxSparqlNum:2,%20question:%E5%A7%9A%E6%98%8E%E5%A6%BB%E5%AD%90%E6%98%AF%E8%B0%81?} 返回结果如下: { question: "姚明妻子是谁?", message: "Unkown Exception", status: "500" } 后台输出日志如下: [Input:] 姚明妻子是谁? Result: ①,妻子,是,谁,?, step0 [Node Recognition] : 3ms transQ: 姚明妻子是谁? ====StanfordDependencies(23ms)==== -> 是-VC (root)[3] -> 谁-PN (attr)[4] -> 妻子-NN (top)[2] -> 姚明-NR (nn)[1]

java.lang.NullPointerException at qa.parsing.BuildQueryGraph.isNodeCandidate(BuildQueryGraph.java:867) at qa.parsing.BuildQueryGraph.getTheModifiedWordBySentence(BuildQueryGraph.java:797) at qa.parsing.BuildQueryGraph.process(BuildQueryGraph.java:79) at qa.GAnswer.getSparqlList(GAnswer.java:72) at application.GanswerHandler.handle(GanswerHandler.java:66) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1096) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1032) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:258) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:445) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:267) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:224) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532) at java.lang.Thread.run(Thread.java:745) number of rankedSparqls = 0

请问这个原因是因为数据中没有姚明的信息吗?您那边有没有在pkubase数据集上测试过有结果返回的中文问题?

@jamestch 用GanswerHttp启动我也报了一样的错误,请问你当时解决了吗

southproject commented 4 years ago

好吧,打印了下信息,不加问号就好了~

haozheng61 commented 3 years ago

好吧,打印了下信息,不加问号就好了~

加问好可以,但是需要加中文的问好,英文的问好就会报错