小牛电子书 > 恐怖电子书 > 绝对掌控 >

第7章

绝对掌控-第7章

小说: 绝对掌控 字数: 每页3500字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




    国际互联网发展到今天,变成了体系庞杂内容浩繁的网状系统,这个系统上的信息节点规模数以十亿计,这些节点可能包括台式机、笔记本、服务器、大规模群组、智能手机、平板、智能导航终端、各类信息采集终端、信息发射终端等等等等。

    只要能够链接上互联网,能够与互联网进行数据交互的,都可以视为一个信息节点,比如遍布城市的各类监控探头,各类通讯基站,严格来说都属于节点之一。

    这些节点为互联网提供的数据类型也各种各样,有文字,有数据,有图表,有文档,有视频,有音频,有数据库;它们的表现形式各式各样,有通用格式,有专用格式;所有这些信息加在一起,共同组成了沉积在国际互联网中浩瀚的数据海洋。

    这个数据海洋是动态的,它时刻处在在运动和更新之中,就好像各种洋流和浪涛一样,永不停息。

    整个数据海洋分散在无数个信息节点之中,这些信息节点被各种通讯协议链接起来,让它们可以相互通讯。各种通讯协议中,有我们最熟悉的一种,就是url,也就是我们总会遇到的网站链接。

    如果将整个数据海洋比喻成我们的地球,那么每个数据节点就是一个房间,而节点内的数据信息就是我们人类,所有的信息节点组合起来,构成了地球上的无数个城市,无数个大厦,无数个房屋。

    各种各类的数据链接模式,就是承载人们出行的道路,而url不过是道路的一种,算是各个城市之间,各个主要的商业大厦之间互通的铁路和公路。它主要出现在公共服务器之间,就是说只要有了url,理论上来说它对所有数据访客都是开放的,任何人都可以抵达这个服务器,只不过它有没有门禁就是另外一回事了。

    既然有公共空间,那相对应的肯定有非公共空间,除了url,还有很多链接模式,这些链接模式里,信息节点就像是私人住宅或者军事禁区一样,它并不是开放给公众的,虽然它同样存在于数据海洋中,但你是无法随便访问的。

    当面对如此庞大浩繁的数据海洋时就存在一个问题了,世界这么大,我该如何找到目标,比如我想找感冒药相关的数据信息,我该怎么办?

    正是这种需求催生了搜索引擎,搜索引擎可以帮助你快速找到目标,它就像一个找路指南一样,你只要告诉它想去哪,这个目的地大概什么特征,它就会帮助你找到无数个可能合适的目的地,并且把对方的url提供给你。

    搜索引擎每天的访问量都是海量的,每一秒同时并发的搜索请求都是数以十万计的,在这么多请求面前,如果来一个请求它搜一遍互联网,这肯定是不现实的,不仅速度慢效率低,而且仅仅这类搜索请求就足让整个国际互联网陷入拥堵状态。

    为了解决这个问题,搜索引擎就有了它特有的工作模式,它先尽可能多的将数据海洋里的信息全部找出来,然后存储在自己的服务器群组中,一旦有了搜索请求,它只要在自己的服务器里进行检索就行了。

    而帮助搜索引擎完成找这个动作的就是爬虫。

    因为国际互联网中的信息节点都是相互关联的,是网状联系的,每个节点上都会有很多个url。所以爬虫的工作模式就是遍历,当它开始工作时,它会以一个信息节点为起点,然后挨个访寻与这个节点相连的所有节点,当下一层节点还有url链接时,它就不断访问下去,直到将所有url遍历一次才算完。

    因为整个互联网的网状结构,使它具备网状互通性,所以等爬虫将所有url遍历了,一般来说它就已经将整个国际互联网所有链接全部访问了一遍,这注定是一个比环球旅行更加令人叹为观止的行为。

    而莫回既然想弄这个股神1。0,他想要搜集海量数据,那么他要做的事情其实和搜索引擎要做的事情很像,只不过搜索引擎是所有信息都要搜集,而莫回只需要关注股票相关的信息就行了。

    这样的话,莫回的爬虫就必须在具备遍历能力的同时,还得具备筛选的能力。

    遍历的能力解释起来很简单,就是你不能走回头路和冤枉路,游历过的url就犯不着再走第二遍了。一条新的url被发现,首先需要判断这条url是否已经走过,其次需要判断这条url被安排在什么次序去走。一个是重复性问题,一个是最优化问题,这就需要独特的遍历算法来解决。

    而筛选功能就是通用爬虫和专用爬虫之间的主要区别,莫回的爬虫需要具备一定的识别能力,能够辨别某个url中的内容是否具备相关性,如果不具备那么就跳过,如果具备就将其中的内容复制回来待用。

    这个筛选功能同样需要一大堆的算法来解决,不仅如此,它还需要具备自然语言处理能力,就是说它得具备对语言文字的理解和解析的能力,它得能够识别哪些文字内容是与股票相关的,哪些是无用的。

    仅仅识别文字还是不够的,它还得能够识别其他格式的数据,比如它得能够识别图案,像是股票相关的各种k线图、柱状图之类的,爬虫必须能够将其与风景画或者自拍照区别开。

    除了图片,其他的像是视频、音频、各类数据库之类的,爬虫都需要一一辨别出来,确定是否属于相关内容。

    这里面将会有无数个技术难题需要解决,如果这个工作让莫回一个人来完成,几乎是不可想象的。

