对分词的一些看法,最近看到不少,不说不快

关于分词得研究由来已久,最近看到博客园里类似文章不断,于是想说说自己的看法。

    对于分词算法,首先我觉得是一个数学和文学的问题而非编程技术的问题,肯到很多同学不厌其烦的孜孜不倦的追求最完美的分词程序,其实我看大可不必,当然对于编程技术的完美追求是好的,不过应该是力气用错了地方。
    最先看到的是《天书般的ICTCLAS分词系统代码(一) 》,在此不对zhenyulu兄的Post做任何评价,不过在看到很多人发布自己的分词代码,感觉很多同学在用一个庞大的工程来锻炼自己写链表的能力,实在觉得浪费资源。分词是一个算法问题,这个也许是只有汉语才存在的问题(英文其实不需要分词,因为每个单词用空格隔开了)对于算法问题是首先需要有了优秀的算法,才能出现优秀程序,而对于中文分词,很多同学都用程序的眼光去看待其实是不对的,打个比方,冒泡法排序,算法已经确定的情况下你的程序再优化也不能超过其理论上限,这个是数学理论所决定好了的,数学是所有科学的基础,如果向基础理论挑战无疑是唐吉坷德挑战风车一般。程序无非是用计算机语言去诠释数学的理论,而面向搜索的中文分词设计 一文所发布的程序,个人认为精神可嘉,但行为不可取,因为从根本上的算法就不够先进,所以程序出来也不会很出色,如果大家想研究算法的话,还是先搞好算法本身,再去用程序证明会比较好一点。

   PS一下,说说自己对分词算法的一点看法,分次算法首先要对中文的文法有深入的研究才能提出最优化的算法,呵呵,所以想搞中文分词的话最好学好语文先:}。根据自己学习母语二十多年来的一点浅薄经验来看,中文整句的分词识别找到谓语是最重要的,因为谓语是构成文法的谓词结构主要组成部分,谓语一确定,主语宾语的词分出来就好识别的。

不是自己的主攻方向,不过说点自己的见解,如果有不同意见欢迎讨论

posted on 2007-03-19 10:51 亚历山大同志 阅读(3535) 评论(36)  编辑 收藏 所属分类: 随笔

评论

#1楼  2007-03-19 11:08 Richard [未注册用户]

支持,那些用了几周写出的所谓的分词系统能好到哪里?纯粹是闲得没事干。
已经有了好用的组件,自己在写还有什么用。还不如从写.net framework得了   回复  引用    

#2楼  2007-03-19 11:13 Jeffers Yuan      

不错,就象人机对弈的程序一样,适可而止。
因为写程序的人很少能够对业务那么精通的。   回复  引用  查看    

#3楼  2007-03-19 11:15 Kinbor [未注册用户]

貌似北大,有招本科中文系的计算机硕士研究生的。
貌似分词还是他们做的比较牛。   回复  引用    

#4楼  2007-03-19 11:24 Jeffrey Zhao      

@Kinbor
那应该不是看重他的中文系的能力,呵呵。   回复  引用  查看    

#5楼  2007-03-19 11:41 land      

这个配色不是很方便阅读,希望能改进。   回复  引用  查看    

#6楼 [楼主] 2007-03-19 11:48 亚历山大同志      

@land
据说如果所有网页都用黑色背景可以节约好多亿千瓦的能源,所以换了个黑色背景的SKin

  回复  引用  查看    

#7楼  2007-03-19 12:01 JesseZhao      

成熟的免费分词组件有码?
  回复  引用  查看    

#8楼  2007-03-19 12:05 JesseZhao      

能不能给我介绍一个
  回复  引用  查看    

#9楼  2007-03-19 13:01 Muse      

"中文整句的分词识别找到谓语是最重要的,因为谓语是构成文法的谓词结构主要组成部分,谓语一确定,主语宾语的词分出来就好识别的。"

问题在于想找出这个“谓语”难度之大,不是我们作一般程序可想象的。

