CN113722416A - 一种数据清洗方法、装置、设备及可读存储介质 - Google Patents
一种数据清洗方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113722416A CN113722416A CN202110975219.3A CN202110975219A CN113722416A CN 113722416 A CN113722416 A CN 113722416A CN 202110975219 A CN202110975219 A CN 202110975219A CN 113722416 A CN113722416 A CN 113722416A
- Authority
- CN
- China
- Prior art keywords
- data
- article
- text
- target
- deleting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004140 cleaning Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000001514 detection method Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 5
- 238000013075 data extraction Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3335—Syntactic pre-processing, e.g. stopword elimination, stemming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据清洗方法、装置、设备及可读存储介质,该方法,包括:获取待清洗的文本数据;以文章为单位对文本数据进行分割,得到文章数据;对文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;删除文章数据中的目标文本行,得到目标文章数据。本申请以文章为单位,实现精准清洗,能够实现高效地文本清洗,从而得到高质量的文本数据集。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据清洗方法、装置、设备及可读存储介质。
背景技术
互联网上的新闻、博客、论坛等各类文本数据越来越多,如何利用这些海量的文本数据生成高质量的文本数据集,以用于人工智能模型的训练和推理已成为热门的研究方向。
为了对海量的数据进行数据清洗,以生成高质量的文本数据集,对应诞生了很多清洗框架,如Hadoop(一款支持数据密集型分布式应用程序的开源软件框架)的MapReduce(编程模型,用于大规模数据集(大于1TB)的并行运算。)计算框架、Spark(大规模数据处理而设计的快速通用的计算引擎)框架等。然而,由于数据量巨大,很多数据清洗方案并不高效,虽然这些数据清洗方案采用了Hadoop、Spark等并行计算框架,但是由于数据清洗系统的清洗方案存在问题,仍然不能高效地进行清洗,从而无法得到高质量的文本数据集。
综上所述,如何有效地解决文本数据清洗等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种数据清洗方法、装置、设备及可读存储介质,以文章为单位,实现精准清洗,能够实现高效地文本清洗,从而得到高质量的文本数据集。
为解决上述技术问题,本申请提供如下技术方案:
一种数据清洗方法,包括:
获取待清洗的文本数据;
以文章为单位对所述文本数据进行分割,得到文章数据;
对所述文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;
删除所述文章数据中的所述目标文本行,得到目标文章数据。
优选地,还包括:
获取所述目标文章数据中各篇文章的文章长度及中文字符占比;
删除所述目标文章数据中所述文章长度或所述中文字符占比小于对应阈值的文章。
优选地,还包括:
查找并删除所述目标文章数据中内容为空的文章。
优选地,还包括:
收集若干敏感词,并对所述敏感词进行分类;
利用确定的有穷自动机算法,构造与所述若干敏感词对应的敏感词树结构;
参照所述敏感词树结构,对所述目标文章数据中的各篇文章进行遍历,得到所述各篇文章的敏感词检测结果;
利用所述敏感词检测结果,删除所述目标文章数据中与第一类敏感词匹配的文章,和/或,删除所述目标文章数据中与第二类敏感词匹配的段落。
优选地,还包括:
删除所述目标文章数据中的特殊字符;
和/或,利用正则表达式,删除所述目标文章数据中的垃圾字符。
优选地,还包括:
对所述目标文章数据中每篇文章分词后,生成对应的哈希值;
将所述哈希值和文章的对应关系存入Redis;
在所述Redis中进行精准匹配,找出汉明距离不大于相似度阈值的相似文章;
对所述相似文章进行去重处理。
优选地,所述获取待清洗的文本数据,包括:
通过超文本传输安全协议下载原始文本数据集;
将所述原始文本数据集的路径及URL发送到Redis通道;
订阅所述Redis通道,接收所述文本数据。
一种数据清洗装置,包括:
文本数据获取模块,用于获取待清洗的文本数据;
文章数据提取模块,用于以文章为单位对所述文本数据进行分割,得到文章数据;
符号检测模块,用于对所述文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;
文章清理模块,用于删除所述文章数据中的所述目标文本行,得到目标文章数据。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述数据清洗方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据清洗方法的步骤。
应用本申请实施例所提供的方法,获取待清洗的文本数据;以文章为单位对文本数据进行分割,得到文章数据;对文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;删除文章数据中的目标文本行,得到目标文章数据。
由于原始文章中充斥着大量的无意义内容,比如超链接标题、垃圾广告信息等内容,为了进行有效地数据清洗,在本申请中,获取到待清洗的文本数据后,首先以文章为单位对文本数据进行分割,得到文章数据,以便于进行标点符号检测。然后,在针对文章数据中的各个文本行进行标点符号检测,确定出结尾处没有标点符号的目标文本行。将该目标文本行删除,即得到目标文章数据。采用文本行结尾标点符号判断的方式来提取有意义的文本行,同时去除无意义的文本行,使得清洗后得到的目标文章数据均为有意义内容。即,以文章为单位,实现精准清洗,能够实现高效地文本清洗,从而得到高质量的文本数据集。
相应地,本申请实施例还提供了与上述数据清洗方法相对应的数据清洗装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种数据清洗方法的实施流程图;
图2为本申请实施例中一种数据清洗框架示意图;
图3为本申请实施例中一种数据清洗装置的结构示意图;
图4为本申请实施例中一种电子设备的结构示意图;
图5为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种数据清洗方法的流程图,该方法可以具体应用于如图2所示的框架中,该方法包括以下步骤:
S101、获取待清洗的文本数据。
在本实施例中,可以通过接收文本数据的方式获得待清洗的文本数据,也可以通过读取存储介质的已存数据的方式来获得待清洗的文本数据,还可以直接从网络下载的方式,获得待清洗的文本数据。
优选地,为了加快文本数据获取效率,可以借助Redis(一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库)来获取该文本数据。具体的实现过程,包括:
步骤一、通过超文本传输安全协议下载原始文本数据集;
步骤二、将原始文本数据集的路径及URL发送到Redis通道;
步骤三、订阅Redis通道,接收文本数据。
为便于描述,下面将上述三个步骤结合起来进行说明。
请参考图2,图2为本申请实施例中一种数据清洗框架示意图。
其中,生产端负责数据下载和数据流生产。其中,数据下载,可以通过HTTPS(HyperText Transfer Protocol over Secure Socket Layer,超文本传输安全协议)协议下载common crawl提供的原始文本数据集;数据流生产,即把原始文本数据集的路径及URL(Uniform Resource Locator,统一资源定位符)发送到Redis通道。
订阅服务,提供数据文件信息的发布和订阅功能。
消费端(主要包括数据清洗模块),用于数据流消费,即订阅Redis的数据文件信息通道,接收该文本数据。
在实际应用环境下,生产端的数据下载,可以采用Golang编程语言实现数据的多协程并行下载(如32协程),可以充分利用网络带宽;对于数据流生产:可以采用Redis通道的方式来实现文件信息的传递,由于Redis可以承受十万的QPS(Query Per Second,每秒查询率),所以此种方式非常高效。
对于订阅服务,可以采用Redis作为消息中间件,主要是考虑到了Redis对于高并发的支持,同时Redis中的消息是数据文件的存储路径及URL,而不是文本数据集本身,所以在消息传递过程中,避免了内存开销过大、以及网络流量过大的情况。
在消费端进行数据流消费,为了和Spark的无缝衔接,数据流消费端可以采用Scala编程语言实现。
进一步地,在本申请实施例中,还提供了一种容错方案,具体如下:
由于Redis通道本身的特性,当有发布端持续向Redis通道发布数据,却没有订阅端来消费数据的时候,发布端发布的数据就会丢失。针对这一缺陷,可以在Redis中创建了一个数据集URL的集合,当发布端需要下载某个URL对应的数据文件之前,先将此URL写入到创建的数据集URL集合中。当订阅端成功处理此URL对应的数据文件后,将此URL从数据集URL集合中删除。这样就保证了最终数据集URL集合中存储的是没有被订阅端成功处理的URL。如此,便可以在发布端重新下载URL对应的文件,然后再一次发布到Redis通道中。
由于下载器在下载common crawl数据的时候偶尔会出现下载异常的情况,所以可把下载器放在了Docker容器中执行,这样下载器不会受到其它进程的干扰;但是如此一来,在发布消息到Redis通道的时候,就需要对下载到本地的数据集文件的路径进行一次替换,也就是把在Docker(容器)中的路径替换为服务器上的路径。
进一步地,为保证关键程序的健壮性,还可以为下载器、数据订阅及清洗模块添加了守护进程:
对于下载器,可以开发下载器的守护进程,守护进程每15分钟(当然还可以为其他时长,在此不一一列举)检测下载器在最近15分钟下载的数据集文件数量,如果此数量低于某个临界值,守护进程就会停止并删除下载器的Docker容器,然后再重新启动下载器的Docker容器。
对于数据订阅及清洗模块,可以开发数据订阅及清洗模块的守护进程,守护进程每2分钟(当然还可以为其他时长,在此不一一列举)检测数据订阅及清洗模块的进程是否存在,如果不存在的话,会重新启动数据订阅及清洗模块。
为了保证磁盘不被占满,可以开发磁盘监控程序,监控程序每15分钟(当然还可以为其他时长,在此不一一列举)运行一次,当发现磁盘使用超过80%(也可以设置为其他百分比值)的时候,监控程序会清空15分钟之前使用的原始数据集文件,从而保证始终有空闲的磁盘空间可以使用。
S102、以文章为单位对文本数据进行分割,得到文章数据。
得到文本数据之后,首先以文章为单位对文本数据进行分割,进而得到文章数据。文章数据即由一篇篇的文章构成。
S103、对文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行。
由于原始文章中充斥着大量的无意义内容,比如超链接标题、垃圾广告信息等等内容。一般来说,无意义内容大多在其结尾处没有标点符号,基于此,在本实施例中,为了去除这些无意义内容,采用文本行结尾标点符号有无的方式,来提取有意义的文本行,同时去除无意义的文本行。
具体的,在分割文本数据得到文章数据之后,对文章数据中各篇文章中的各个文本行行进行标定符号检测,从而可以确定文本行的结尾处是否有标点符号。在本实施例中,为了便于区别,将结尾处没有标点符号的文本行称之为目标文本行。
S104、删除文章数据中的目标文本行,得到目标文章数据。
找出目标文本行之后,便可将其从文章数据中剔除,从而得到目标文章数据。
优选地,还可以剔除内容为空的文章,具体的,可以查找并删除目标文章数据中内容为空的文章。如此,便可提高目标文章数据的质量。
得到目标文章数据之后,可以存入分布式数据库。为了进一步提高存储性能,可以采用服务器本地文件存储的方式存储数据清洗后的高质量文章。
应用本申请实施例所提供的方法,获取待清洗的文本数据;以文章为单位对文本数据进行分割,得到文章数据;对文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;删除文章数据中的目标文本行,得到目标文章数据。
由于原始文章中充斥着大量的无意义内容,比如超链接标题、垃圾广告信息等内容,为了进行有效地数据清洗,在本申请中,获取到待清洗的文本数据后,首先以文章为单位对文本数据进行分割,得到文章数据,以便于进行标点符号检测。然后,在针对文章数据中的各个文本行进行标点符号检测,确定出结尾处没有标点符号的目标文本行。将该目标文本行删除,即得到目标文章数据。采用文本行结尾标点符号判断的方式来提取有意义的文本行,同时去除无意义的文本行,使得清洗后得到的目标文章数据均为有意义内容。即,以文章为单位,实现精准清洗,能够实现高效地文本清洗,从而得到高质量的文本数据集。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本申请中的一种具体实施方式中,还可以对目标文章数据进行中文文本过滤,从而得到更加高质量的文章数据。具体的实现过程,包括:
步骤一、获取目标文章数据中各篇文章的文章长度及中文字符占比;
步骤二、删除目标文章数据中文章长度或中文字符占比小于对应阈值的文章。
为便于描述,下面将上述两个步骤结合起来进行说明。
在实际应用中,可以预先为挑选优质文章设置好文章长度阈值和中文字符占比阈值。其中文章长度阈值即用于筛选出文章长度大于该文章长度阈值的文章;中文字符占比阈值即用于筛选出中文字符大于该文章长度阈值的文章。
首先,获取目标文章数据中各篇文章的文章长度,以及各篇文章中的中文字符占比。然后,将各篇文章的文章长度与文章长度阈值进行比较,将各篇文章的中文字符占比与中文字符占比阈值进行比较,如此,便可得出文章长度或中文字符占比小于对应阈值的文章,然后从目标文章数据中将该类不达标的文章删除。
也就是说,在本实施例中的中文文本过滤:按照文章里中文字符数(如大于30字符),文章里中文字符占比(如大于60%)来进行中文文章过滤,不符合要求的文章一律删除。
在本申请中的一种具体实施方式中,还可以对目标文章数据中的敏感词进行过滤,从而获得无敏感词的高质量数据。具体的实现过程,包括:
步骤一、收集若干敏感词,并对敏感词进行分类;
步骤二、利用确定的有穷自动机算法,构造与若干敏感词对应的敏感词树结构;
步骤三、参照敏感词树结构,对目标文章数据中的各篇文章进行遍历,得到各篇文章的敏感词检测结果;
步骤四、利用敏感词检测结果,删除目标文章数据中与第一类敏感词匹配的文章,和/或,删除目标文章数据中与第二类敏感词匹配的段落。
其中,第一类敏感词和第二类敏感词仅是为了说明存在不同类的敏感词,且针对不同类的敏感词有着不同的敏感词删除措施。和/或,即指对于目标文章数据可以仅删除与第一类敏感词匹配的文章,也可以仅删除与第二类敏感词匹配的段落,还可以同时删除第一类敏感词匹配的文章以及与第二类敏感词匹配的段落。
具体的,可以收集大量敏感词(如一万多个),然后进行了分类,如第一类包含的是色情敏感词,第二类包含的是政治、暴力、广告敏感词;在算法上,可以采用DFA(确定有穷自动机)算法构造敏感词树结构。如此,只需对文章遍历一次,就可以判断出文章是否包含任一敏感词;如果某篇文章匹配上第一类敏感词,那么该篇文章会被删除;如果某篇文章匹配上第二类敏感词,那么匹配上敏感词的段落会被删除,该文章其他的段落会被保留下来。也就是说,对敏感词设置不同类别,其目的是在剔除敏感词时,采取不同程度的删除措施。
在本申请中的一种具体实施方式中,还可以删除目标文章数据中的特定字符。具体的,可以删除目标文章数据中的特殊字符;和/或,利用正则表达式,删除目标文章数据中的垃圾字符。即进行特殊字符去除,和/或,垃圾字符去除。其中,特殊字符去除,即指去除文章中的特殊字符,比如表情符号、乱码、不可见字符等;垃圾字符去除:通过正则表达式去除文章中的垃圾字符。
当然,若目标文章数据中既有繁体又有简体,为了方便后续文章存储或查看,还可以进行繁转简,或简转繁的操作,使得目标文章数据统一为繁体或简体。具体的,可以采用JAVA编程语言实现的转换程序,能够有效的提高转换性能。
在本申请中的一种具体实施方式中,还可以进行相似文本去除,具体实现过程包括:
步骤一、对目标文章数据中每篇文章分词后,生成对应的哈希值;
步骤二、将哈希值和文章的对应关系存入Redis;
步骤三、在Redis中进行精准匹配,找出汉明距离不大于相似度阈值的相似文章;
步骤四、对相似文章进行去重处理。
为便于说明,下面将上述四个步骤结合起来进行说明。
文本相似度去重即指对于同一个数据文件中的文章,采用SimHash(一种常用的哈希)算法进行文章相似度比较,对每篇文章分词后生成对应的哈希值,通过比较哈希值的汉明距离来确定文章相似度,然后对相似文章去除(如当汉明距离小于或者等于3时,即相似度阈值为3,认为文章相似)。
其中,分词软件可以采用HanLP(Han Language Processing,汉语言处理包)分词,词库文件存储在HDFS(Hadoop Distributed File System,分布式文件系统)上面。
为了做到全局去重(即针对不同数据文件进行相似度去重),可以将每篇文章的64位哈希值分为4份,即4个16位哈希值,并且将16位哈希值和文章集合的对应关系存入Redis。当有新的文章需要全局去重时,只需要用新文章的4个16位哈希在Redis中进行精确匹配,获取到16位哈希值对应的文章集合后,进行汉明距离比较,当汉明距离小于或者等于3时,则认为文章是相似的。
在实际应用中,可以将本申请实施例所提出的各项数据清理操作结合起来,从而清理得到更高质量的文本数据。为便于本领域技术人员更好地进行应用,下面举例说明如何结合多项数据清理操作。
采用Spark作为并行计算框架进行文本数据的并行处理;采用Redis作为消息中间件及容错方案;由于Spark支持Python(一种计算机程序设计语言)、Java(一门面向对象的编程语言)、Scala(一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性)等编程语言,其中Scala兼具性能(是Python的10倍)、简洁等特性,所以可以优先选择Scala来编写数据清洗模块。
开发的基于Spark高效的common crawl海量数据清洗方案的架构设计如图2所示,其中主要模块介绍如下:
生产端,负责数据下载,通过HTTPS协议下载common crawl提供的原始文本数据集;数据流生产,把原始文本数据集的路径及URL发送到Redis通道。
订阅服务,提供数据文件信息的发布和订阅功能。
消费端(数据清洗模块),负责数据流消费,订阅Redis的数据文件信息通道,接收数据文件信息。
数据流清洗:
文章提取过滤:对原始文本按照文章进行分割、以文章为单位进行内容提取、去除垃圾数据行、将保留下的数据行组成新的文章。
空行过滤:将内容为空的文章丢弃。
中文文本过滤:按照文章里中文字符数(大于30字符),文章里中文字符占比(大于60%)来进行中文文章过滤,不符合要求的文章一律删除。
敏感词过滤:根据收集的一万多个敏感词,采用高效过滤算法,对文章进行敏感词搜索,凡是包含任一个敏感词的文章,会视情况对整篇文章或者文章中匹配上敏感词的段落进行删除操作。
特殊字符过滤:去除文章中的特殊字符,比如表情符号、乱码、不可见字符等等。
繁体转简体:将文章中的繁体中文转化为简体中文。
正则表达式去除垃圾字符:通过正则表达式去除文章中的垃圾字符。
文本相似度去重:采用高效算法,比较文章之间的相似度,将相似度很高的文章只保留其中一篇,删除与之相似的所有文章。
数据存储:为了实现数据的高效存储,采用服务器本地文件存储的方式存储数据清洗后的高质量文章。
基于Spark运算框架的非常高效的数据清洗方案,可以在短时间内完成PB级别数据的清洗。清洗的数据来源是common crawl网站提供的文本数据集。对1PB的数据(40个月的数据)进行了数据清洗,选用的12台服务器配置为:8CPU核心、16线程、128GB内存、1TBSSD硬盘,清洗耗时2周,最终生成了1TB的高质量中文文本数据集。
相应于上面的方法实施例,本申请实施例还提供了一种数据清洗装置,下文描述的数据清洗装置与上文描述的数据清洗方法可相互对应参照。
参见图3所示,该装置包括以下模块:
文本数据获取模块101,用于获取待清洗的文本数据;
文章数据提取模块102,用于以文章为单位对文本数据进行分割,得到文章数据;
符号检测模块103,用于对文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;
文章清理模块104,用于删除文章数据中的目标文本行,得到目标文章数据。
应用本申请实施例所提供的装置,获取待清洗的文本数据;以文章为单位对文本数据进行分割,得到文章数据;对文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;删除文章数据中的目标文本行,得到目标文章数据。
由于原始文章中充斥着大量的无意义内容,比如超链接标题、垃圾广告信息等内容,为了进行有效地数据清洗,在本申请中,获取到待清洗的文本数据后,首先以文章为单位对文本数据进行分割,得到文章数据,以便于进行标点符号检测。然后,在针对文章数据中的各个文本行进行标点符号检测,确定出结尾处没有标点符号的目标文本行。将该目标文本行删除,即得到目标文章数据。采用文本行结尾标点符号判断的方式来提取有意义的文本行,同时去除无意义的文本行,使得清洗后得到的目标文章数据均为有意义内容。即,以文章为单位,实现精准清洗,能够实现高效地文本清洗,从而得到高质量的文本数据集。
在本申请的一种具体实施方式中,还包括:
中文文本过滤模块,用于获取目标文章数据中各篇文章的文章长度及中文字符占比;删除目标文章数据中文章长度或中文字符占比小于对应阈值的文章。
在本申请的一种具体实施方式中,还包括:
空行过滤模块,用于查找并删除目标文章数据中内容为空的文章。
在本申请的一种具体实施方式中,还包括:
敏感词过滤模块,用于收集若干敏感词,并对敏感词进行分类;利用确定的有穷自动机算法,构造与若干敏感词对应的敏感词树结构;参照敏感词树结构,对目标文章数据中的各篇文章进行遍历,得到各篇文章的敏感词检测结果;利用敏感词检测结果,删除目标文章数据中与第一类敏感词匹配的文章,和/或,删除目标文章数据中与第二类敏感词匹配的段落。
在本申请的一种具体实施方式中,还包括:
特定字符去除模块,用于删除目标文章数据中的特殊字符;和/或,利用正则表达式,删除目标文章数据中的垃圾字符。
在本申请的一种具体实施方式中,还包括:
文本相似度去重模块,用于对目标文章数据中每篇文章分词后,生成对应的哈希值;将哈希值和文章的对应关系存入Redis;在Redis中进行精准匹配,找出汉明距离不大于相似度阈值的相似文章;对相似文章进行去重处理。
在本申请的一种具体实施方式中,文本数据获取模块101,具体用于通过超文本传输安全协议下载原始文本数据集;将原始文本数据集的路径及URL发送到Redis通道;订阅Redis通道,接收文本数据。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种数据清洗方法可相互对应参照。
参见图4所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的数据清洗方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的数据清洗方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据清洗方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据清洗方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
Claims (10)
1.一种数据清洗方法,其特征在于,包括:
获取待清洗的文本数据;
以文章为单位对所述文本数据进行分割,得到文章数据;
对所述文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;
删除所述文章数据中的所述目标文本行,得到目标文章数据。
2.根据权利要求1所述的数据清洗方法,其特征在于,还包括:
获取所述目标文章数据中各篇文章的文章长度及中文字符占比;
删除所述目标文章数据中所述文章长度或所述中文字符占比小于对应阈值的文章。
3.根据权利要求1所述的数据清洗方法,其特征在于,还包括:
查找并删除所述目标文章数据中内容为空的文章。
4.根据权利要求1所述的数据清洗方法,其特征在于,还包括:
收集若干敏感词,并对所述敏感词进行分类;
利用确定的有穷自动机算法,构造与所述若干敏感词对应的敏感词树结构;
参照所述敏感词树结构,对所述目标文章数据中的各篇文章进行遍历,得到所述各篇文章的敏感词检测结果;
利用所述敏感词检测结果,删除所述目标文章数据中与第一类敏感词匹配的文章,和/或,删除所述目标文章数据中与第二类敏感词匹配的段落。
5.根据权利要求1所述的数据清洗方法,其特征在于,还包括:
删除所述目标文章数据中的特殊字符;
和/或,利用正则表达式,删除所述目标文章数据中的垃圾字符。
6.根据权利要求1所述的数据清洗方法,其特征在于,还包括:
对所述目标文章数据中每篇文章分词后,生成对应的哈希值;
将所述哈希值和文章的对应关系存入Redis;
在所述Redis中进行精准匹配,找出汉明距离不大于相似度阈值的相似文章;
对所述相似文章进行去重处理。
7.根据权利要求1至6任一项所述的数据清洗方法,其特征在于,所述获取待清洗的文本数据,包括:
通过超文本传输安全协议下载原始文本数据集;
将所述原始文本数据集的路径及URL发送到Redis通道;
订阅所述Redis通道,接收所述文本数据。
8.一种数据清洗装置,其特征在于,包括:
文本数据获取模块,用于获取待清洗的文本数据;
文章数据提取模块,用于以文章为单位对所述文本数据进行分割,得到文章数据;
符号检测模块,用于对所述文章数据中的各个文本行进行标点符号检测,得到结尾处无标点符号的目标文本行;
文章清理模块,用于删除所述文章数据中的所述目标文本行,得到目标文章数据。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据清洗方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据清洗方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110975219.3A CN113722416A (zh) | 2021-08-24 | 2021-08-24 | 一种数据清洗方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110975219.3A CN113722416A (zh) | 2021-08-24 | 2021-08-24 | 一种数据清洗方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113722416A true CN113722416A (zh) | 2021-11-30 |
Family
ID=78677641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110975219.3A Withdrawn CN113722416A (zh) | 2021-08-24 | 2021-08-24 | 一种数据清洗方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722416A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313676A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种文本数据清洗方法、系统、装置及存储介质 |
CN118155663A (zh) * | 2024-05-09 | 2024-06-07 | 博诚经纬软件科技有限公司 | 一种基于人工智能的大数据清洗方法 |
-
2021
- 2021-08-24 CN CN202110975219.3A patent/CN113722416A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313676A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种文本数据清洗方法、系统、装置及存储介质 |
CN118155663A (zh) * | 2024-05-09 | 2024-06-07 | 博诚经纬软件科技有限公司 | 一种基于人工智能的大数据清洗方法 |
CN118155663B (zh) * | 2024-05-09 | 2024-08-09 | 博诚经纬软件科技有限公司 | 一种基于人工智能的大数据清洗方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11496545B2 (en) | Temporal optimization of data operations using distributed search and server management | |
US20210357408A1 (en) | Temporal optimization of data operations using distributed search and server management | |
EP3251031B1 (en) | Techniques for compact data storage of network traffic and efficient search thereof | |
JP6051212B2 (ja) | 反復データの処理 | |
US9906477B2 (en) | Distributing retained messages information in a clustered publish/subscribe system | |
US8666985B2 (en) | Hardware accelerated application-based pattern matching for real time classification and recording of network traffic | |
CN113722416A (zh) | 一种数据清洗方法、装置、设备及可读存储介质 | |
CN105302807A (zh) | 一种获取信息类别的方法和装置 | |
CA3200883A1 (en) | Multi-cache based digital output generation | |
US11334592B2 (en) | Self-orchestrated system for extraction, analysis, and presentation of entity data | |
CN110008419A (zh) | 网页去重方法、装置及设备 | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
US8984028B2 (en) | Systems and methods for storing data and eliminating redundancy | |
CN110019152A (zh) | 一种大数据清洗方法 | |
CN103577604A (zh) | 一种用于Hadoop分布式环境的图像索引结构 | |
CN107169065B (zh) | 一种特定内容的去除方法和装置 | |
CN113407889B (zh) | 小说转码方法、装置、设备以及存储介质 | |
Adamov | Data mining and analysis in depth. case study of Qafqaz University HTTP server log analysis | |
CN116822491A (zh) | 日志解析方法及装置、设备、存储介质 | |
CN113076254A (zh) | 一种测试用例集的生成方法和装置 | |
CN108874941B (zh) | 基于卷积特征和多重哈希映射的大数据url去重方法 | |
Valera et al. | An efficient web recommender system based on approach of mining frequent sequential pattern from customized web log preprocessing | |
CN111209371B (zh) | 评论数据处理方法、装置、计算机设备和存储介质 | |
CN108491522A (zh) | 信息推送方法及装置 | |
EP3163474A1 (en) | A similarity module, a local computer, a server of a data hosting service and associated methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20211130 |
|
WW01 | Invention patent application withdrawn after publication |