求救高手vb.net的最大匹配法 代码怎么写
最大匹配法 亦称MM法;其基本思想是这样的,假设自动分词词典(或词库)中的最长词条是i个字,则取被处理材料当前字符串序列中的前i个字作为匹配字段,查找词典,若词典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来;如果在词典中找不到这样一个i字词,则匹配失败,匹配字段去掉最后一个字,剩下的字段重新进行匹配,如此进行下去,直到匹配成功,也就是完成一轮匹配,切分出一个词为止。 ...怎么用vb.net 写最大匹配法 的代码.
谢谢了
--------------------编程问答-------------------- 让你搞晕了,没有看明白。不过一般都是第归查询~~ --------------------编程问答-------------------- 还是举个例子把 --------------------编程问答-------------------- 路过帮顶, --------------------编程问答-------------------- 有点晕,帮顶算了 --------------------编程问答-------------------- 大致应该就是这样吧:
1.计算词典(或词库)中最长词条的字符数N:
2.当前字符串中取N个字符作为匹配字段;
3.判断匹配字段是否在词典(或词库)中。是,则重新执行2(取字符的位置后移);否,则继续执行下一步;
4.去掉匹配字段最后一个字符作为新的匹配字段,执行3;
--------------------编程问答-------------------- 建议楼主把需求说清楚点,看半天没看明白啊!!
只是匹配问题的话string 相关方法应该可以实现了。至于是否使用递归要看你的需求了。 --------------------编程问答-------------------- 大家请看这是1年多以前的帖子
--------------------编程问答--------------------
- -!,果然。LS真是心思缜密!佩服 --------------------编程问答-------------------- 挖到古董了。。。 --------------------编程问答-------------------- 我晕了,一年前的帖子
看楼主的意思好像只取一个单词就够了,而不是把处理材料全部切分
你可以把词库装在arraryList中,进行排序后可以进行二分法查找。
arraryList中得到最长单词的长度N
在处理材料中取前N个字符,在arraryList中进行递归查找,找不到去掉最后一个字符,继续查找,直到长度=0时返回空字符串,找到直接返回查找的字符串 --------------------编程问答-------------------- 1.计算词典(或词库)中最长词条的字符数N:
2.当前字符串中取N个字符作为匹配字段;
3.判断匹配字段是否在词典(或词库)中。是,则重新执行2(取字符的位置后移);否,则继续执行下一步;
4.去掉匹配字段最后一个字符作为新的匹配字段,执行3;
补充:.NET技术 , VB.NET