ysc / QuestionAnsweringSystem

QuestionAnsweringSystem是一个Java实现的人机问答系统,能够自动分析问题并给出候选答案。
Apache License 2.0
1.96k stars 1.3k forks source link

分词总是分错,是怎么回事? #12

Closed guotong1988 closed 8 years ago

guotong1988 commented 8 years ago

对问题进行分词:苏格兰属于哪个洲 分词结果为:苏 格 兰 属 于 哪 个 洲

我check下来源码在eclipse里运行多次,我记得就有一次运行是自动回答正确的

我初步断定是分词的错误,因为在CommonCandidateAnswerSelect类里

if (word.getText().length() < 2){
                LOG.debug("忽略长度小于2的候选答案:"+word);
                continue;
}

会忽略长度小于2的候选答案,所以上面的 苏格兰 会被忽略

ysc commented 8 years ago

网页界面输出

问题:苏格兰属于哪个洲 答案: 序号 候选答案 答案评分 1 英国 1.0 2 英格兰 0.5750764693313416 3 大不列颠 0.35729075575786035 4 威尔士 0.3154187556565901 5 昆明 0.3054385411970115 6 北爱尔兰 0.20551109386550256 7 西临 0.13527580522621396 8 大西洋 0.135042367556336 9 北海 0.13467187048847026 10 欧洲 0.10191780989357621 11 大不列颠及北爱尔兰联合王国 0.0952426025275079 12 爱尔兰岛 0.09386061472731476 13 不列颠 0.09356736053571106

ysc commented 8 years ago

日志输出

Question:苏格兰属于哪个洲 搜索到Evidence 8 条 将Question:苏格兰属于哪个洲 加入MySQL数据库 使用【模式匹配】的方法判断问题类型: 苏格兰属于哪个洲 问题:苏格兰属于哪个洲 词和词性序列:苏格兰/ns 属于/v 哪个/r 洲/ng 词性序列:ns/v/r/ng 对问题进行分词:苏格兰属于哪个洲 分词结果为:苏格兰 属于 哪个 洲 句法树: (ROOT [46.326](IP %28NP %28NR 苏格兰%29%29 %28VP %28VV 属于%29 %28NP %28DP %28DT 哪个%29%29 %28NP %28NN 洲%29%29%29%29)) 句子依存关系: nsubj(属于-2, 苏格兰-1) root(ROOT-0, 属于-2) det(洲-4, 哪个-3) dobj(属于-2, 洲-4) 主谓宾:苏格兰 属于 洲 主谓宾词和词性序列:苏格兰/ns 属于/v 洲/ng 主谓宾词性序列:ns/v/ng

处理问题类型模式文件: /questionTypePatterns/QuestionTypePatternsLevel1_true.txt 匹配成功: 苏格兰属于哪个洲 : 苏格兰属于哪个洲 : Location 在问题类型模式文件中[找到]匹配项: /questionTypePatterns/QuestionTypePatternsLevel1_true.txt

处理问题类型模式文件: /questionTypePatterns/QuestionTypePatternsLevel2_true.txt 在问题类型模式文件中[未找到]匹配项: /questionTypePatterns/QuestionTypePatternsLevel2_true.txt

处理问题类型模式文件: /questionTypePatterns/QuestionTypePatternsLevel3_true.txt 在问题类型模式文件中[未找到]匹配项: /questionTypePatterns/QuestionTypePatternsLevel3_true.txt 从紧凑到宽松进行处理 问题类型模式【QuestionTypePatternsLevel1_true.txt】匹配情况,是否允许匹配多个类型:true 序号:1 问题 : 苏格兰属于哪个洲 模式 : 苏格兰属于哪个洲 分类 : Location 从紧凑到宽松进行处理 处理问题类型模式:QuestionTypePatternsLevel1_true.txt ,是否允许多个匹配:true 只有一个匹配结果,匹配成功 类型 选中数目 LOCATION_NAME 1 问题类型模式QuestionTypePatternsLevel1_true.txt有一个匹配,【找到类型】 找到类型,返回:LOCATION_NAME 开始处理Question 2:苏格兰属于哪个洲 【问题类型:LOCATION_NAME】

Question 苏格兰属于哪个洲 Question 候选答案: 英国 1.0 英格兰 0.5750764693313416 大不列颠 0.35729075575786035 威尔士 0.3154187556565901 昆明 0.3054385411970115 北爱尔兰 0.20551109386550256 西临 0.13527580522621396 大西洋 0.135042367556336 北海 0.13467187048847026 欧洲 0.10191780989357621 大不列颠及北爱尔兰联合王国 0.0952426025275079 爱尔兰岛 0.09386061472731476 不列颠 0.09356736053571106

guotong1988 commented 8 years ago

我知道了,我把项目放linux的 桌面 了,取资源的时候,这个中文路径是问题