虔诚求教算法问题1个

09-05-04 lovejavacool
如果有30万个文件(比如 1.txt , 2.xml , 3.jsp 等等)

(1)用怎样的算法来统计这些文件中共出现了多少个单词(如 abc , 123 等等)

(2)再就是 每个单词共出现了多少次 (如 abc共出现了多少次)

实在想不出太优的算法

所以斗胆提问各位牛人兄了。

不甚感谢!!!

banq
2009-05-04 20:33
应该贴到数学论坛去,你大概敲错门了,这里是搞软件的,不是搞算法的,软件讲究软件的伸缩性 扩展性,以及如何更灵活地实现功能,至于具体功能如何实现比如算法/管理/ERP/科学计算/图灵等等分支太多。每门都是一门博大精深的科学。

[该贴被admin于2009-05-04 20:36修改过]

gettouch
2009-05-05 09:15
用分布的方式?

ACoder
2009-05-05 09:19
这些单词是有穷的么??还是任意组合??

lovejavacool
2009-05-05 10:28
是有穷的

兄台给个提示

ACoder
2009-05-05 11:26
呵呵,我也没有想到什么太好的方法,我的想法是对于文件类型在匹配的时候进行过滤,二进制文件匹配文件名,文本文件则需要读入,匹配的方式进行可以参考正则表达式。然后对结果进行累加。

usejava
2009-05-05 16:04
采用树来保存单词,单词的每个字母是树的一层,树的节点保存出现次数。顺序读取文件,根据树结构累计节点上的计数。完成后,遍历树。

newthinker
2009-05-06 11:12
这种问题你直接参考分词算法就得了,别再提问了,lucene的分词算法关于英文还是比较简单的,中文你找找别的。。。。

猜你喜欢