ICTCLAS 2分法查询词典库
来源:互联网 发布:矩阵的协方差怎么求 编辑:程序博客网 时间:2024/05/18 21:06
今天学习了二分法查询词典库,现将代码粘贴如下:
public int findInOriginalTable(int index, String res, int handle) { int result = -1; if (res != null && wts != null) { WordTable wt = wts.get(index); if (wt != null && wt.getCount() > 0) { int start = 0; int end = wt.getCount() - 1; int mid = (end + start) / 2; ArrayList<WordItem> wis = wt.getWords(); while (start <= end) { WordItem wi = wis.get(mid); int cmpValue = GFString.compareTo(wi.getWord(), res);//词典中的相对位置 if (cmpValue == 0 && (wi.getHandle() == handle || handle == -1)) {//1 if (handle == -1) { while (mid >= 0 && res.compareTo(wis.get(mid).getWord()) == 0) { mid--; } if (mid < 0 || res.compareTo(wis.get(mid).getWord()) != 0) mid++; } result = mid; return result; } else if (cmpValue < 0 || cmpValue == 0 && wi.getHandle() < handle && handle != -1)//2 start = mid + 1; else if (cmpValue > 0 || cmpValue == 0 && wi.getHandle() > handle && handle != -1)//3 end = mid - 1; mid = (start + end) / 2; } } } return result; }
在这里我想说的不是2分法的实现,我是想说方法中的几种情况如上图代码中1,2,3所在位置,我在思考除了这几种情况外是否还有其他的情况,显然是有的如:
(1) if (cmpValue < 0 || cmpValue == 0 && wi.getHandle() > handle && handle != -1)
(2)if (cmpValue > 0 || cmpValue == 0 && wi.getHandle() < handle && handle != -1)
那么现在讨论这种情况,解释下为什么这种情况没有在代码中出现:
自己臆想的这么认为当cmpValue<0时也就是词典中的词的顺序在所要查词的前面,而 wi.getHandle() > handle所隐含表示的是词典中的词的顺序在所要查词的后面,应该是相互矛盾。所以这种情况不存在 。在开始读到此处时,感觉从少了点什么。当看到如下图时才知道是这样的,自己又确定了不少,真心的希望各位大猿们给予建议.
如果想更好地了解此方面知识:http://www.cnblogs.com/zhenyulu/articles/668024.html
- ICTCLAS 2分法查询词典库
- 中科院ICTCLAS词典解析
- ICTCLAS 分词词典
- 中科院ICTCLAS词典解析程序 C# 代码
- 词典查询
- 词典查询
- 词典查询
- ICTCLAS分词系统研究(二)--词典结构
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- ICTCLAS分词系统研究(二)--词典结构
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- ICTCLAS
- ICTCLAS
- ICTClAS
- ICTCLAS
- C++函数库查询词典
- 程序员都喜欢说什么
- 移动支付的一些小事
- 后台页面全屏自适应(典型布局)
- uva 1351 String Compression(字符串区间dp)
- C#关于编码、解码相关问题
- ICTCLAS 2分法查询词典库
- < Android 4.3 源代码下载 > Android repo sync 源代码附常见问题解决方法
- Linux c进程管理—创建进程 system、execl、execlp、fork
- 在当前目录打开控制台程序(windows)
- ORACLE 新手学习笔记
- 门户网站是如何利用CDN加速的
- OPENCV2.3 + FFMPEG + Visual Studio 2008 的坑爹之旅
- SQL语句中的ACCESS和FILTER
- hdu 4628 Pieces 集合DP