一种文件标注***及方法
技术领域
本申请实施例涉及数据分类领域,尤其涉及一种文件标注***及方法。
背景技术
随着大数据时代的到来,越来越多的公司重视对于数据的收集。可是由 于数据来源的不同,公司收集的大量数据都是比较杂乱的,不同渠道的数据 形式各不相同:1、文件格式不同;2、对于相同内容的字段,所用的字段名 不同;3、对于文本文件,所用的字段之间的分隔符不同;4、文本编码方式 不同,等等。鉴于上述情况,为了能有效地利用数据,就需要对这些数据进 行人工标注。因为数据量比较大,所以需要较多的标注者一起标注。同时,因为这些数据文件是公司的重要文件,不能泄密,所以需要尽可能地不把数 据完全展现给标注者。
目前,在现有技术中,一种方案的专注点是针对单个文件进行标注,例 如编写一个可视化的数据清洗流程,然后对文件一个一个的执行这个流程; 另一个方案的专注点是针对同一文件进行多人标注,如果多人标注相同,则 认为该标注为正确标注。
在实现本申请实施例的过程中,发明人发现现有技术至少存在如下问 题:
在第一种现有技术方案中,创建一个工作流的工作量比较大,而且对于 每个字段和分隔符都需要人工判断,进一步加大了人工工作量;同时,因为 该方案无法处理数据库文件,所以用于标注的文件都需要手工导出;另外, 因为需要进行标注的数据文件都需要在标注者本地运行,所以,数据文件需 要完整的发给每一个标注者,从而导致重要的数据文件存在极大的泄密风险。
而在第二种方案中,每个标注者都需要自己维护一套用于标注的代码, 做了很多重复性工作,出错风险也随之增大,同时每个字段和分隔符都需要 人工判断,所以标注工作量非常大;另外,也会出现第一种方案中,标注文 件需要手工导出和数据文件存在泄密风险的问题。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种解决上述问题的文件 标注***及方法。
依据本申请实施例的一个方面,提供了一种文件标注***,包括:数据 上传模块,用于将采集到的原始数据文件上传到数据库中;数据预判断模块, 用于根据预判断处理规则对数据库中的原始数据文件进行预判断处理,根据 预判断处理结果生成与原始数据文件对应的机器标注信息;页面标注模块, 用于显示原始数据文件及其对应的机器标注信息,接收与原始数据文件对应 的用户输入信息,根据用户输入信息生成与原始数据文件对应的用户标注信 息;数据存储模块,用于根据用户标注信息,生成与原始数据文件对应的标 注数据文件。
依据本申请实施例的另一个方面,提供了一种文件标注方法,包括:将 采集到的原始数据文件上传到数据库中;根据预判断处理规则对数据库中的 原始数据文件进行预判断处理,根据预判断处理结果生成与原始数据文件对 应的机器标注信息;显示原始数据文件及其对应的机器标注信息,接收与原 始数据文件对应的用户输入信息,根据用户输入信息生成与原始数据文件对 应的用户标注信息;根据用户标注信息,生成与原始数据文件对应的标注数 据文件。
本申请实施例提供的一种文件标注***及方法,将采集到的原始数据文 件上传到数据库中;根据预判断处理规则对数据库中的原始数据文件进行预 判断处理,根据预判断处理结果生成与原始数据文件对应的机器标注信息; 显示原始数据文件及其对应的机器标注信息,接收与原始数据文件对应的用 户输入信息,根据用户输入信息生成与原始数据文件对应的用户标注信息; 根据用户标注信息,生成与原始数据文件对应的标注数据文件。由此可见, 本申请实施例通过将数据文件存入数据库的方式实现了数据文件的统一管理,同时保存了用户标注信息,不会因为文件删除导致丢失,保证了标注系 统的安全性;通过预判断处理,提示标注者可能的分隔符和字段名,提高了 标注效率,保证了标注***的效率性;通过统一平台选择性地向标注者显示 原始数据文件及其对应的机器标注信息并接收用户输入信息,实现了数据的 选择性分发和在同一平台上进行多人标注,保证了***的机密性和统一性。
上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申 请实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本申请 实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的 具体实施方式。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些 示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件 表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例一提供的一种文件标注***的结构示意图;
图2是本申请实施例二提供的一种文件标注***的结构示意图;
图3是本申请实施例三提供的一种文件标注方法的流程图;
图4是本申请实施例四提供的一种文件标注方法的流程图;
图5是本申请实施例二提供的一种文件标注***中数据上传模块的业务 流程示意图;
图6是本申请实施例二提供的一种文件标注***中分隔符预判断子模块 的业务流程示意图;
图7是本申请实施例二提供的一种文件标注***中字段预判断子模块的 业务流程示意图;
图8是本申请实施例二提供的一种文件标注***中页面标注模块的结构 示意图;
图9是本申请实施例二提供的一种文件标注***中数据存储模块的业务 流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示 了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1是本申请实施例一提供的一种文件标注***的结构示意图。如图1 所示,该***包括数据上传模块11、数据预判断模块12、页面标注模块13 和数据存储模块14。
数据上传模块11,用于将采集到的原始数据文件上传到数据库中。在具 体实施中,该模块需要对采集到的原始数据进行一系列的初步处理,之后再 将初步处理后的原始数据文件上传到数据库中。在这种情况下,之后对原始 数据文件进行的标注处理均可在数据库中完成,极大的方便了数据的管理, 一定程度上也有利于提高标注效率。
数据预判断模块12,用于根据预判断处理规则对数据库中的原始数据文 件进行预判断处理,根据预判断处理结果生成与原始数据文件对应的机器标 注信息。其中,机器标注信息包括选定分隔符信息以及预判断字段名信息。 该模块的作用是根据预设的处理规则,对需要标注的原始数据文件进行预处 理,通过一定的方式,选出选定分隔符和预判断字段名。该选定分隔符和预 判断字段名用于当用户进行人工标注时,提示用户可以参考选定分隔符和预 判断字段名来决定用户标注信息。
页面标注模块13,用于显示原始数据文件及其对应的机器标注信息,接 收与原始数据文件对应的用户输入信息,根据用户输入信息生成与原始数据 文件对应的用户标注信息。
在具体实施中,该模块主要通过例如目录结构来直观有序地展示***中 的原始数据文件,并方便用户选择需要标注的数据文件。同时,该模块通过 网页或APP等方式向用户分发需要标注的数据,既方便用户随时随地的进行 标注,又能让多个用户同时对数据库中的数据进行标注,同时,还可以只展 示部分数据给用户标注,保证了数据文件本身的机密性不受威胁。
数据存储模块14,用于根据用户标注信息,生成与原始数据文件对应的 标注数据文件。在具体实施中,该模块还可以对标注完成后的原始数据文件 进行进一步处理,例如校验用户标注是否正确、将处理好的数据文件转换成 统一的文件格式等,这一系列的处理使得标注后的数据文件具有统一性,方 便日后调用。
由此可见,在本申请实施例中,通过将数据文件入库数据库的方式实现 了数据文件的统一管理,同时保存了用户标注信息,不会因为文件删除导致 丢失,保证了标注***的安全性;通过预判断处理,提示标注者可能的分隔 符和字段名,提高了标注效率,保证了标注***的效率性;通过统一平台选 择性地向标注者显示原始数据文件及其对应的机器标注信息并接收用户输入 信息,实现了数据的选择性分发和在同一平台上进行多人标注,保证了*** 的机密性和统一性。
实施例二
图2是本申请实施例二提供的一种文件标注***的结构示意图。如图2 所述,该***包括数据上传模块21、数据预判断模块22、页面标注模块23 和数据存储模块24,其中,数据上传模块21进一步包括了解压子模块211、 信息采集子模块212、校验子模块213和编码转换子模块214,还可以包括备 份子模块215。数据预判断模块22进一步包括分隔符预判断子模块221和字 段预判断子模块222。页面标注模块23进一步包括统计子模块231、显示子模块232和用户标注子模块233。数据存储模块24进一步包括过滤子模块 241、第一格式转换子模块242和第二格式转换子模块243。
数据上传模块21,用于将采集到的原始数据文件上传到数据库中。其中, 解压子模块211用于根据文件后缀名识别原始数据文件中的压缩格式文件, 对压缩格式文件进行解压缩处理。解压子模块211进一步用于通过文件后缀 名选择解压工具,并递归查找解压得到的文件目录,每当查找到的文件目录 中包含压缩文件时,对压缩文件进行解压缩处理。在具体实现中,解压子模 块211将遍历采集到的原始数据文件,当发现压缩文件时,先识别该压缩文 件的后缀名,通过该后缀名确定需要调用的解压工具,并对该文件进行解压。 在完成该文件的解压后,解压子模块211将递归查找解压出来的文件目录中 的所有文件,当发现压缩文件时,再一次进行解压操作,直到该文件目录中 的所有文件都完成解压。为了方便后续操作,解压子模块211还可以对解压 出来的目录名和文件名进行检测,并将所有目录名和文件名转换成预设的统 一编码,例如检测解压出的目录名和文件名中是否存在GBK字符编码,如 果有,则全部转换成utf-8字符编码。
信息采集子模块212用于获取原始数据文件的文件信息,其中,文件信 息用于确定数据库中的多个原始数据文件的排列顺序。在具体实施中,信息 采集子模块212采集每个原始数据文件的大小、创建时间、文本长度等基本 信息,并根据该基本信息确定数据库中文件的排列顺序。信息采集子模块212 还可以用于确定校验子模块213需要用到的原始数据文件的标识信息,标识 信息是指与每一个原始数据文件一一对应并具有唯一标识作用的信息,一般 情况下,常见的标识信息有MD5值等,本申请实施例对标识信息不作具体限定,本领域技术人员可以根据具体情况确定原始数据文件的标识信息,只 要该标识信息能起到区分原始数据文件的作用即可。以标识信息为MD5为 例,信息采集子模块212会根据原始数据文件的内容计算每个文件的MD5 值,并将该MD5值传送给校验子模块213。
校验子模块213用于将原始数据文件的标识信息与***数据库中已录入 的各个文件的标识信息进行比较,根据比较结果确定原始数据文件的校验结 果。以标识信息为MD5值为例,校验子模块213将原始数据文件的MD5值 与数据库中已经保存的数据文件的MD5值进行比较。如果数据库中没有相 同的MD5值,则说明该原始数据文件未被保存过,校验成功;如果数据库 中存在相同的MD5值,则说明该原始数据文件与数据库中已经保存过的某 个数据文件相同,校验失败。最后,校验子模块213会将每一次的校验结果 都发送给编码转换子模块214。
编码转换子模块214用于将校验结果为校验成功的原始数据文件的文件 内容转换成统一编码,并将转换后的原始数据文件上传到数据库中。因为每 个原始数据文件的来源各不相同,因此,原始数据文件的文件编码也会各种 各样,为了统一方便地处理所有原始数据文件中的数据内容,编码转换子模 块214会将校验成功的原始数据文件的文件内容转换成统一的编码,例如将 文件中的全角字符全部转换成半角字符,将文件内容的字符编码全部转换成 utf-8字符编码等。
可选的,数据上传模块21还可以包括备份子模块215,该模块用于将采 集到的原始数据文件拷贝一份到***数据库中作为备份文件。
图5以标识信息为MD5值和统一编码为utf-8字符编码为例展示了数据 上传模块21的具体业务流程,具体步骤与上述各模块功能描述一致,在此不 再赘述。
数据预判断模块22用于根据预判断处理规则对数据库中的原始数据文 件进行预判断处理,根据预判断处理结果生成与原始数据文件对应的机器标 注信息。其中,机器标注信息包括选定分隔符信息以及预判断字段名信息, 且数据预判断模块22进一步包括:分隔符预判断子模块221和字段预判断子 模块222。
分隔符预判断子模块221,用于根据预设的分隔符集合确定原始数据文 件中包含的各个分隔符,分别获取与各个分隔符相对应的数据分割结果,根 据数据分割结果从各个分隔符中确定用于分割文件的选定分隔符。其中,常 见的分隔符为标点符号,如“-”、逗号或空格符号等。对于选定分隔符的确 定方法,常见的一种方法是计算每一行数据被某一分隔符分割后得到的列数 的分布情况标准差来确定哪一个分隔符可以作为选定分隔符。因为在本*** 中,一个原始数据文件中的每一行数据在格式上存在着一定的相似性,所以存在一个分隔符能将一个原始数据文件中的每一行数据分割出近似的列数的 情况,而列数分布情况标准差表示的是一行数据被分割后得到的列数与列数 平均值的接近程度,标准差越小说明分割后得到的列数与列数平均值越接近, 因此,标准差最小的分隔符可以将每一行数据最大限度的分割成相同的列数, 最有可能是能够正确分割该数据文件的分隔符,故将其确定为选定分隔符。
图6示出了以选定分隔符的确定方法为计算标准差、预设分隔符集合为 逗号和空格符号为例的分隔符预判断子模块221的业务流程,在该具体实现 中,分隔符预判断子模块221分别用逗号和空格符号对同一个原始数据文件 中的每行数据进行分割,得到每行数据被分割之后的列数,当最大列数不为 1时(当最大列数为1时说明该行数据并不能被分隔符分割,此时分隔符无 效)计算上述两个分隔符对应的标准差,得到逗号作为分隔符对应的标准差 为x,空格符号作为分隔符对应的标准差为y,当x>y时,空格符号为选定分 隔符;当x<y时,逗号为选定分隔符。
字段预判断子模块222用于通过选定分隔符将原始数据文件分割为多个 字段,并根据预设的字段名匹配规则确定各个字段所对应的预判断字段名。
在具体实现中,字段预判断子模块222先利用分隔符预判断子模块221 确定的选定分隔符对原始数据文件中的每行数据进行分割,之后根据预设的 字段名匹配规则将分割得到的每一列数据与预设的字段名进行匹配,最后将 符合匹配条件的字段名作为该列字段的预判断字段名。其中,预设的字段名 匹配规则用于判断某一列字段与预设的字段名是否匹配,常见的匹配规则例 如:判断某一列字段中的每一行字段是否均为纯数字并符合特定长度要求, 当符合上述要求的字段行数占到该列字段总行数的一定比例时,则可以将该 列字段的预判断字段名设置为电话号码。本领域技术人员可以根据具体情况 设置匹配规则,本申请对此不作具体限定,只要能达到确定的预判断字段名 能够正确标注该列字段中的较多行的字段即可。
字段预判断子模块222还进一步用于当多个字段所对应的预判断字段名 相同时,在预判断字段名中增加字段标识信息。其中,常见的字段标识信息 有前缀和/后缀等。例如,在一个原始数据文件中,用选定分隔符分割后的第 一列字段的预判断字段名为电话号码,第二列字段和第三列字段的预判断字 段名也都是电话号码,则需要在这几个预判断字段名后面添加后缀以示区分, 如电话号码1、电话号码2和电话号码3等。
图7示出了以选定分隔符为逗号,以预设的字段名匹配规则为电话号码 匹配规则为例的字段预判断子模块222的业务流程。先将某一原始数据文件 中的每一行数据用选定分隔符逗号分割,对分割后得到的每一列字段用预设 的电话号码匹配规则进行匹配,当某一列字段中符合电话号码匹配规则的字 段行数占该列字段总行数的比例超过50%时,则该列字段的预判断字段名即 设置为电话号码。如果有两列及以上字段的预判断字段名均为电话号码,则 根据匹配正确行数占总行数的比例从大到小的顺序给上述几列字段的预判断 字段名加上后缀1,2,3等。
页面标注模块23,用于显示原始数据文件及其对应的机器标注信息,接 收与原始数据文件对应的用户输入信息,根据用户输入信息生成与原始数据 文件对应的用户标注信息。图8示出了页面标注模块23的结构示意图。
统计子模块231用于显示***中所有原始数据文件的总体标注情况和用 户个人标注情况,方便用户决定选择哪些原始数据文件来进行标注。
显示子模块232用于通过目录结构展示原始数据文件列表及其列表中每 个原始数据文件对应的机器标注信息,用户可以从该列表中选择需要进行标 注的原始数据文件。该子模块进一步用于显示用户选择的进行标注操作的原 始数据文件。因为每一个原始数据文件都具有机密性,出于安全考虑,不能 将某个原始数据文件中的全部数据都展现给同一个用户,因此显示子模块 232仅展示同一个原始数据文件中的部分数据给同一用户,例如最多展示同 一个原始数据文件中的累计100行数据给同一个用户,且在显示区域中每一次只显示这100行数据中的10行数据。通过这种限制用户获取过多数据的方 法,可以在一定程度上保证原始数据文件的安全性,避免严重的泄密情况的 出现。
用户标注子模块233用于接收与显示子模块232显示的用户选择的进行 标注操作的原始数据文件对应的用户输入信息,并根据该用户输入信息生成 与该原始数据文件对应的用户标注信息。
在具体实现中,页面标注模块23可以以多种形式实现,例如页面标注模 块23可以是网页,也可以是用于移动终端的APP,该模块主要通过灵活的 方式分发数据,使多个用户能随时随地对***中的原始数据文件进行标注, 提高文件标注的总体效率。
数据存储模块24用于根据用户标注信息,生成与原始数据文件对应的标 注数据文件。
过滤子模块241用于根据预设的错误过滤规则对原始数据文件对应的用 户标注信息进行过滤,以滤出其中包含的错误信息。该子模块还用于调用数 据库提供的命令实现对文件内的对行去重,例如SQL数据库中可以调用 DISTINCT关键字对行去重。该子模块的作用在于对用户标注信息进行校验, 避免出现用户标注信息错误的情况,其中,预设的错误过滤规则是指根据用 户标注信息分割原始数据文件,并根据用户标注信息中的字段名对每一列数 据进行校验,如果字段与字段名匹配则正确,不匹配则错误,将过滤出的错 误数据重新写入一个新数据文件中。
过滤子模块241进一步用于判断错误信息在用户标注信息中所占的比 例,当比例超过预设阈值时,将错误信息提供给页面标注模块23重新标注。 即判断用于保存错误数据的新数据文件中的数据行数占原文件的总行数的比 例是否超过预设的阈值,如果超过了,就将该新数据文件提供给页面标注模 块23,提示用户对该新数据文件重新进行标注。
第一格式转换子模块242用于根据预设的第一格式转换规则将原始文件 转换成第一目标格式文件,并将第一目标格式文件提供给过滤子模块241过 滤;第二格式转换子模块243,用于根据预设的第二格式转换规则将过滤子 模块241输出的第一目标格式文件转换成第二目标格式文件,并将第二目标 格式文件作为标注数据文件录入数据库中。这两个子模块的作用在于将文件 格式杂乱的原始数据文件转换成统一文件格式,方便统一管理。
图9示出了以第一目标格式为CSV文件格式,第二目标格式为json文件 格式为例的数据存储模块24的业务流程。第一格式转换子模块242先将txt 等格式的原始数据文件统一转换成CSV文件格式并发送给过滤子模块241。 过滤子模块241通过调用数据库去重命令对CSV文件进行对行去重,并通过 用户标注的分隔符对每行数据进行分割,比较分割后得到的字段数是否与用 户标注的字段数相同,如果不同,则说明用户标注的字段数错误,将该错误 文件写入新数据文件。如果相同,则根据用户标注信息对该原始数据文件进 行进一步过滤,在具体实现中,例如,如果用户标注字段中有邮箱字段,则 判断数据中的邮箱字段是否满足邮箱格式;如果用户标注字段中有身份证字 段,则判断数据中的身份证字段是否满足身份证格式;如果用户标注字段中 有QQ号码字段,则判断数据中的QQ号码字段是否满足QQ号码格式;如 果用户标注字段中有手机号码字段,则判断数据中的手机号码字段是否满足 手机号码格式;如果用户标注字段中有银行***字段,则判断数据中的银行 ***字段是否满足银行***格式等。将不符合用户标注字段的数据作为错误 数据写入新数据文件中。将符合用户标注字段的数据传送给第二格式转换子 模块243。当上述新数据文件大小达到一定条件,例如新数据文件内数据行 数占原数据文件的比例达到30%且行数大于100行或者新数据文件内数据总 行数大于10000行时,将该新数据文件发送给页面标注模块23,供用户重新 标注。
第二格式转换子模块243将过滤后的CSV格式文件转换成json格式文 件,并将该文件作为标注数据文件录入***数据库中。
由此可见,在本申请实施例中,通过将数据文件入库数据库的方式实现 了数据文件的统一管理,同时保存了用户标注信息,不会因为文件删除导致 丢失,保证了标注***的安全性;通过预判断处理,提示用户可能的分隔符 和字段名,提高了标注效率,保证了标注***的效率性;通过统一平台选择 性的向用户显示原始数据文件及其对应的机器标注信息并接收用户输入信 息,实现了数据的选择性分发和在同一平台上标注进行多人标注,保证了系 统的机密性和统一性。
实施例三
图3是本申请实施例三提供的一种文件标注方法的流程图。如图3所示, 该方法包括:
步骤S310:将采集到的原始数据文件上传到数据库中。在具体实施中, 该步骤包括对采集到的原始数据进行一系列的初步处理,之后再将初步处理 后的原始数据文件上传到数据库中。在这种情况下,之后对原始数据文件进 行的标注处理均可在数据库中完成,极大的方便了数据的管理,一定程度上 也有利于提高标注效率。
步骤S320:根据预判断处理规则对数据库中的原始数据文件进行预判断 处理,根据预判断处理结果生成与原始数据文件对应的机器标注信息。其中, 机器标注信息包括选定分隔符信息以及预判断字段名信息。该步骤的作用是 根据预设的处理规则,对需要标注的原始数据文件进行一个预处理,通过一 定的方式,选出选定分隔符和预判断字段名。该选定分隔符和预判断字段名 用于当用户进行人工标注时,提示用户可以参考选定分隔符和预判断字段名 来决定用户标注信息。
步骤S330:显示原始数据文件及其对应的机器标注信息,接收与原始数 据文件对应的用户输入信息,根据用户输入信息生成与原始数据文件对应的 用户标注信息。在具体实施中,该步骤主要通过例如目录结构来直观地有序 地展示***中的原始数据文件,并方便用户选择需要标注的数据文件。同时, 该步骤通过网页或APP等方式向用户分发需要标注的数据,既方便用户随时 随地的进行标注,又能让多个用户同时对数据库中的数据进行标注,同时, 还可以只展示部分数据给用户标注,保证了数据文件本身的机密性不受威胁。
步骤S340:根据用户标注信息,生成与原始数据文件对应的标注数据文 件。在具体实施中,该步骤还包括对标注完成后的原始数据文件进行进一步 处理,例如校验用户标注是否正确、将处理好的数据文件转换成统一的文件 格式等,这一系列的处理使得标注后的数据文件具有统一性,方便日后调用。
由此可见,在本申请实施例中,通过将数据文件入库数据库的方式实现 了数据文件的统一管理,同时保存了用户标注信息,不会因为文件删除导致 丢失,保证了标注***的安全性;通过预判断处理,提示标注者可能的分隔 符和字段名,提高了标注效率,保证了标注***的效率性;通过统一平台选 择性的向标注者显示原始数据文件及其对应的机器标注信息并接收用户输入 信息,实现了数据的选择性分发和在同一平台上进行多人标注,保证了*** 的机密性和统一性。
实施例四
图4是本申请实施例四提供的一种文件标注方法的流程图。如图4所示, 该方法包括:
步骤S401:根据文件后缀名识别原始数据文件中的压缩格式文件,对压 缩格式文件进行解压处理。该步骤进一步用于通过文件后缀名选择解压工具, 并递归查找解压得到的文件目录,每当查找到的文件目录中包含压缩文件时, 对压缩文件进行解压缩处理。在具体实现中,步骤S401包括遍历采集到的 原始数据文件,当发现压缩文件时,先识别该压缩文件的后缀名,通过该后 缀名确定需要调用的解压工具,并对该文件进行解压。在完成该文件的解压 后,递归查找解压出来的文件目录中的所有文件,当发现压缩文件时,再一次进行解压操作,直到该文件目录中的所有文件都完成解压。同时,为了方 便后续操作,步骤S401还可以包括对解压出来的目录名和文件名进行检测, 并将所有目录名和文件名转换成预设的统一编码,例如检测解压出的目录名 和文件名中是否存在GBK字符编码,如果有,则全部转换成utf-8字符编码。
步骤S402:获取原始数据文件的文件信息,其中,文件信息用于确定数 据库中的多个原始数据文件的排列顺序。在具体实施中,步骤S402包括采 集每个原始数据文件的大小、创建时间、文本长度等基本信息,并根据该基 础信息确定数据库中文件的排列顺序。步骤S402还可以包括确定步骤S403 需要用到的原始数据文件的标识信息,标识信息是指与每一个原始数据文件 一一对应并具有唯一标识作用的信息,一般情况下,常见的标识信息有MD5 值等,本申请实施例对标识信息不作具体限定,本领域技术人员可以根据具 体情况确定原始数据文件的标识信息,只要该标识信息能起到区分原始数据 文件的作用即可。以标识信息为MD5为例,步骤S402包括根据原始数据文 件的内容计算每个文件的MD5值。
步骤S403:将原始数据文件的标识信息与***数据库中已录入的各个文 件的标识信息进行比较,根据比较结果确定原始数据文件的校验结果。以标 识信息为MD5值为例,步骤S403将原始数据文件的MD5值与数据库中已 经保存的数据文件的MD5值进行比较。如果数据库中没有相同的MD5值, 则说明该原始数据文件未被保存过,校验成功;如果数据库中存在相同的 MD5值,则说明该原始数据文件与数据库中已经保存过的某个数据文件相同,校验失败。
步骤S404:将校验结果为校验成功的原始数据文件的文件内容转换成统 一编码,并将转换后的原始数据文件上传到数据库中。因为每个原始数据文 件的来源各不相同,因此,原始数据文件的文件编码也会各种各样,为了统 一方便的处理所有原始数据文件中的数据内容,步骤S404还包括将校验成 功的原始数据文件的文件内容转换成统一的编码,例如将文件中的全角字符 全部转换成半角字符,将文件内容的字符编码全部转换成utf-8字符编码等。
步骤S405:根据预设的分隔符集合确定原始数据文件中包含的各个分隔 符,分别获取与各个分隔符相对应的数据分割结果,根据数据分割结果从各 个分隔符中确定用于分割文件的选定分隔符。其中,常见的分隔符为标点符 号,如“-”、逗号或空格符号等。对于选定分隔符的确定方法,常见的一种 方法是计算每一行数据被某一分隔符分割后得到的列数的分布情况标准差来 确定哪一个分隔符可以作为选定分隔符。因为在本***中,一个原始数据文 件中的每一行数据在格式上存在着一定的相似性,所以存在一个分隔符能将一个原始数据文件中的每一行数据分割出近似的列数的情况,而列数分布情 况标准差表示的是一行数据被分割后得到的列数与列数平均值的接近程度, 标准差越小说明分割后得到的列数与列数平均值越接近,因此,标准差最小 的分隔符可以将每一行数据最大限度的分割成相同的列数,最有可能是能够 正确分割该数据文件的分隔符,故将其确定为选定分隔符。
步骤S406:通过选定分隔符将原始数据文件分割为多个字段,并根据预 设的字段名匹配规则确定各个字段所对应的预判断字段名。在具体实现中, 步骤S406先利用步骤S405确定的选定分隔符对原始数据文件中的每行数据 进行分割,之后根据预设的字段名匹配规则将分割得到的每一列数据与预设 的字段名进行匹配,最后将符合匹配条件的字段名作为该列字段的预判断字 段名。其中,预设的字段名匹配规则用于判断某一列字段与预设的字段名是 否匹配,常见的匹配规则例如:判断某一列字段中的每一行字段是否均为纯 数字并符合特定长度要求,当符合上述要求的字段行数占到该列字段总行数 的一定比例时,则可以将该列字段的预判断字段名设置为电话号码。本领域 技术人员可以根据具体情况设置匹配规则,本申请对此不作具体限定,只要 能达到确定的预判断字段名能够正确标注该列字段中的较多行的字段即可。
步骤S406还包括当多个字段所对应的预判断字段名相同时,在预判断字 段名中增加字段标识信息。其中,常见的字段标识信息有前缀和/后缀等。例 如,在一个原始数据文件中,用选定分隔符分割后的第一列字段的预判断字 段名为电话号码,第二列字段和第三列字段的预判断字段名也都是电话号码, 则需要在这几个预判断字段名后面添加后缀以示区分,如电话号码1、电话 号码2和电话号码3等。
步骤S407:显示原始数据文件及其对应的机器标注信息,接收与原始数 据文件对应的用户输入信息,根据用户输入信息生成与原始数据文件对应的 用户标注信息。其中,步骤S407通过目录结构展示原始数据文件列表及其 列表中每个原始数据文件对应的机器标注信息,用户可以从该列表中选择需 要进行标注的原始数据文件。该步骤进一步包括显示用户选择的进行标注操 作的原始数据文件。因为每一个原始数据文件都具有机密性,出于安全考虑, 不能将某个原始数据文件中的全部数据都展现给同一个用户,因此步骤S407仅展示同一个原始数据文件中的部分数据给同一用户,例如最多展示同一个 原始数据文件中的累计100行数据给同一个用户,且在显示区域中每一次只 显示这100行数据中的10行数据。通过这种限制用户获取过多数据的方法, 可以在一定程度上保证原始数据文件的安全性,避免严重的泄密情况的出现。 在具体实现中,步骤S407可以通过多种平台实现,例如该平台可以是网页, 可以是客户端,也可以是用于移动终端的APP,该步骤主要通过灵活的方式 分发数据,使多个用户能随时随地对***中的原始数据文件进行标注,提高 文件标注的总体效率。
步骤S408:根据预设的第一格式转换规则将原始文件转换成第一目标格 式文件。
步骤S409:根据预设的错误过滤规则对原始数据文件对应的用户标注信 息进行过滤,以滤出其中包含的错误信息。该步骤还包括调用数据库提供的 命令实现对文件内的对行去重,例如SQL数据库中可以调用DISTINCT关键 字对行去重。该步骤的作用在于对用户标注信息进行校验,避免出现用户标 注信息错误的情况,其中,预设的错误过滤规则是指根据用户标注信息分割 原始数据文件,并根据用户标注信息中的字段名对每一列数据进行校验,如 果字段与字段名匹配则正确,不匹配则错误,将过滤出的错误数据重新写入一个新数据文件中。
步骤S409进一步包括判断错误信息在用户标注信息中所占的比例,当比 例超过预设阈值时,将错误信息提供给用户重新标注。即判断用于保存错误 数据的新数据文件中的数据行数占原文件的总行数的比例是否超过预设的阈 值,如果超过了,就将该新数据文件提供给用户并提示用户对该新数据文件 重新进行标注。
步骤S410:根据预设的第二格式转换规则将过滤后的第一目标格式文件 转换成第二目标格式文件,并将第二目标格式文件作为标注数据文件录入数 据库中。
步骤S408和步骤S410的作用在于将文件格式杂乱的原始数据文件转换 成统一文件格式,方便统一管理。
可选的,在步骤S401之前还可以包括步骤S411:将采集到的原始数据 文件备份到数据库中。该步骤通过将原始数据文件拷贝一份保存到数据库中 作为备份文件,避免出现因原始数据文件丢失而可能造成的损失。
本实施例中各步骤的具体业务流程与上述实施例中各功能模块的具体业 务流程一一对应,在此不再赘述。
由此可见,在本申请实施例中,通过将数据文件入库数据库的方式实现 了数据文件的统一管理,同时保存了用户标注信息,不会因为文件删除导致 丢失,保证了标注***的安全性;通过预判断处理,提示用户可能的分隔符 和字段名,提高了标注效率,保证了标注***的效率性;通过统一平台选择 性的向用户显示原始数据文件及其对应的机器标注信息并接收用户输入信 息,实现了数据的选择性分发和在同一平台上标注进行多人标注,保证了系 统的机密性和统一性。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实 施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意 味着处于本申请实施例的范围之内并且形成不同的实施例。例如,在下面的 权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来 使用。
本申请实施例的各个部件实施例可以以硬件实现,或者以在一个或者多 个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人 员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实 现根据本申请实施例的装置中的一些或者全部部件的一些或者全部功能。本 申请实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设 备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申 请实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个 信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上 提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请实施例进行说明而不是对本申请实施 例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可 设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构 造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件 或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元 件。本申请实施例可以借助于包括有若干不同元件的硬件以及借助于适当编 程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若 干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的 使用不表示任何顺序。可将这些单词解释为名称。