个人比较希望有一个能够实现简单的分词工具就可以了,按照中文语法的复杂程度,想准确分词几乎就是不可能完成的任务,要知道,给你一句话,就算是我们人自己有的时候也不能准确地判定到底是什么意思,何况计算机这么“笨”呢。
  回复  引用  查看    

#10楼  2007-03-19 13:16 kwklover      

对你的文章不做评论。
引用搜索界的前辈车东的话:现在的中文分词已经不仅仅是准确性的问题,而是应用的问题(非原话),我是相信中文分词的应用价值的。即使不是非常准确。中文分词中文输入法,中文文本纠错,自动翻译,还有一些互联网的应用,比如聚类,tag抽取等等都有很重要的价值。

目前的中文分词理论上并没有突破,那是理论界的问题。我是关注应用的。应用层面更加关注适用,而非最准确。举个例子:
北京市是中国的首府。
北京市,按照你研究多年的语言学,你认为分解成"北京市",还是分解成“北京” + “市”准确呢?从搜索的角度来说。我更顷向与后者,因为北京和北京市是同一个含义,那么用户搜索"北京",那么分解成前者就无法搜索到。而后者两种情况都坚固了。但换一种应用场合,比如做中文纠错,似乎提示用户输入“北京市”更好些。
你认为呢?所以我认为没有最准确的中文,只有最适用的中文分词。

“如果向基础理论挑战无疑是唐吉坷德挑战风车一般”
非常赞同,牛顿的力学(就是高中(初中)学的哪个)放到高速的电子流下就失效了。难不成就不能用牛顿力学解释生活的常见问题和常见的应用吗?

做个回复没有别的意思。只是觉得你对中文应该有些研究,不过对中文的应用似乎了解不多,所以我感觉你的观点比较极端(个人意见,欢迎指正)。

总觉得cnblogs上总有那么一些人 人云亦云 跟风说瞎话的。不是说楼主您,我还是很欢迎听到不同的意见的。   回复  引用  查看    

#11楼  2007-03-19 13:28 Cat Chen      

@kwklover
对于Google这样大量索引的引擎来说,它已经能够识别同义词和近义词,“北京”和“北京市”同义,所以只要分词了就能交叉匹配。   回复  引用  查看    

#12楼  2007-03-19 13:33 kwklover      

@Muse
非常认同

李静静悄悄的走了过来。
单从这个句子,你认为下面哪个准确:
1,李静静/悄悄的/走/了/过/来。
2,李静/静悄悄/的/走/了/过/来。
估计只有写这个句子的人才能理解了。但人可以从上下文找到一个准确理解。让计算机也可以分析上下文。估计可以拿诺贝尔奖了。   回复  引用  查看    

#13楼 [楼主] 2007-03-19 13:36 亚历山大同志      

@kwklover
我对中文分词算法没有研究,希望你在回复的时候能够看清原文,我只是出于计算机开发的一般性原理:不要重复发明轮子的基础上来探讨这个问题的。我并没有对中文分词的本身意义进行探讨,至于中文分词的重要性不用谁来重复,但是我是想让大家思考中文分词的研究的根本是算法,而不是一股脑的都去写一大堆毫无疑义的分词组件出来,分词的应用不用你说google已经在自己的搜索中大量的应用了,而且比你所想象的更加全面和彻底,但是你如果问Google的工程师是探讨如何运用分词重要还是提高分词算法的适用度重要,答案肯定是后者,因为从自我发展的意义上看来,只有后者才能是不可替代性劳动,才能最终提高你自己的水平。还有我觉得对于算法的认识你应该有所提高,计算机的算法不是只有精确性一个目标,因为如果要说精确,计算机永远是不精确的(特别是对小数而言),在很多年前计算机算法的主流就是趋向于模糊计算,遗传算法,神经网络算法等都是这些方面的成果。
如果想研究算法建议可以去玩玩AI-code(robo code也行,不过要用java),如果喜欢做应用,不妨试试北大那个分词的组件直接构建一些应用出来,重复自己想当然的去写分词组件的工作除了锻炼你写链表的熟练度和熟悉各种数据结构之外对你没什么好处。
因为两点:其一:如果你强调应用,自己从头来写显然是不科学的。其二,如果你想学习分词的技术,没有算法理论的支持无疑于构建空中楼阁。
其实不是我偏激,是你偏激了
  回复  引用  查看    

