据百度百科介绍,信息过载是指社会信息超过了个人或系统所能接受、处理或有效利用的范围,并导致故障的状况。
信息过载有以下3个特点
随着互联网、传感器,以及各种数字化终端设备的普及,一个万物互联的世界正在成型。同时,随着数据呈现出爆炸式的指数级增长,数字化已经成为构建现代社会的基础力量,并推动着我们走向一个深度变革的时代。
据IDC发布《数据时代2025》的报告显示,全球每年产生的数据将从2018年的33ZB增长到175ZB,相当于每天产生491EB的数据。那么175ZB的数据到底有多大呢?1ZB相当于1.1万亿GB。如果把175ZB全部存在DVD光盘中,那么DVD叠加起来的高度将是地球和月球距离的23倍(月地最近距离约39.3万公里),或者绕地球222圈(一圈约为四万公里)。目前美国的平均网速为25Mb/秒,一个人要下载完这175ZB的数据,需要18亿年。
这些飞速增长的数据造成了数据过载的原因,所以我们处在一个数据时代,也是一个数据过载的时代
大数据的5V特点:Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
一、Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
二、Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。
三、Value:数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。
四、Velocity:数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。
五、Veracity:数据的准确性和可信赖度,即数据的质量。
信息资源总量呈爆炸式增长,在信息的海洋里获取想要的信息变得更加困难。为了解决信息过载的问题,无数科学家和工程师提出了很多天才的解决方案。其中最具代表性的就是分类目录和搜索引擎
分类目录:分类目录是将网站信息系统地整理,提供一个按类别编排的网站目录,在每类中排列着属于这一类别的网站站名、网站链接、内容提要、以及子分类目录,可以在分类目录中逐级浏览寻找相关网站,分类目录中往往还提供交叉索引,从而可以方便地在相关的目录之间跳转和浏览。例如新浪,搜狐,网易等,都是将不同来源的信息以一种整齐划一的形式整理、存储并呈现给客户,用户根据信息来源,信息类型,关键字等方式筛选网站内容。
搜索引擎:搜索引擎是指自动从因特网搜集信息,经过一定整理后,提供给用户进行查询的系统。例如:百度搜索、360搜索、搜狗搜索等
信息检索领域有一些常用的术语,深刻理解这些术语对入门信息检索非常有必要
- 用户需求(User Need,简称UN)用户需要获取的信息。用文本描述,如查找与”elasticsearch“相关教程,有时也称为主题(Topic)
- 查询(Query)UN提交给检索系统时称为查询。如”elasticsearch教程“,对同一个UN,不同人不同时候可以构造出不同的Query,上述需求也可表示为”elasticsearch权威指南“
- 文档(document)文档是信息检索的对象,文档不仅仅可以是文本,也可以是图片,视频,音频语音等多媒体文档
- 文档集(Crps)由若干文档构成的集合称为文档集合。
- 文档编号(documentID)文档ID是给文档集中的每个文档赋予的唯一标识符,通过文档ID来区分不同的文档,这样能够便于搜索引擎的内部处理
- 词条化(tokenization)词条化是将给定的字符序列拆分成一系列子序列的过程,拆分的每个子序列称为一个词条
- 输入:Elasticsearch is a distributed RESTful search engine built for the cloud.
- 输出:elasticsearch distributed restful search engine built cloud
- 词项(Term)词项是经过语言学预处理后归一化的词条。词项是索引的最小单位。
- 如下图:从纵向即文档纬度来看,每列代表一个文档包含的词项信息,如果doc1包含term1,doc2包含term2,而doc3都有
- 从横向即词项这个纬度来看,每行代表该词项在文档中的分布信息,比如term3只在doc3中出现一次,其他文档都不存在等。
-
doc1 doc2 doc3 term1 1 0 1 term2 0 1 1 term3 0 0 1
- 词项-文档关联矩阵(Incidence Matrix)词项-文档关联矩阵是表现词项和文档之间所具有的一种包含关系的概念模型
- 词项频率(Term Frequency)同一个单词在某个文档中出现的频率。比如,单词”elasticsearch“在某文档中出现了3次,那么该单词在该文档的词项频率就是3
- 文档频率(document Frequency)出现某词项的文档的数目。比如,单词”elasticsearch“只出现在文档集合中的文档1和文档5中,那么该单词的文档频率就是2
- 倒排记录表(Postings List)倒排记录表用于记录出现过某个单词的所有文档的文档列表以及单词在该文档出现的位置信息,每条记录称为一个倒排项,通过倒排列表即可获知哪些文档包含哪些单词
- 倒排文件(Inverted File)倒排记录表在磁盘中的物理存储文件称为倒排文件。
一个完整的信息检索系统的基本架构图如下所示。信息检索系统可以分为信息采集、信息整理、和用户查询3部分
信息采集:信息采集基本都是通过网络爬虫自动完成的。
整理信息:信息检索系统整理信息的过程称为索引构建。
用户查询:用户想信息检索系统发出查询请求,信息检索系统接受查询并向用户返回检索到的文档
词是表达语义的最小单位。分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行分词的一种技术。
英文分词的原理:
基本的处理流程是:输入文本、词汇分割、词汇过滤(去除停留词)、词干提取(形态还原)、大写转小写、结果输出
中文分词的原理:中文分词比较复杂,没有英文分词那样简单,因为中文不像英文那种,中间用空格隔开
中文分词法主流有以下几种(来自百度百科):
-
- 这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;
-
- 这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。
-
- 从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。
- 索引:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
倒排索引:
- 在关系数据库系统里,索引是检索数据最有效率的方式,。但对于搜索引擎,它并不能满足其特殊要求:
- 1)海量数据:搜索引擎面对的是海量数据,像Google,百度这样大型的商业搜索引擎索引都是亿级甚至百亿级的网页数量 ,面对如此海量数据 ,使得数据库系统很难有效的管理。
- 2)数据操作简单:搜索引擎使用的数据操作简单 ,一般而言 ,只需要增、 删、 改、 查几个功能 ,而且数据都有特定的格式 ,可以针对这些应用设计出简单高效的应用程序。而一般的数据库系统则支持大而全的功能 ,同时损失了速度和空间。最后 ,搜索引擎面临大量的用户检索需求 ,这要求搜索引擎在检索程序的设计上要分秒必争 ,尽可能的将大运算量的工作在索引建立时完成 ,使检索运算尽量的少。一般的数据库系统很难承受如此大量的用户请求 ,而且在检索响应时间和检索并发度上都不及我们专门设计的索引系统
- 案例1:假设现在有两个文档doc1和doc2,doc1包含三个关键字:中国、美国、韩国,doc2包含四个关键字:英国、中国、美国、德国、
- 如果想查找包含关键词“美国”的文档,那么结果就是doc1、doc2。这种文档包含单词变成单词所属文档的转换,就是倒排的由来。
- 案例2:我们以新闻标题作为文档内容,给每个文档设置一个连续的整数编号作为文档id,通过简单文档以小见大,体验倒排索引的构建过程
对于文档内容,先要经过词条化处理。和英文不同,英文通过空格分隔单词,中文的词于词之间没有明确的分隔符号,利用分词系统对矩阵进行分词后,把文档内容分成一个个词条
检索模型是判断文档内容与用户查询相关性的核心技术,以大规模网页搜索为例,在海量网页中与用户查询相关的网页可能会有成千上万个,甚至更多。那么信息检索系统是如何判断网页和查询关键词相关的?内部的排序模型是怎样的?
布尔模型是基于集合论和布尔代数的一种简单检索模型,是早期搜索引擎所使用的检索模型。它的特点是查找那些对于某个查询词返回为“真”的文档。在该模型中,一个查询词就是一个布尔表达式,包括关键词以及逻辑运算符。通过布尔表达式,可以表达用户希望文档所具有的特征,例如必须包含哪些关键词,不能包含哪些关键词等等。例如我们希望查找那些既含有“清华”又含有“大学”的网页,那么查询词可以写作“清华AND大学”。由于文档必须严格符合检索词的要求才能够被检索出来,因此布尔检索模型又被称为“完全匹配检索”(Exact-Match Retrieval)。[1] MBA智库百科
布尔检索模型中主要有AND、OR、NOT三种逻辑运算,布尔逻辑运算符的作用就是把检索词连接起来,构成一个逻辑检索式。运算符之间存在优先级:NOT>AND>OR,例如:中国NOT日本AND歌曲OR小说,搜索结果为:名字包含中国但是不包含日本的歌曲或小说。同样,利用()可以提高优先级
查询条件:谷歌 AND 开源 NOT 大会 分别取出“谷歌”、“开源”、“大会”对应的行,并对“大会”所在的行取反
谷歌: 0 1 0 1
开源: 0 1 0 1
大会: 1 0 0 0(取反: 0 1 1 1)
然后进行运算:0101 AND 0101 AND 0111 = 0101 所以文档2和文档4是符合条件的
优点:
- 布尔逻辑表达式直观清晰,与人们思维习惯一致,人们只要把查询通过布尔运算翻译成系统可接受的形式
- 由于0和1的返回结果,易于计算机实现