小戴人工智能PurposeAI-20240709

这个工程是小戴人工智能,是开源项目

计算机如何处理文字,视频,音频

(本开源软件的授权是LGPL,没有担保)

(2024-07-09 更新)


      A,文字,词

        用离线阅读器从网上随机下载一些中文文本,有足够的量,10G以上,这里
            演示用的是很少的。

        取出每一句话,对每一个字以及其后的所有排列存入内存(可能是之后的2
           个字,3个字,或是某个数字,在这里中最大25个汉字),如果是重复
           的把记数加1(出现2次记数是2)。

        1个字的词算5分
        2个字的词应该比2个一个字的词分数大,既>5+5,算为15
        3个字的词应该比2个字的词加一个字的词大,既>15+5,算为25
        4个字的词应该比3个字的词加一个字的词大,既>25+5,又比2个字的词加
            2个字的词大,既>15+15,算为35
            (3个字的词加一个字的词的分数,应该与2个字的词加2个字的词
             的分数一样 )
        5个字的词依此类推是45

        更准确的公式如下:

        AI number(人工智能数字) :
          total(分数)  公式
         n1-- 5  ----   (starter) = 5
         n2--15  ----   n1+n1+5   =15
         n3--25  ----   n2+n1+5   =25
         n4--35  ----   n3+n1+5   =35
         n5--45  ----   n4+n1+5   =45

        把每一句话按照各种可能的词分解开来,重复的就是词,词有它的分数,
            按照总体分数最大的方案分解一句话。

        把所有的文本分解出来。

        这么多的文本分成了词,把所有的词提取出来构成了词库。

        到这个步骤时准确率约为70%

        制作词课件文件,把常用的词放进去,(特别是一些单个字的词,它有很小的分数,
            常常和其他的词连在一起,需要更高的优先级),每个词有它的分数,这个分数
            和自动生成的词一样,1个字的词算5分,2个字的词算15分... ,但是它的优先
            级比自动生成的词库高,按照词课件和自动生成的词库分解句子,把所有的词
            提取出来构成了第三个词库。

        这是和以前不同的地方,如果是建立普通的词库,你可以把全部的词放进去,
            但是为了更高的优先级,你仅仅把有需要的词放进去,比如'的','地','得',
            这样的词很短,分数很低,容易和其他的词连在一起.有一些词,包括'的','地','得',
            比如:'目的','地主',把它们也放进词课件.

        到这个步骤时准确率约为90%

        在新版本中, 看词是否重复分解一句话 ,
            同时用词课件分解一句话 , 选择总体分数最大的方案,
             这意味着两个步骤合并成一个步骤.

        源程序:

            Windows XP/7+MSYS+MINGW  或者 Ubuntu

            在MSYS下, 需要把主目录里的config.h里的AI_LINUX符号定义为0,即 #define AI_LINUX 0
            在Ubuntu下, 需要把主目录里的config.h里的AI_LINUX符号定义为1,即 #define AI_LINUX 1

            在MSYS下编译用build-msys.bat
            在Ubuntu下编译用build-ubuntu.bat

                  work_dir/download目录下是离线阅读器下载的文件

                  创建一个目录,比如 'mydir'
                  拷贝 'webfind66/app/.'目录下的所有文件到 'mydir',(包括 'app/download' )
                  如果缺省字符集是 gb18030 把html文件复制到 ./download/My-Program-Work-1/. ,
                  如果缺省字符集是utf-8 把html文件复制到 ./download/My-Program-Work-3/. ,

                  运行 './filelist-ubuntu.bat' 列出 'mydir/download' 里的所有文件 ,
                  运行 './app-charset-recgn-ini.exe 16' 进行初始化,'16' 是你要使用多少个CPU线程 ,
                  运行 './app-charset-recgn.bat' 进行识别,
                  运行 './app-charset-recgn-fin.exe' 把结果转化为文本文件,在文件 'app-charset-recgn.2.txt'中,
                  
                  它的算法是:首先,把htm文件的文本提取出来,当作utf-8字符集 , 转换为GB18030(因为词库是用GB18030编码的),
                      用词库分解句子,每个词有它的分数,把这些分数加起来存入变量1,在分词的基础上,用语法课件分解句子,
                      每个语法有它的分数,把这些分数加起来,再加上变量1的数值,把他保存在变量1中,
                      最后,把htm文件文本提取出来,当作gb18030字符集 , 用词库分解句子,
                      每个词有它的分数,把这些分数加起来存入变量2,在分词的基础上,用语法课件分解句子,
                      每个语法有它的分数,把这些分数加起来,再加上变量2的数值,把他保存在变量2中,
                      每个文件只计算前面的30句,把30句的分数累计起来,
                      如果变量1比变量2大(当作utf-8的分数高),它的字符集是utf-8,否则它的字符集是gb18030(当作GB18030的分数高)。

                  在目录webfind66(识别字符集的app)的目录的readme.txt文件中,说:
                                                          以下文件是从'work_dir'拷贝过来的:
                                                                     words04.txt ( 经过了人工修改 )
                                                                     words-cw02rpt04.txt ( 经过了人工修改 )
                                                                     grammar-cw03.sort.txt ( 经过了人工修改 )
                                                                     ...
                                                                     ...
                       所谓的“人工修改”就是把所有全部由数字组成的词/语法从词库词课件语法课件中删除,
                       把所有全部由英文字母组成的词/语法从词库词课件语法课件中删除,
                       把所有全部由乱码组成的词/语法从词库词课件语法课件中删除,
                       让计算机只比较汉字,而不是比较数字英文。

                  运行 a-step10-f3-msys.bat (从 work_dir拷贝过来)(列出 'mydir/download' 目录下所有文件)
                      (在 Ubuntu 运行 './a-step10-f3-ubuntu.bat')
                  运行程序 'webfind1d'(从 work_dir拷贝过来,包括 "cb_kuo_1.txt" and "cb_kuo_2.txt" and "fu.txt")('./a-step20.exe')
                      (获得文本, 擦除 html 标记),
                      然后拷贝 string1base000???.txt 到 work_dir,
                      (程序用AI算法计算文本的字符集,同时程序读取html文件的标记信息 <meta charset="xx"> ,
                       只有这两项相同, 都是 GB18030 或者 都是 utf-8 ,才会装入文本,
                       所以语料库是验证过的.)
                       (在这个版本里,保留了2100个文本文件,从 string1base000000.txt 到 string1base002099.txt ,
                        如果你不想用离线阅读器下载,可以直接从下一步开始,即从step30开始.
                        如果你需要 小一些的语料库,你可以保留 400/800 个文件,删除其他的. )
                  
                  进入 'work_dir' 目录,

                  (step30)(已经删除)
                  (step40)(已经删除)
                  (step50)(已经删除)
                  (step60)(已经删除)
                  
                  运行 webfind52 目录下的程序  ('./a-step60-2.exe')(词课件排序)
                  
                  (step70)(已经删除)
                  (step80)(已经删除)

                  运行 './a-step90-ini.exe 2100 16'
                              ('2100' 是要计算的文件数量, '16' 是使用多少个CPU线程)
                  运行 webfind53h 目录下的程序 ('./a-step90.exe')(根据词课件和是否重复分词)
                (词课件在words-cw01.txt 和 words-cw02.sort.txt 这两个文件中,
                                 如何制作词课件请看webfind50目录下的readme.txt文件,文本文件
                                 words-cw02.sort.utf8.txt是为了让用户在Ubuntu下浏览词课件,程序
                                 不会读 *.utf8.txt 文件)
                                 (如果你想进行网格计算,不要运行 './a-step90.exe', 而是运行 './a-step90.bat' ,
                                  怎样创建这个 .bat文件,在Ubuntu下, 请看 tools-6/readme.txt 文件
                                                     在MSYS下, 请看 tools-7/readme.txt 文件)
                  运行 webfind54  目录下的程序 ('./a-step100.exe')(把所有的词汇总,形成第三个词库)

                  (在这里的程序里,汉字是用GB18030编码的,在Windows里可以直接浏览,如果你用的
                   是Ubuntu,要浏览编辑某个文本文件时,需要把它转变为utf-8编码,可以使用tools-3
                   目录里的程序:  ./gb18030-to-utf8.exe myfile.txt ,将转为utf-8编码,
                   并拷贝到 myfile.utf8.txt ,如果你在Ubuntu里修改了某个文本文件,要提交到
                   程序时,可以使用tools-4目录里的程序:  ./utf8-to-gb18030.exe myfile.utf8.txt ,
                   将转为GB18030编码,并拷贝到 myfile.txt  .)

                        (2013-11- 9 第一个版本)
                        (2014- 3-21 版本增加了对词的重复次数的支持,改进了算法 )
                        (2015-12-21 版本修改了AI number,修改了文档,增加了工具软件)
                        (2018- 2- 1 版本增加了词课件 )


    B,文字,语法

        制作语法课件,告诉计算机各种各样的事物如何描述,包括日期,时间,温度,
            百分比,每个语法有他的分数,像AI number,两个字的语法分数是15,
            三个字的语法分数是25...语法课件的分数的优先级高于自动生成的语法.

        把一句话按照词分解开来,不仅保留总体分数最大的,也保留分数较小的
           (用字数比较小的词分解一句话),这样可能的分解数量,短的句子
            有30种可能,长的句子有20000种可能,选词分数大的句子,计算它们
            的语法分数,然后和词的分数相加,分数最大的就是结果.

        用这种方法把所有的文本分解开来。

        把词收集起来就是第四个词库,

        到这个步骤时准确率约为92%

        浏览分解的文本(words-gram-000000.txt), 如果有错误, 制作相关课件,
        如果有错误:"战,,地;;" ,制作词课件 "战地"(在文件 words-cw02.sort.txt 中,如何
            制作词课件请看webfind50目录下的readme.txt文件)
        如果有错误:"时,,时刻,,刻,," , 制作词课件 "时时刻刻"(在文件 words-cw02.sort.txt 中)
        如果有错误:"节,,目的;;" , 制作语法课件 "节目==的=="(在文件 grammar-cw03.txt 中)
        如果有错误:"将获;;得;;" , 制作语法课件 "将==获得=="(在文件 grammar-cw03.txt 中)
        再次运行 step90 到 step230 , 结果好很多.

        到这个步骤时准确率预计为 97%

        源程序:

            Windows XP/7+MSYS+MINGW 或者 Ubuntu

                语法课件在grammer-cw03.txt文件里

                运行webfind60里的程序('./a-step200.exe')(拷贝到目录 work_dir)
                        (把词课件语法课件里的词装入第三个词库)

                运行webfind60c-2里的程序('./a-step200-2.exe')(拷贝到目录 work_dir)
                     (语法课件排序)

                运行webfind60c-3里的程序 ('./a-step200-3.exe')(copy to work_dir)
                     (把子词课件排序,怎样制作子词课件请看 webfind60c-3/readme.txt 文件)
                     
                运行'./a-step210-ini.exe 2100 16'
                              ('2100' 是要计算的文件数量, '16' 是使用多少个CPU线程)

                运行webfind61h里的程序('./a-step210.exe')(拷贝到目录 work_dir)
                       把一句话按照词分解开来,不仅保留总体分数最大的,也保留分数较小的 ,
            计算它们的语法分数,然后和词的分数相加,选取分数最大的,
                        (如果你想进行网格计算,不要运行 './a-step210.exe', 而是运行 './a-step210.bat' ,
                          怎样创建这个 .bat文件,在Ubuntu下, 请看 tools-6/readme.txt 文件
                                               在MSYS下, 请看 tools-7/readme.txt 文件)
                        (结果在文件 words-gram-000000.txt中, 用"$1,,"开始的行是第一步结果,
                         用"$3,,"开始的行是第二步结果,
                         第二步结果是 最后结果.)

                运行webfind101里的程序('./a-step310.exe')(拷贝到目录 work_dir)
            (把词收集起来,形成第四个词库.)

                运行webfind101-2里的程序('./a-step310-2.exe')(拷贝到目录 work_dir)
                        (把词课件语法课件里的词装入第四个词库)

                目录 'webfind65' 是一个语句分解app , 如果你想分解语句
                        请阅读这个目录的 readme.txt 文件 .
                
                目录 'webfind66'是一个自动识别文本字符集的app,识别文本用的是GB18030还是utf-8,
                        对网站编辑可能有用,请阅读这个目录的 readme.txt 文件 .

                主目录的以下文件是分词字符集识别的程序的详细解释:
                        webfind65-readme.txt
                        webfind66-readme.txt
                        
                        (2014-3-21 版本 增加了对语法重复次数的支持,词重复次数的支持,改进了算法 )
                        (2018-2- 1 版本 增加了语法课件 )
                        (2019-1- 1 版本 增加了一个语法部分的新步骤,分解文本,靠语法库(在step210
                                       后提取出来),而不是看它是否在文本中重复)
                        (2019-9-25 版本 把所有的语法汇集在一起是一个语法库(在step200后),删除了
                                   在2019-1-1版本中增加的步骤,在以前,重复3次才是词/语法,现在
                                   重复2次就是词/语法,这样收集到的词/语法更多,准确率依然很高,
                                   2019-9-25版本是一个beta版本)
                        (2020-9-3  版本 改进了超级管道的数学公式,在超级管道中增加了调试代码,5个
                                   词的语法改为4个词的语法,改进了标点符号的处理)
                        (2021-7-22 版本: 源程序更漂亮,增加了网格计算功能,在以前,在 step210 ,参数 SPL1_OUT_NUM
                                   设置为 20,也就是取20个词分数最大的去计算他们的语法分数,准确率+1%,到 91%,现在把这
                                   个参数设为200,准确率+2%,到92%。)
                        (2022-01-12 版本 用二分法检索替换了排序二叉树 , 更小更快 ,
                                    放大了参数以便适应各种网页 , 增加了语句分解app .)
                        (2023-02-19 制做了更多的词课件语法课件,现在的PC普遍较快,12线程或16线程,
                                    我放大了参数以便有更好的结果,但是需要更多CPU时间,可以把utf-8字符集的网页
                                    加入到语料库中,以前只能加入GB18030字符集的网页,如果缺省字符集是GB18030
                                    把网页放到 work_dir/download/My-Program-Work-1 下面,如果缺省字符集是utf-8
                                    把网页放到 work_dir/download/My-Program-Work-3 下面,语料库的文件个数增加
                                    到了400,在 Ubuntu 22.04.1 Ubuntu 20.04.5 测试通过 .)
                        (2023-06-26 超级管道使用新的数学公式,快了很多,把参数放得很大仍然比以前快,
                                    把一个句子分成几段,使程序更小更快,制做了更多的词课件语法课件,
                                    取消了语法库,只使用语法课件,使用两级超级管道spl1和spl2,增加了
                                    自动识别文本字符集的app(在webfind66目录),用AI算法算出字符集,
                                    同时读取'<meta charset="xx">'信息,如果这两项相同才装入到语料库,
                                    所以语料库是验证过的.)
                        (2024-04-19 制做了更多的词课件语法课件,可以更好的处理中国人的姓名或称呼,
                                    更好的括号的处理,语料库的文件个数增加到2100个,删除了step50,
                                    把它合并到step90中,这是一个beta版本)
                        (2024-07-09 改掉了4个错误,有更好的算法,更好的数字字符串识别,
                                    更好的特殊字符处理 )


    C,图像

        * 识别图像需要超级计算机,依靠海量计算能力。

        * 需要建立视频数据库

        * 可以用简单的条件增加分数,物理位置相近,颜色相近,向同一个方
              向移动,纹理相近,可以用这些条件分出颜色块。

        * 把这些图形元素,颜色块,分成各种组合,选取物理位置相近的组合,
              或者选取相对独立运动的组合。

        * 有些组合形成了材质感 (见后面),比如照片,有些组合没有,比如
              多数绘画。

        * 增加一些条件,亮度的高低,其他物体的遮挡覆盖,放大缩小,
              旋转(3D),比列的变化。

        * 与视频数据库所有对象比较,分数最大的就是结果。

        * 建造视频数据库可以用计算机处理1000部电影或3000部电视剧,在不
              同的视频片段中寻找重复特性的物体(这个视频片段中某个颜色
              块的组合与另外一个视频片段中某个颜色块的组合有相似的外形
              或相似特性),重复的就是一个物体。所有的这些物体构成了视
              频数据库,用这个视频数据库重新分解视频,分解为不同的物体,
              再次构成视频数据库,估计是这样的建造过程。

        * 把多个物体组合在一起构成了场景,这是沙滩,这是森林,这是厨房,
              这是办公室,识别这些场景可以帮助识别物体。

        * 需要知识,一个1000年以前的人,看着现在的平板电视,他不知道这是什么,
              看着现在的iPhone,他不知道这是什么,机器人需要人类社会的常识.

        * 如何获得知识,一个过程分成几个部分,打个比方,一个人吃晚餐,先是走
              到椅子前,然后坐下,然后拿起刀叉,然后开始吃饭,每个过程有许多
              的特征,组合在一起又有许多的特征,根据需要提取有用的部分,这是
              知识如何获得的.

        * 总结,归纳,概括,一个物体有无穷多的特征,但是经过总结,归纳,概括,
              大体上是由有限的几个特征组合起来的,几种颜色,几种材质感,几种
              几何形状,由几部分组成的,尺寸,场景.


    D,音频

        * 需要建立音频数据库,存储声音对象。

        * 可以用1000部电影或3000部电视剧来建造。

        * 音频是波浪,不同的频率,估计频率相近的可以增加分数,或音量
              相近,或同时发生的音频可以增加分数。依靠这些条件分离声
              音对象。


    E,抽象概念

        *  "阳光总在风雨后",这里的"阳光"和"风雨"是抽象概念,看不见,摸不着,
            现实中的概念引申出去,表示抽象概念,理解这样的概念需要生活经历.
          

    *3d 电影

         在最开始的时候,计算机没有视频数据库,所以我们需要3d电影,就象人有2个
         眼睛,也象每一种有眼睛的动物,我们没有很多3d电影,而且他们不是完
         全3d的,他们是2.5d 或者2.75d,如果他们不够好,我们需要3d照相机拍摄
         大量3d视频。

    * 材质感

         每一种物体的表面都有特定的材质感 ,

         颜色,纹理,条纹,光滑程度,细腻度,粗糙程度,颗粒度,
         反光性,透明性,表面3D立体纹理,特性重复的,形成一个概念,即某种材质感 ,
         包括  金属 木头 槊料 布 纸张 玻璃 水,

    *课件

         需要为计算机制作很多的课件,就象一个母亲教她的孩子,这是什么,那是什么。

下载源程序:

https://download.csdn.net/download/daipozhi2008/89526209

github:

https://github.com/daipozhi/Purpose-AI

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值