信息指纹

信息指纹的由来



  信息有“指纹”吗?信息要“指纹”做什么呢?
  ”指纹”一般特指我们识别人所采用各种方式的一个总称。生活中我们需要辨认出周围的每一个人,即使是非常相似的双胞胎,因为辨别是我们进行相互交流的前提。无论是通过名字、长相、声音的辨认,还是通过有技术依据的指纹与虹膜辨认,甚至是通过DNA鉴定,目的都只有一个,就是能准确确认对方。
  可见指纹的首要用途就是识别个体,当然作为指纹特征,需要它是可唯一确定的、不容易更改的、方便携带的。另外一个重要用途是检索,我们需要找哪个朋友的时候,可呼叫他的名字找到他,也可以把他的指纹输入电脑,很快就查询到他的详细信息。
  我们说:信息需要“指纹”的目的也有两个:一是检索,二是防止有假。前一个目的容易理解,我们现在都习惯网上搜索,找寻我们需要的各种信息。搜索有两种模式:一种是将信息都先分类,先选择信息类别是科技的还是文学的,是文字的还是图像的;先大类再小类,逐渐细化,直到你找到需要的信息。但这种方式需要对信息做预处理,并且分类要科学,合乎大部分人的逻辑,否则就象迷宫一样,进去就难出来了。另一种是提供一些搜寻的关键字,查询时不可能拿这些关键字与所有的信息原文进行比对,时间上是不可能的,比对的一定是事前整理好的特征信息,能“代表”信息的规律的信息,这就是信息的指纹。所以信息提取指纹是我们在信息海洋中搜寻的前提。这个需求产生了Yahoo、Google、百度等搜索公司。理所当然,信息指纹技术也是搜索公司特别关注的新技术之一。
  信息需要指纹的另一个目的也是互联网带来的。我们生活在金钱驱动的阶级时代,免费的午餐是没有的,虽然信息的提供者大多的奉献的,但当信息的价值显现时,版权的问题就来了,最起码的,你使用人家的信息,也应该给人家署名吧,尊敬也好,版权也好,反正信息需要带上其“出身”的标签。这在从前是相对容易的,因为信息的载体是纸张、广播、电视,这些都比较好管理,互联网的兴起,信息变为电子流,一个人人都可以编辑的电子文档,使用者说是他自己的写的,你很难说是你的。若能在你发布的电子信息中,生成自身的“指纹”,别人就不容易冒充了。我们听说过影像光盘中的“电子水印”,就是在视频信息中隐藏制作者的特别信息,作为识别的“指纹”,但对普通的电子文档,大家似乎没有好的方法,现在流行的pdf文档(只能读不能改的一种文档格式,把文字变成类似图像的信息)是一些厂家提供手册、说明书的保护方法,但对于互联网上的丰富信息来说不适用的。
  我们很容易联想到CA证书的方式,在电子信息中放入证书,具有防篡改和抗抵赖的功效,然而在普通的文档中,证书与信息本身是很容易分离的,也就是说我只要信息,抛弃证书,把一次“合法”得到的信息,变成自己的,再进行N次复制发布,对信息的拥有者来说,是个“头痛”的问题。互联网是一个虚拟的世界,有些现实中的法律与道德规范很难落实,变化各种虚拟的身份在互联网上就想玩游戏一样方便。所以信息指纹不仅应该源自信息,信息改变了,指纹就能反应出来;而且还要廉价、容易实现。
  我们都知道互联网是信息的海洋,但它也有大量的垃圾数据、重复数据,如何有效地在检索中减少重复、剪除垃圾,就需要信息指纹的技术。比如对一个博客文章的搜索,原始发布的应该最需要的,转载的基本属于重复的,引用的则属于有关联的,只是偶尔出现该关键词的不相关信息的就是用户不需要的了。
  从另一个需求角度讲,在涉密信息系统中,有一项重要的防护要求,就是高密级的信息不能流向低密级保护的网络区域,但如何防护却是个大问题。信息中的密级标识是很敏感的,只是在文档中标识,则很容易删除或修改,标识被修改了,防泄密就成了问题。信息指纹具有不可篡改的特性,把密级标识放在信息指纹中,就很容易通过密级过滤的“网络防火墙”,自动检索出高密级信息,防止信息的泄密。
  综观各种需求与目的,信息不仅需要指纹,而且信息指纹将是互联网上“信息海洋”的必然技术。

