热心网友
知识处理是人工智能的核心,就相当于人的灵魂是大脑,大脑的载体是知识。其中“知识”包括了信息、逻辑和推理的方法,而“处理”包括了知识的获取、知识的加工、逻辑判断、推理、知识的输出等等,而最主要的知识获取是通过自然语言,所以研究自然语言成为知识处理的核心。 本人通过多年来的经验和实践,得出一套有关人工智能特别在知识处理方面的理论和方法,而这套理论和方法和其他人工智能的学术有所不同,其特点是抛开传统的复杂理论,根据实践和经验得出的一套可行的捷径,对知识处理方法进行全新的改造。 这里讨论的自然语言确切的来说是中文日常语言或者说是汉语,身为中国人当然是研究汉语,其实汉语比英语更能描绘世界万象,更有利于知识的获取。划分句子 知识处理的第一步首先是“分”,就是把一段信息划分成各分句,然后再把每句话划分出各词。把划分好的内容按序放到数组或其他数据结构容器中,就能方便地调用了,这个“分”的作用是为了考察句与句、词与词之间的逻辑关系,让计算机分析这段话,理解这段话。 分句的方法比较简单,因为人类语言已经用标点符号标记了各句之间的分界,让计算机扫描标点符号,就可以划分出各句,不过其中有一点要注意的是有两个标点连在一起的情况,例如结尾的双引号会和逗号或句号连在一起,这时候要求计算机不要把标点也当成字。信息容错处理 汉语中,通常认为计算机中一个汉字占了两个字符的空间,所以很多人会觉得让计算机划分出一个汉字或者一个词并不麻烦,其实不然,因为一句自然语言的成分除了汉字很可能还含有英文或者其他字符,例如:“ 是淘宝网的网址。”你不可能连网址也用中文来表达吧,所以问题就出现了。首先来看,若我们以四个字符的空间来从左到右扫描以上那句话,以便找出“网址”这个词,这里所谓的扫描是指利用循环语句以一个字符的步速读取内容,把逐段内容放进数组等容器里,当扫描到“。com”是没有问题的,再扫描下去,com加半个“的”字的时候,问题来了,由于“的”字是占了两个字符,而半个“的”字才算一个字符,加上com才算四个字符,那半个“的”字带来的麻烦多着呢,例如SQL语言识别不了这半个“的”字,某些数据库把这四个字装起来会报错,显示字符串时半个字符可能和空格的效果一样等等问题,所以先解决这方面的容错问题吧,以便让计算机下一步的工作顺顺利利。 其实解决这个容错的问题是和扫描的过程结合在一起的,算法如下:1。建立四个容器装扫描结果,例如可以用数组作为容器,分别用于装两个字符(一个汉字)、四个字符、六个字符、八个字符,再以四个相当容量的窗口同时进行扫描。2。先直接把对应扫描窗的内容装进各容器。3。当扫描到第七个字符是非汉字编码而第八个字符是汉字编码时,把第一到七个字符更新入八个字符的容器里面,舍弃第八个字符,然后从第八个字符开始继续扫描;当扫描到第五个字符是非汉字编码而第六个字符是汉字编码时,把第一到七个字符更新入八个字符的容器里面,把第一到五个字符更新入六个字符的容器里面,从第六个字符开始继续扫描;当扫描到第三个字符是非汉字编码而第四个字符是汉字编码时,把第一到七个字符更新入八个字符的容器里面,把第一到五个字符更新入六个字符的容器里面,把第一到三个字符更新入四个字符的容器里面,从第四个字符开始继续扫描;扫描到第一个字符是非汉字编码而第二个字符是汉字编码时如上类推。 在此最多只使用了八个字符的容器而没有建立装更多字符的容器是因为汉语中一个词通常不超过四个汉字,所以没有必要建立用于装更多字符的容器。而调用以上算法、调用以上的容器内容就能方便地实现某个词的查找了,也不会因为编码的问题而出错。例如要找一句话中“网站”一词,则可以先实现以上算法,然后调出四个字符容器的内容,和“网站”一词进行对比,若等值,就找到了,若不等则继续用以上算法扫描。 以上方法说白了就相当于把扫描结果加工放到容器里面形成“健康”的内容,而使其不会含有结尾半个汉字编码等“不健康”的内容,以便安全地使用SQL等查询语句不至于出错和排除对比字符串、显示字符串时带来差异性麻烦等其他问题。此问题或许有其他方法可以解决或者忽略,但本人以后的知识处理方法是基于以上容错处理为基础的,所以在此只提出以上的做法。。