#14楼  2007-03-19 14:04 Michael.Yang      

个人比较赞同亚历山大同志滴看法 :)

汗,好长滴名字 ;)   回复  引用  查看    

#15楼  2007-03-19 14:34 小陆      

分词算法看不懂,分页算法的文章倒是看过无数,有存储过程版的,vb版的,C#版的,oo的,不oo的,oracle的,sqlserver的,其实都是大同小异的几种算法。
任何工程实践上的突破都要有理论上的突破作为支撑。要计算1到100的和,可以采取循环累加的算法,在这个算法得到改进之前,任何技巧都是只能带来一点点的提高。一旦理论产生突破,一个人知道了(1+100)*50,这个理论带来的提升就是巨大的。
尽管这篇文章看似偏激了一点,也是希望这里的朋友们能把精力更多的放在算法、构架、业务上,这就是软件理论产生突破的点。好的算法能够实现原本不能实现的功能,节约大量的运算时间。合理的构架可以增强软件的适应性,改善质量,减少成本。在业务知识上的突破往往可以使困境中的项目见到光明,使开发走上正确的道路。
如果真的要我去研究什么样的分页算法能快n个毫秒,少传输m个字节,除非是工程项目真的到了这个地步,否则我情愿从电脑桌前站起来活动活动,出去晒晒太阳亲近一下大自然。   回复  引用  查看    

#16楼  2007-03-19 16:29 Dflying Chen      

@亚历山大同志
据说如果所有网页都用黑色背景可以节约好多亿千瓦的能源,所以换了个黑色背景的SKin
-------------
由此伤了读者的眼睛,要浪费多少治眼睛的钱啊,呵呵,开个玩笑   回复  引用  查看    

#17楼  2007-03-19 17:51 我要购书网51goushu.com [未注册用户]

我也比较认同   回复  引用    

#18楼  2007-03-19 18:14 大吃一碗      

@亚历山大同志


对分词算法,关键要看作什么用,若是仅仅需要简单的搜索?人家的算法又何尝不可。
PS:开个玩笑
据说不用电脑,能够节约更多的能源,干脆咱们种田去,呵呵。。。
  回复  引用  查看    

#19楼  2007-03-19 18:55 空明流转      

我记得,IBM某位做语言识别的大牛说,如果从他的团队里每开除一个语言学家,他的程序识别率就能上升几个百分点……这是不是也可以代表另外一种比较极端的观点哈。

亚同志的出发点是好的。这就有点像当年陈景润同志研究出来1+2以后,有学问的,没学问的都去研究1+1。连初等数论都不懂,何谈猜想?无异于痴人说梦而已。

我觉得如果说对中科院的ICTCLAS算法做Refactory的话,还能算上一件挺不错的事情。如果说,算法要实用话,还是要清晰一点。   回复  引用  查看    

#20楼  2007-03-19 19:35 OK [未注册用户]

楼主就是愤青一个
人家研究分词,能开阔眼界,增加知识,难道研究什么分词算法,什么分词应用只能用于分词? 对其他应用和算法一点价值都没有了? 按照你这么说 谁都不用去研究算法了,就等那些实验室去研究就可以了是吧?MD5加密 是现成的加密算法吧,为什么还有那么多人研究它的实现,它的解密?

不要把这种破帖子挂在首页去误人子弟,好多菜鸟都被你这种半吊子搞的晕头转向。

最后,人家把力气用到什么地方,研究什么,和你有什么关系?要你说用错了地方?你觉得没用的东西,难道对别人就没用?

最看不起你这中 半斤八两的   回复  引用    

#21楼 [楼主] 2007-03-19 20:45 亚历山大同志      

@OK
貌似你比较像愤青的样子,咔咔   回复  引用  查看    

#22楼  2007-03-19 21:57 teana [未注册用户]

貌似有股火药味。。   回复  引用    

#23楼  2007-03-19 21:57 teana [未注册用户]

