本科毕设那会儿搞的是中文分词。最后象征性地用c++写了个最大正向匹配的算法,用MFC写了个图形界面交差了。
回忆起来,当时看过不少关于讨论词典该如何组织,如何存放的期刊论文。现在想来无非就是hash。什么首字什么次字,什么利用发音,五花八门呵呵。
其实说到底,现在的PC内存,就那么点量词典,直接全部hash进去不就完了么。至于hash函数怎么设计?使用ruby
hash=Hash.new(0)
hash[str].....................不就好了么。
窃以为那些讨论组织结构的文章,貌似也就是近几年的东西,可算是滥竽充数?或者是我想得太肤浅?
个人意见。 欢迎拍砖。
在实际的工程产品中,分词作为基础模块词典结构的优化对于最终产品的性能还是有影响的
[回复]
说得一点不错,那些文章无法灌水而已。国内期刊基本没必要看。
[回复]
确实肤浅啊,不光是个内存的问题。
譬如“中华英雄”的分词,如果最大匹配得hash'中', '中华', '中华英', '中华英雄',
但如果用更好得组织结构,知道‘中华‘后面没有后续为’英‘的词,能少很多hash次数。
hash词表大是有更多冲突的,而且算hashcode词越长需要时间越多的。
....
52nlp 最开始走精品路线的,现在咋撒文章都上。
[回复]
ダンゴ虫 回复:
19 12 月, 2012 at 12:13
可否认为是1L的展开?虽然我觉得举最大匹配什么的例子没有多少实际意义。不过个人觉得要考虑的问题不是去搞hash怎么样,hashcode怎么算比较快这种问题。而是把精力放到模型的构建上。诚如1L所说可能是留到最后优化的时候要考虑的问题。嘛多谢指点,初学者不才见笑了。
[回复]
52nlp 回复:
20 12 月, 2012 at 19:17
这里目前已经完全开放,只要文章不太离谱,都可以发出来的。
[回复]