论__大量文本内容去重的方式

论__大量文本内容去重的方式



本文由 Luzhuo 编写,请尊重个人劳动成果,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/50640179
微博: http://weibo.com/u/2524456400


最近拿到大量的文本文件,文件的大小少个几十M,多则几十G,这么多且大的文本想必有很多的文本是重复的,于是相对它进行去重.
想出了第一种方案,没想到内存很快就被撑爆了,于是想出了第二种方案,不过那个效率,不好意思说了.
网上说的根据哈希码和文本长度对文本进行快速去重的方案一点都不靠谱,因为哈希码和长度一样的文本内容实在是太多了.

结论

  • 第一种方案速度比第一种方案快,但是对内存要求高,而且顺序可能会乱掉.
  • 第二种方案速度非常慢,不过对内存要求不高,可以放在云端处理^-^.

方案一

  • 使用这种方案的结果将会是这样的(完全就是拼内存),于是就想出了方案二

方案二

GitHub Code

代码寄托在Github上,有兴趣的可以去看看.
代码: https://github.com/LZLuzhuo/QuickClearRepeat
另外我想告诉你用 哈希码和长度 有多不靠谱.文件也存在Github上.

时间: 2024-11-03 21:01:47

论__大量文本内容去重的方式的相关文章

网站可用性研究:网页上的文本内容

本教程翻译自:How Usable is Your Copy? 当我们谈论网站可用性的时候,我们总会提及用户界面(UI)--按钮.标记(label).标签(tab)等的设计与布局.但是,还有一个可能会被你忽视的元素可能会把你辛辛苦苦设计的网站毁于一旦,那就是(文字)内容. 这些文字内容就是你的网站上用文本方式提及的方方面面,它涵盖了何种类型的文本内容.今天网页教学网要谈论的网站可用性分析就是关于网站的文字内容如何对访问者起到引导和告知的作用,例如:引导用户如何下载需要的文件,如何订阅你网站的Fe

编码-怎么逐字节的读取文本内容???

问题描述 怎么逐字节的读取文本内容??? 现在想从一个文件里逐字节的读取内容,但是从网上下载的文本和自己输入的文本读取的内容不太一样.说是网上的内容可能会有UNICODE编码的文本,而我们平常处理的都是纯文本?怎么用c++程序写出完整的读取文本内容,不管是什么编码,空格啥的都能读出来??? 解决方案 逐字节是二进制,逐字符才是文本.UNICODE编码的文本也是纯文本的一种. 你可以打开记事本,保存,下拉选择编码. 解决方案二: 从SDCard中读取文本内容 解决方案三: 用fread,读取,用二

代码-qt creator5使用readLine()不能读取文本内容

问题描述 qt creator5使用readLine()不能读取文本内容 10C 在使用QTextStream类里的readLine()函数时,不知为何不能读取文本第二行的内容文本内容如下:代码如下:对话框的输入:应用程序输出:从应用程序输出可以看到,readLine()没能读取第二行的内容1234 求大神解答这是为什么------ 解决方案 你看看你读取的文档是不是你记事本打开的那个.因为你没有带上完整路径. 解决方案二: readLine只读一行试下readAll一次性读取 解决方案三: 应

网站所有文本内容和图片路径都需要从数据库获取么?

问题描述 网站所有文本内容和图片路径都需要从数据库获取么? 现在在做一个项目,正在考虑数据库的设计,现在有几个相关问题 1:例如在首页中,轮播图片我知道应该是放在服务器的文件夹中,现在的问题是:在首页页面中的img标签中直接写死固定src连接某一个图片地址,还是从数据库获取获取所有轮播图片的地址,然后用标签遍历出来? 2:首页的一些介绍性的文字,如xx公司怎么样啊,做什么的啊,简单的几句话,然后还配了个图,像这种情况,需要将文字存在数据库中,访问时再从数据库读取呢,还是直接就写死,然后配图也写死

删除-【c语言】关于文本内容替换

问题描述 [c语言]关于文本内容替换 请问各位,对一个文本的一行内容进行替换操作,新内容比原内容长度短,多出来的那段字符怎么删除掉?多谢 ps.由于操作原因不允许生成一个临时文件再通过删除原文件再将临时文件改名的方式. 解决方案 如果文本很大,效率会很低,最好的就是内存映射 解决方案二: 重新设置文本的大小为改正后的大小,这样就相当于把多余的删除了 解决方案三: 直接从替换位置往后写,最后再设置文件长度截断文件. windows下SetFilePointer SetEndOfFile linux

如何用R进行文本内容的情感分析

一.关于文本内容的情感分析 一篇文章反映了什么态度?褒义还是贬义?肯定还是否定?喜怒哀乐愁,反映的是哪种情绪特征?对这些内容的分析就是情感分析,或者叫情感倾向分析.情感倾向 可认为是主体对某一客体主观存在的内心喜恶,内在评价的一种倾向.当然,有正常阅读能力的人,在看了一篇文章后能够判断文章的情感和极性,但这是主观体 验,不是量化数据.在对文章进行分析的时候,通常需要进行量化的分析,显得更加直观.客观. 情感分析基本上有两种方法,一种是极性分析,一种是情感类别分析.前者分析文章的总体态度是肯定还是

vc++-VC++中如何实现office中通过文件菜单打开命令,在试图中显示文本内容并且可以编辑?

问题描述 VC++中如何实现office中通过文件菜单打开命令,在试图中显示文本内容并且可以编辑? VC++中如何实现office中通过文件菜单打开命令,在试图中显示文本内容并且可以编辑通过CDC的文本输出函数在视图上显示的文本不能编辑 解决方案 你的意思是你希望做一个类似文本编辑器的程序吧,你不能用手动绘图的方式去实现,MFC好像有类似的功能提供.你用多文档模式或者单文档模式,视图类继承CEditView就自动可以编辑了. 希望能够帮到你. 解决方案二: 是不是自己做一个mfc单文档程序,然后

sql-C# 按行读取txt文本内容导入数据库SQL(1)第二行数据就从第二列插入(2)索引超出了数组界限?

问题描述 C# 按行读取txt文本内容导入数据库SQL(1)第二行数据就从第二列插入(2)索引超出了数组界限? 都是按行读取txt内容,(因为有两行数据和其他的不一样)用正则分析出来,赋给一个字符串数组, 将一个字符串数组的每个值一次写入数据库行的对应列.一行读取完成. 可是却显示,索引超出了数组界限,数组个数和行对应的 .将读取出来的数据显示在textBox中是正确的, 但是奇怪的是也确实是导入进去了,数据库中表格有了数据 最终结果似乎对的,除了第二行第一列没有数据.谢谢,刚入手,第一个程序!

优云运维:漫谈redis在运维数据分析中的去重统计方式

今天,我和大家分享下redis在运维数据分析中的去重统计方式.为了避免混淆,本文中对于redis的数据结构做如下约定: SET:saddkey member ZSET:zaddkeyscoremember HYPERLOGLOG:pfaddkeyelement STRING:setbitkeyoffset value 名词约定: 维度:比如版本.操作系统类型.操作系统版本.运营商.设备型号.网络类型等 复合维度:由两个或多个维度交错产生的维度,比如某个版本下的某个设备型号. 去重统计在数据化运维