第十二章 把自己当驴使唤

    当然股神1。0仅仅有分析模块和收集模块是不够的,它还需要有一个数据处理模块,如果说分析模块是大脑,收集模块是手脚的话,那么处理模块就是消化系统。

    当海量的数据信息被从数据海洋中抽取出来,需要对这些信息进行加工处理,将它们处理成数据分析模块能够利用的数据模式。

    比如某个上市公司一个年度财报,里面的内容非常之多,从人事变更到企业战略,并购行为,利润营收等方面都会涉及到,而这些东西又是关键性信息。一个数万字外加各种图标的财报,其中各种关键信息必须能够被分析模块理解并进行加工,这就是处理模块的主要工作了。

    这个数据处理模块主要的功能部分其实是自然语言处理,程序本身是无法理解语言内涵的,它肯定无法理解“定向增发100万限售股”是什么意思,这时候就需要认为给这句话进行赋值,让它变成机器能够理解的数据信息。

    比如首先进行意义分割,将定向设定为一个意义单元,将增发设定为另外一个单元,以这种方式将整个句子按照意义单元分割开来,分别进行赋值。

    这一套加工手段里面就牵扯到人机交互的语言处理问题,需要人为的帮助计算机去理解和处理人类的语言,让机器能够看懂语法、语意单元,能够联系上下文,能够处理不同语境下同一个词组的不同含义。

    简单来说,让机器能够理解人类语言,这就是自然语言的主要目标,同时也是这个处理模块的主要功能。

    分析、收集、处理,这三大模块是股神1。0的主要功能结构,但是仅仅如此还是不够的,股神还需要很多的辅助模块。

    比如它需要有存储模块,所有的数据信息搜集回来,必须整理加工好,然后分类存储起来,它就像一个超级图书馆一样,必须有自己的分类和存储规则。如果没有这些,你只是简单的将它们堆放在一起,你就可以想象,当你需要从数千万本书籍当中,找出某一页特定内容时,那将会是怎样一个痛苦而又恐怖的过程。

    另外股神还需要相应的展示和交互模块,股神作为一个软件,它需要有自己的操作界面,需要能够将处理结果或者过程展现出来,需要能够接收指令,进行人机交互。

    这五个模块组合在一起,并且能够顺畅的相互配合了,股神系统才算基本成型,而中间肯定会有各式各类的问题不停冒出来,这都需要莫回逐个解决掉。在使用的过程中,肯定还涉及到不停的跟新和改良,所有这些都将是莫回的工作。

    按照莫回的估算,整个股神的体量不太可能低于100万行代码,如果想要让股神尽可能的完美而准确,那它的体量绝对会翻着跟头的往上翻。想要实现什么功能,你就必须付出相应的代价,如果你想要让股神的预测尽可能精确,那么不停的往里投入肯定是必不可少的。

    这还仅仅是股神本身,如果想要股神运作起来,那么莫回必然还将面临着带宽的问题,爬虫一旦跑起来,海量数据就会被传回,这些数据至少也是t级的。

    在计算机领域,数据大小的单位是1024进制的,一个字节为byte,1024字节为kb,1024k为m,1024m为g,1024g为t。

    比如我们手机的存储容量可能是4g,笔记本的存储容量可能是400g,而一台笔记本的400g大概相当于一千部电影。

    而股神通过爬虫搜集来的数据肯定是海量的,至少是t级别的,就是跑到p级别也不算是什么大事。比如1p的数据,它大概相当于250万部电影。人的一生也不过3万天,每天看十部电影,也足够看十辈子的了。

    在如此大量的数据面前,莫回必然面临一个带宽问题,很容易想象,出租屋里的小区宽带肯定是不好使的。

    现在超级本的运算能力已经获得验证了,应该是比较超常的,但是它的存储能力还未测试,如果存储能力不成的话,莫回还必须为这海量数据寻找一个存储空间。

    诸如此类的问题还有很多,如果莫回想要把股神完成,并且上线运行,那么他必须像是老黄牛一样,勤勤恳恳的往前走,把这些挡路石一个个的全部处理掉。

    本来这些事就是交给一个公司处理,一个成熟的团队来处理,都未必能够处理得很好,现在莫回需要一个人搞定,并且很可能必须不显山不漏水的一个人搞定,这里面的难度就可想而知了。

    想想未来的前路,莫回感觉好像是登珠峰一样,好高啊~~~

    好在莫回多少算是业内人士,这些事基本算得上是本职工作,无非就是项目经理、产品经理、主程、架构一肩挑了。难是难了点,工作量大是大了点,但是好歹还算有解决办法,只要沿着道路一步步走,总会有完成的那一天。

    工作量不小,不过也不是没有捷径可走,莫回点开网页,开始搜集他需要的开源软件。他去开源之家搜了一下,开源的爬虫就有有一百多个,里面估计会有合用的。

    五大模块他都简单的搜了一下,大多数都还有类似的可替代软件,现在他需要做的就是在里面找到最合适的哪一款,然后修改后进行组装。

    首先需要选择开发语言,各种语言都有自己的适用范围和优缺点,一旦选定了,那么五大模块都需要是同一个语言开发出来的才行,这样也方便组装和拓展开发。

    莫回想了想,他最终选定了c++,因为这种语言更加靠近底层和汇编,整体执行效率和速度比较好。

    莫回开始在网上寻找和筛选合用的开源软件,将那些基本符合要求的c++开发的软件全部下载下来,各自先归类存储起来。

    等莫回将合用的三十多个各类爬虫全部下载下来的时候夜已经深

返回目录 上一页 下一页 回到顶部 1 1

你可能喜欢的