信息指纹提取的几种方法



  信息按照其表征特性可以分为:文字信息、图形信息、图像信息、语音信息。按照其来源可以分为:文档信息(正式编写的信息,有标题、作者、摘要、关键字等辅助信息,如正式发表的文章、论文等)、自然信息(随意记录或编写的信息,只有信息的内容,没有或部分有辅助信息,如八卦新闻、聊天室的帖子、博客的文章等)、再生信息(对各种信息的统计信息,或通过对别人信息的重新编写,总结、联想出来的新信息,一般再生信息也都属于文档信息,有辅助说明信息)
  统计信息表明:对一个文本信息提取指纹,当选取8个关键词及其词频作为其指纹时,准确度在98%以上,查全率在30%左右。这说明要能“概括”该信息,找出其8个使用频率最高的词汇,基本可以代表这个信息。
  因此文字信息提取指纹的要素一般为下面信息:

  • 标题
  • 作者
  • 发布时期、修改日期
  • 主要关键词

  其中关键词的选取可以有几种方法:

  • 作者提供的关键词
  • 作者提供的摘要,或整理人员编写的摘要
  • 提取信息中出现频率高的8个关键词
  • 文章开头或结尾一段话
  • 文章中固定位置的一段话(如第5行的第一句话)

  有了这些代表信息后,便可以形成指纹信息,若再对这些信息进行Hash运算、MD5等方式加密、变化,生成一段定长(如256字节)的信息,就可以作为该信息的“指纹”,经过加密主要是防止对信息内容的篡改和对指纹的替换。这种方法有些象数字签名技术,但要相对简单,并且不进行加密运算时的标题等信息可以直接作为检索的关键字使用,
  这里提取信息中的高频率关键词是一个技术的难点,其原因有两个:

  1. 信息中的非特征信息关键词的剔除:如我、你、他等称谓,而且、但是等连接词,对信息标识是没有帮助的。比较“通俗”的词,如管理、学习等可以出现在任何类型的信息中,让用户搜索的信息五花八门;比较“流行”的词,如姚明、时尚等可能出现频率极高,造成搜索信息非常多。总之,若关键字搜索的信息多得难以阅读,并且杂乱无序,对于查询者就失去了意义。
  2. 词汇的提取本身就是问题:对于英文来说,词汇是空格隔离的,比较好提取,而对于中文来说,一句话中可以多种断句,得到的词汇会很多,识别结果有很大的差异。目前搜索公司大多采用巨大的词汇库方式,最长匹配也好,通俗词汇管理也好,说白了就是还没有一个模型或算法可以最好地识别词汇。这也正是Google也好,百度也好对中文的搜索结果都不尽如人意的原因。

  文字信息的指纹提取不容易,对语音、图像指纹的提取就更困难了,因为对图像、语音的描述本身就比文字要麻烦。一般的思路是:在语音、图像先进行特征编码,也就是选取有代表意义的局部,语音中的某段频率(人的声音都有自己的音色特点),图像中的明暗对比强烈的地方、或关键图像的区域等,再对编码进行变换、加密等处理,形成指纹。下面我们介绍一个图像提取指纹的简单方法:色阶图方法
  色阶图(Color histograms):就是从图像中产生出,可以描述图像的色彩分布。
  图像与文本信息不同,是以点阵的色彩存放,信息量非常大,算法的目的就是进行信息简化,具体步骤如下:

  1. 大小:对图像进行切割,根据颗粒度不同,小块大小为m*n,图像分割为M*N个块
  2. 模糊:对每个图像块进行色彩的平均处理,也就是用该块最多的颜色代表该块
  3. 减色:将色彩从真彩的65536色减少,合并颜色,当然颜色数量可以根据颗粒度选择8色、16色、256色等,本例选择为8色
  4. 替换:简化后信息为M*N*8,每个颜色用一个字母符号替代,如:采用xpm格式,每个颜色用一个字符表示: B 对 black .
    对blue X 对green o对cyan O 对 red + 对magenta @ 对yellow #
    对gray100
  5. 编码:把每个图像块用其字母替代,再按顺序排列,就形成一个M*N的字符串。该字串作为图像的指纹信息。

小结



  信息指纹是信息时代互联网上的新兴技术,目前还处于起步的阶段,但随着互联网的繁荣,信息指纹的未来前景是广阔的。这里只是简单的介绍,给大家一个思路,离理论探讨还相距甚远。

原文地址:http://zhaisj.blog.51cto.com/219066/117168/

时间: 2024-09-08 19:54:33

信息指纹的相关文章

[算法系列之十]大数据量处理利器:布隆过滤器