post里   回复  引用    

#24楼  2007-03-19 23:32 Kain [未注册用户]

个人认为研究无可厚非,但是啥东西都有个度。
人家Intel的cpu够NB了吧,为啥中国人还要去弄个龙心呢?
你去做去研究去使用才能把握好一个东西。实践出真知嘛。
你用阿拉伯数字去研究一个分词,当然也可以用2进制代码去这个这个。
  回复  引用    

#25楼  2007-03-20 00:13 YAO.NET℡      

路过,不同角度的理解。

  回复  引用  查看    

#26楼  2007-03-20 01:47 neoragex2002      

agree with OK. lz出言要谨慎. 多一份研究的耐心,多一分学问方面的建树,再来逞口舌之快.   回复  引用  查看    

#27楼  2007-03-20 08:05 Phinecos(洞庭散人)      

怎么吵得这么凶?   回复  引用  查看    

#28楼  2007-03-20 08:23 Muse      

其实还有一个问题,写得好的分词组件,又有几个人肯把自己的源码公布出来,或者免费提供呢?不自己写怎么办?   回复  引用  查看    

#29楼 [楼主] 2007-03-20 10:16 亚历山大同志      

@Muse
不需要看源代码,如果你找到比较好的关于分词理论的文献可以将其转换成代码,也算是为大众服务了,对于分词组件来说,理论是第一位的   回复  引用  查看    

#30楼  2007-03-20 10:37 路人 [未注册用户]

我们做其它事情何尝不也是在浪费时间?   回复  引用    

#31楼  2007-03-20 11:45 吕震宇      

@学习和开发分词系统的朋友们
走自己的路,让别人说去吧...   回复  引用  查看    

#32楼  2007-03-20 13:57 云舒 [未注册用户]

怎么感觉好多人都没看懂LZ在说什么?   回复  引用    

#33楼  2007-03-20 14:01 喝酒的猫      

@吕震宇
同意!
但是可千万别走别人的路,自己还没有什么想法!   回复  引用  查看    

#34楼  2007-03-21 15:27 A.Z [未注册用户]

从程序移植(to .net)的角度是成功的,值得肯定。但是不值得太多人花很多精力在分词上面,毕竟它所依赖的理论基础远比我们想象的要复杂的多。很多时候往往是一个理论决定了结果。程序是理论的数据结构模型化。   回复  引用    

#35楼  2007-09-22 14:42 zz [未注册用户]

向前辈们,学习 呵呵   回复  引用    

#36楼  2008-02-01 08:47 啊 [未注册用户]

图灵奖吧   回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 




导航

公告

鉴于很多TX投诉黑色背景杀伤眼球,遂换个容易阅读的
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

与我联系

搜索

 

常用链接

留言簿(28)

我参加的小组

我的标签

随笔分类(82)

随笔档案(82)

相册

朋友的Blog

同事的Blog

最新随笔

积分与排名

最新评论

  • 1. re: 鬼吹灯-漫谈大型网站的架构
  • 图是好画,开发起来并不容易;
  • --三千
  • 2. re: Why .NET Sucks?
  • @亚历山大同志 我认为只要能快速开发出客户需要的服务或应用,快速的为客户实现价值,.net也没什么问题啊。 至于钱钱没有做java的拿的多,一般情况而言两种原因:一、java本身开发难度大、实现繁琐,...
  • --网际浪人
  • 3. re: Why .NET Sucks?
  • --引用-------------------------------------------------- 问天: @Kai.Ma 我找不到开源并且成熟的pop3/imap client,我要求不高...
  • --Ivony...
  • 4. re: Why .NET Sucks?
  • @Kai.Ma我找不到开源并且成熟的pop3/imap client,我要求不高,gb2312/utf 8中文不乱码,能解outlook发的附件就成。这么些年了,.net东西慢慢是有了,但数量、质量无...
  • --问天
  • 5. re: Why .NET Sucks?
  • @问天
    .Net下开源且成熟的东西找找还是蛮多的。:)
  • --Kai.Ma

阅读排行榜

评论排行榜

60天内阅读排行