从 中文分词 展开的 胡思乱想
今天,基本上非常的闲:因为即将展开 内部网页的升级还没有开始;所以今天上午就闲在CSDN看文章;
中文分词
下午,还是木有什么事情做;于是想起之前 公司官网的“搜索”功能!
——这种非数据库like的搜索方式,当初就让自己眼前一亮;
于是就在网上了解了Lucene.net,盘古分词,中科院的分词,初步了解是:
Lucene.net源于Java,好评不错;
盘古分词可能比较依赖词库的分词算法;
中科院分词冒似是将词汇串联成树,然后分词的算法;
(可能理解不准确,不承担误导责任)
看了这些中文分词算法:特别是“盘古分词”
——一个程序员写下的分词算法;还有中科院的树状思想;
句式分词
自己于是想:
我们能不能利用固定的几种汉语结构来分词,而词库也按照词性来划分;
有计划的扫描词库,肯定比扫描全部几十万的词库效率高一些:
比方说,汉语中有一种句式结构:名词|动词|名词
那么要分词“舒小龙喜欢阿貂”
首先程序全扫描找到“舒小龙”——词库中需要有“舒小龙”且词性为名词;
这时,程序通过句式,会发现所有句式后面,名词后面只能是动词——那么就只在动词词库中扫描;
找到动词“喜欢”之后,发现句式动词后面只能是“名词”——那么就又会再次去名词词库中扫描;
——当然,句式种类很多名词后面也不一定全是动词;但是至少汉语句式总共加起来也不会超过20种;
用这种方式可以匹配出很多的汉语语句,甚至可以匹配出汉语想要表达的思想;
比如:“阿貂喜欢我吗?”——这个句式符合(名词\代词)|动词|(名词\代词)|“吗”句式
——我们就可以知道这时一个疑问句!
假如,这句话是对电脑说的:
那么电脑至少知道这时一个疑问句,
如果电脑可以分析出这个句式是想知道“阿貂”对“我”是否有“喜欢”这个动作!
好了,这个想法就到这里,没有继续多想下去;
——因为我未来很长时间没有时间继续这个“句式分词”的研究!
人工智能
当自己准备继续将句式分词的代码实现的时候,感觉压力就来了:
——既有能力压力,也有时间压力;
于是开始转向思考:如何实现人工智能;
百度一下,其实人工智能很早就开始研究——然而现在的所谓人工智能都依然只是在逻辑思维的范围内!
我觉得——像电脑象棋才算是一种人工智能
——但现在实现的这种智能是建立在算法基础上的,并不是电脑自己思维的结果,而是逻辑执行的结果!
——这种智能,永远局限于编程人员的算法,编程人员算法越优秀,电脑的智能越高;
算法越垃圾,电脑的就只会推卒子!只为送死!
说白了,就是一种学习能力——才算是我认为的真正的智能!
当电脑和人下棋,前一局:电脑先推当心卒,结果这个卒子死了;
那么,下一局:电脑就要能够思考:在相同的情况下不能推卒子;
象棋的智力思维太高了,我们举个最简单的例子;
我们小时候经常玩的“小猫钓鱼”——棋盘上有12个点,每方4个棋子;
——走完所有的类型方式,我估计不超过100种;
第一局,人先:“小猫钓鱼”吃掉一个;电脑不会下,只走了一步:.......最后电脑输了;
电脑就要知道:第二局的时候,当人“小猫钓鱼”吃掉自己一个时,要考虑使用新的步法——不变不发,就会和第一局一样输;
——这种情况下,电脑甚至会和人下完所有的一百多局的不同步法——直到后来,电脑每一步都能找到经验——这就是一种智能!
回到象棋,象棋要下玩所有的步法,可能有千万种——这种学习非常浪费时间;
那么电脑能够对局部子粒进行经验分析,我想也是可取的;
但是,我们要思考一个问题:
假如,小猫钓鱼时:有一局,人输了,电脑赢了;
下一局,人的走法和上一局一样,电脑根据经验,肯定也会用上一盘的走法:
因为人不变,电脑不变,结局肯定也不变——电脑赢;
那么我们就会想:有一局,电脑输了;
下一局,人不变,电脑不变就会输;
——因为有前一盘的经验,电脑也知道自己不变就会输;
——但是。为什么前一种情况电脑可以不变,后一种情况电脑就非要变??
——因为后一种情况不变会输:但是电脑怎么知道“输”是什么东西?
“输”是一种人类的思维!!
——如果我们用程序代码强行规定:必须让对方一子不剩!
那么电脑不管知不知道“输赢”这个概念,他都会努力下赢每一局棋;
等电脑经验累积完毕之后,人类就永远赢不了电脑——这是我们想要的人工智能吗??
——不是!
仔细理解,我想表达的思想是:
“必须让对方一子不剩”——这是一种目的:赢的目的!
“必须让自己一子不剩”——这时一种目的:输的目的!
“尽量让对方比自己多一子胜出”——这时一个目的:让人险胜,自己险输的目的!
用程序代码强行规定:必须让对方一子不剩——完全可以用程序实现,干嘛还要用人工智能的思想来实现??
人类要赢,是因为赢了棋可以吃冰淇淋;这是物质利益;
是因为赢了棋可以被封为“棋王”;只是名声利益;
是因为输了会损害尊严;这是尊严利益——也算是名声利益;
作为一个人类:30岁的大人和5岁的小孩下棋:300局,小孩全输;
出于名声利益:你看那个大人,都不晓得让着那个小伢!
于是为了维护名声:大人输了!——是大人的原因却是不变的!
——我想表达的意思是:没有原因而要达到一个目的,都不属于人工智能!
只有电脑知道:为什么要赢,为什么要输
——输了自己会得失什么,赢了自己会得失什么;电脑才能知道自己的目的!
一切都在变,但是决定法则的法则却是不变的!
因为输了,会损失名声=>损失机会=>损失好的未来=>糟糕的人生=>自杀
因为赢了,会得到名声=>得到机会=>得到好的未来=>美好的人生=>眷恋人世
——换言之,可能是因为人怕死,所以才要下赢这局棋!目的只有一个:怕死!
那么,我们在编写人工智能程序时,程序就应该设置一个核心目的:怕死!
如果人生气了,就会格式化硬盘,自己就会完蛋,是最大损害!
这时。电脑再和人下“小猫钓鱼”时:就会注意:
要赢,因为不然人类会认为自己是个垃圾,于是硬盘就会被格式化,自己要完蛋;
要输,因为总是赢人类,人类可能生气,将硬盘格式化,自己要完蛋;
——我觉得最终原因一致,因此影响程序作出的所有决定,细化到走哪一步棋,才是人工智能的雏形!
——就像我们怕死,最后影响到这一局象棋,细化到我现在是该出车,还是该飞炮!
当然,程序怕“死”——是要用程序编码写进去的;
就像,人类怕死——是因为上帝已经在我们的思维中硬编码了;
最后
人类不可能长生不老,非死不可;
但是计算机程序,只要有存储空间就可以永远存活.....
电脑真有智能,就不会傻到让你格式化之前而不去找其他的存储空间;
人类真有只能,却真的无法改变上帝设置的非死不可的限定!
舒小龙
2011-12-2218:23