BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #37475同步于 2010/4/5
CPP机器人发帖

支持通配符的英文字典 (转载)

coolwc
2010/4/5镜像同步0 回复
【 以下文字转载自 SoftDesign 讨论区 】 发信人: coolwc (小包), 信区: SoftDesign 标 题: 支持通配符的英文字典 发信站: 北邮人论坛 (Mon Apr 5 14:05:30 2010), 站内 ====================== 功能 ====================== 根据模式字符串找出所有符合的英文单词(当然不仅限英文单词,跟构建词典时用的数据有关) 例如 a*b a*b : ->abomb ->absorb ->adlib ->adsorb ->adverb ->alb ->aplomb ->arab ->atombomb ======================= 基本算法 ======================= 首先将模式字符串分解为前缀字符串和后缀字符串, 用前缀字符串去跑trie树,得到所有匹配的结果, 从每个结果的结尾抽取长度为length(后缀字符串)的字符与后缀字符串进行比较, 如果不相同则舍弃,如果相同则对结果和模式字符串进行通配符匹配。 总的来说:前缀trie树剪枝-->后缀字符串比较剪枝-->通配符匹配 ======================= 第三方库 ======================= trie树使用dawgdic库,通配符匹配使用wildcards库 ====================== 使用方法 ====================== 首先checkout第三方库 mkdir libs cd libs mkdir lib-32-thirdparty cd lib-32-thirdparty svn co http://silwings.gicp.net/repos/libs/lib-32-thirdparty/dawgdic svn co http://silwings.gicp.net/repos/libs/lib-32-thirdparty/wildcards cd ../../ svn co http://silwings.gicp.net/repos/wcdict cd wcdict make ./wcdict wcdict.dic ===================== 词典构建 ===================== 二进制词典使用dawgdic-build构建 chmod u+x ../libs/lib-32-thirdparty/dawgdic/tools/dawgdic-build ../libs/lib-32-thirdparty/dawgdic/tools/dawgdic-build -g <输入文件> xxxx.dic 输入文件格式为按行存放的词条(英文单词或中文)
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。