[引言] 在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中.比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断 它是否在已知的字典中):在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上:在网络爬虫里,一个网址是否被访问过等等.最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新 元素时,将它和集合中的元素直接比较即可.一般来讲,计算机中的集合是用哈希表(hash table)来存储的.它的好处是快速准确,缺点是费存储空间.当集合比较小时,这个问题

利用新浪微博API的Search接口做微博锐推榜

郑昀 20100929   应用入口:http://t.rtmeme.com/ 简单介绍下我们这个榜单与新浪自己的热门转发榜区别: 微博锐推榜 将无视明星推名人推,更关注草根推,更关注社会民生推,屏蔽无营养推. 微博锐推榜 将聚合以新浪微博为首的国内各大微博网站的热门转发消息.     1.新浪的接口 新浪微博的API提供了Search方法,如它的文档所示: URL:http://api.t.sina.com.cn/search.json 格式: 仅支持json  GET 是否需要登录:true

[答网友问]传播和抽样

郑昀 20110306 集中回答一下网友对互联网信息监测的提问.   对于社区化信息挖掘.互联网海量信息挖掘,抽样是被迫的,但它仍然是一个好方法. 1.为什么被迫抽样?     即使是针对Twitter,做消息监控也是抽样.     也就是说,但凡是没有权限调用FireHose API(即Streaming API,参考郑昀的文章:http://www.cnblogs.com/zhengyun_ustc/archive/2010/06/22/streaming.html ),拿不到全部数据,一定

SEO优化之页面技巧

1.为网页指定明确单一的内容主题.通过频道导航(特别是首页),并在网页中放置关键字,以及频道导入.导出链接的关键字突出主题. 2.网站的各个页面结构尽量保持简单和一致,有利于搜索引擎理解频道. 网页文件的大小最好控制在100K以内,尽量压缩网页内配图的体积以便搜索引擎读取同时提高载入速度: 3.不要轻易使重定向.框架等对搜索引擎不友好页面处理方式. 4.标题的文字长度(title)最好控制在40-60个字母以内,并将关键字尽量放置在title中突出主题. 5.尽量把关键字放到网页文件名中,图片的

浅析网站收录的影响因素(一)

网站不收录怎么办?权重不够,买点友链;外链不够,多发点;文章不是原创,好好写.一个问题,有那么多的答案,可是我们不能靠猜测去工作.今天我给大家说说我认为的网站收录的影响因素. 很久以前光年论坛的张国平老师就提出一个公式:网站收录量=页面抓取量×页面质量.收录本来就是靠蜘蛛抓取,能被蜘蛛留下的页面就是质量高的,这个公式的正确是大家不会怀疑吧?我们来看下面的分析. 页面抓取量应该和你的服务器,网站程序有关系的,如果它们对百度蜘蛛的访问不干涉.不限制,都很正常很稳定.另外外链的作用呢,基本就是两点1.

PHP中实现Bloom Filter算法

 这篇文章主要介绍了PHP中实现Bloom Filter算法,本文直接给出实现代码,代码中给出详细注释,Bloom Filter算法介绍等内容,需要的朋友可以参考下     ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

python 爬虫教程

转载http://blog.csdn.net/freeking101/article/details/62893343 爬虫入门初级篇 IDE 选择 PyCharm(推荐).SublimeText3.VS2015.wingIDE 装python2还是python3 python社区需要很多年才能将现有的模块移植到支持python3. django web.py flask等还不支持python3.所以推荐安装python2 最新版. Windows 平台 从 http://python.org/

搜索引擎如何进行语义分析

摘要: 根据 搜索引擎判断原创的指纹算法 我们知道搜索引擎可以把网页里面正文信息,提取一定的信息,可以是关键字.词.句子或者段落及其在网页里面的权重等形成一个信息指纹或特定 根据搜索引擎判断原创的指纹算法我们知道搜索引擎可以把网页里面正文信息,提取一定的信息,可以是关键字.词.句子或者段落及其在网页里面的权重等形成一个信息指纹或特定一个特征,通过这个特征来区分不同的两篇文档,然而这个只是搜索引擎非常程序化的一个判断,这就不可避免会导致了搜索结果会出现很多的失误,因为对于两篇文档的关联判断不只决定

布隆过滤器Bloom Filter算法的Java实现(用于去重)

在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个 集合中.比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中):在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上:在网络爬虫里,一个网址是否被访问过等等.最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新 元素时,将它和集合中的元素直接比较即可.一般来讲,计算机中的集合是用哈希表(hash table)来存储的.它的好处是快速准确,缺点是费存储空间.当集合比较小时,这个问题不显著,但