一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文本数据提取方法、系统、存储介质及终端与流程

2023-01-02 15:09:23 来源:中国专利 TAG:


1.本发明涉及数据提取技术领域,尤其涉及一种文本数据提取方法、系统、存储介质及终端。


背景技术:

2.由于业务的需求,需要从文本文件中提取想要的内容,大部分想要的数据都是非结构化数据存储的,而非结构化数据由于数据结构不规则或不完整,处理门槛高。
3.在以往数据的处理方式中,会将text文本内容转换成html,利用python中xpath包对html标签元素进行数据提取,当数据格式不规范时使用这种方式来提取数据会造成提取出来的数据会有缺失并且准确性不高,因为xpath是靠元素定位来提取内容它会随着页面布局的改变而改变,如果页面元素被隐藏或者元素有变动的话,就会出现页面元素定位出错,导致匹配出来的数据不准确的。要想保证从非结构化数据中提取出来的数据准确性高,需要大量的人力成本去提取,这显然是不现实的。因此,有必要设计一种支持差异化匹配的数据提取来找到相关数据。


技术实现要素:

4.本发明的目的在于克服现有技术中对非结构化数据提取不准确的问题,提供了一种文本数据提取方法、系统、存储介质及终端。
5.本发明的目的是通过以下技术方案来实现的:在第一方案中,提供一种文本数据提取方法,包括以下步骤:s1、利用python程序语言读取原始文本数据;s2、提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;s3、通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;s4、提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
6.在一个示例中,一种文本数据提取方法,所述步骤s2中利用正则表达式来提取所述文本数据中的数据标签。
7.在一个示例中,一种文本数据提取方法,所述步骤s3包括:s31、创建一个新的变量名label_list 用来存储步骤s2提取出来的数据内容;s32、统计变量名label_list的总长度;s33、根据所述变量名label_list的总长度生成一个指定范围内的索引值;s34、根据生成的索引范围值进行for循环,循环的结果值用变量名number临时存储;s35、在for循环外面新建一个新的变量名 new_list,用来存储步骤s34中生成的值;s36、对所述变量名 new_list进行for循环,将循环的结果用variable变量名来存
储。
8.在一个示例中,一种文本数据提取方法,所述根据生成的索引范围值进行for循环时,将所述label_list两两分组。
9.在一个示例中,一种文本数据提取方法,还包括步骤:s5、将提取的文本数据,以数据标签为key做为字段名称,以提取的数据做为内容,形成json的数据格式存储在mongodb数据库中。
10.在一个示例中,一种文本数据提取方法,所述利用python程序语言读取原始文本数据,包括:过滤去掉文本数据中的空格、换行符以及特殊符号。
11.在一个示例中,一种文本数据提取方法,在所述步骤s4和步骤s5之间还包括对提取出来的文本数据进行再次过滤,去掉内容前后的空格、换行符以及特殊符号。
12.在第二方案中,提供一种文本数据提取系统,所述系统包括:原始文本数据读取模块,用于利用python程序语言读取原始文本数据;数据标签读取模块,用于提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;索引位置查找模块,通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;文本数据提取模块,用于提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
13.在第三方案中,提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行任意一项所述文本数据提取方法的步骤。
14.在第四方案中,提供一种终端,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行任意一项所述文本数据提取方法的步骤。
15.需要进一步说明的是,上述各选项对应的技术特征在不冲突的情况下可以相互组合或替换构成新的技术方案。
16.与现有技术相比,本发明有益效果是:本发明通过提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值,提取起始数据标签的索引值和结束数据标签索引值之间的文本数据,就得到需要的内容,本发明数据的匹配定位准确,能够从文本文件中提取指定数据标签的内容,提高从非结构化数据中提取数据的准确性。
附图说明
17.图1为本发明实施例示出的一种文本数据提取方法的流程示意图;图2为本发明实施例示出的托伐普坦片药品说明书;图3为本发明实施例示出的具体查找算法流程图;图4为本发明实施例示出的提取数据存储以及清洗的流程示意图。
具体实施方式
18.下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
20.在给出本发明的具体实施例前,对其中涉及到的名词进行解释:python由荷兰数学和计算机科学研究学会的guido van rossum 于1990 年代初设计,作为一门叫做abc语言的替代品。python提供了高效的高级数据结构,还能简单有效地面向对象编程。python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。
21.list也叫列表python中最常用的序列数据类型之一,列表中的元素是有序可重复的,列表中的元素可以是不同数据类型,甚至可以嵌套。
22.mongodb数据库是一个基于分布式文件存储的数据库,由c 语言编写,它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
23.参见图1,在一示例性实施例中,提供一种文本数据提取方法,包括以下步骤:s1、利用python程序语言读取原始文本数据;s2、提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;s3、通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;s4、提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
24.具体地,以常见的药品说明书为例,药品说明书的数据标签会有以下标签名称:药品名称、成份、性状、规格、注意事项、适应症、用法用量等等。数据标签的格式可能会存在以下情况:中括号,花括号,英文括号给包含起来,比如【药品名称】、【成份】、[ 注意事项 ]、(性状)等,数据标签的作用是用来定位,匹配的算法要根据数据标签元素的定位,才能匹配到数据。
[0025]
步骤s1中先利于python程序语言读取文本文件里面的内容,读取出来的数据是一种纯文本,并进行过滤去掉前后的空格、换行符、特殊符号等;然后步骤s2中利用正则表达式来提取所述文本数据中的数据标签,提取出来的数据类型属于list类型,数据标签之间的前后位置顺序没有变化,要根据数据标签来定位,因为前面一个数据标签和后面一个数据标签它们中间的内容是我们最终想要的数据。
[0026]
进一步地,编写一个字符串查找算法,只适合指定文件格式才能使用,基于步骤s2处理后调用该算法,只需要3个参数,第一个参数就是从文本文件中提取出来的字符串内容,第二个参数为起始的数据标签,第三个参数为结尾的数据标签,该算法会提取出你想要的内容。
[0027]
在一个示例中,一种文本数据提取方法,先对原始文本的数据进程一次过滤,过滤内容中的空格、换行符、特殊符号等。把内容里面的数据标签提取出来,如下所示:
,利用正则表达式进行规则匹配,如:“【. 】|\[. \]”,它会提取【注意事项】、[注意事项] 这两种格式。之所以要提取数据标签是因为要根据数据标签来进行内容位置定位并计算出数据标签的索引值。
[0028]
所述步骤s3具体包括:s31、创建一个新的变量名label_list 用来存储步骤s2提取出来的数据内容,它的数据类型是python中list数据类型,list数据类型索引值是从0开始的,需要对list里面的值进行分组,分成每2个值为一组;s32、统计变量名label_list的总长度;s33、根据所述变量名label_list的总长度生成一个指定范围内的索引值,例如,1为起始值,变量名label_list总长度为结束值,变量名label_list总长度为10,生成的索引值就是 1到 10之间的数值。
[0029]
s34、根据生成的索引范围值进行for循环,循环的结果值用变量名number临时存储,所述根据生成的索引范围值进行for循环时,将所述label_list两两分组;在循环中需要判断两种情况,第一种情况是:当变量名number的值为1时,取label_list列表索引0和1分为一组,如:[ label_list[0] , label_list[1] ]。第二种情况是:当变量名number的值不为1时,取label_list列表里面变量number-1 和label_list列表里面的变量number为一组,如:[label_list[number-1] ,label_list[number] ]。
[0030]
s35、在for循环外面新建一个新的变量名 new_list,用来存储步骤s34中生成的值,其中,变量名 new_list的数据类型也要为list数据类型,最终对变量名 label_list 进行拆分分组的结果如下所示:。
[0031]
s36、对所述变量名 new_list进行for循环,循环的结果如下所示:并将循环的结果用variable变量名来存储。
[0032]
在上述分组算法的基础上,只需要输入3个参数即可提取相应数据,第一个参数为txt原始数据,第二个参数为 variable[0]的值,第三个参数为variable[1]的值,如图2所示,以“托伐普坦片”药品说明书为例,如果想提取“性状”的内容,先把已经提取出来的数据标签传入算法里面,算法会自动计算起始数据标签的索引位置和结束数据标签索引位置,最终会根据索引的值提取两者之间的内容。
[0033]
在一个示例中,一种文本数据提取方法,具体如图3所示,输入原始文本数据,通过相应的程序(python)读取原始文本数据,若起始标签(起始数据标签)以及结束标签(结束数据标签)存在时,利用上述的字符串查找算法计算看相应的起始标签索引值和结束标签索引值,并提取数据,而当起始标签和结束标签中至少一个不存在时,需要进行错误提示并返回重新读取。
[0034]
在一个示例中,如图4所示,一种文本数据提取方法,还包括步骤:s5、将提取的文本数据,以数据标签为key做为字段名称,以提取的数据做为内容,格式为:“数据标签”:“内容”,形成json的数据格式存储在mongodb数据库中。
[0035]
在一个示例中,一种文本数据提取方法,如图4所示,在所述步骤s4和步骤s5之间还包括对提取出来的文本数据进行再次过滤,去掉内容前后的空格、换行符以及特殊符号。
[0036]
在另一示例性实施例中,提供一种文本数据提取系统,所述系统包括:原始文本数据读取模块,用于利用python程序语言读取原始文本数据;数据标签读取模块,用于提取所述原始文本数据中的数据标签,根据所述数据标签定位相应的文本数据并计算出数据标签的索引值;索引位置查找模块,通过字符串查找算法计算起始数据标签的索引值和结束数据标签索引值;文本数据提取模块,用于提取所述起始数据标签的索引值和结束数据标签索引值之间的文本数据。
[0037]
在另一示例性实施例中,本发明提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述多视角新闻信息快速检索方法。
[0038]
基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0039]
在另一示例性实施例中,本发明提供一种终端,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行所述多视角新闻信息快速检索方法。
[0040]
处理器可以是单核或者多核中央处理单元或者特定的集成电路,或者配置成实施本发明的一个或者多个集成电路。
[0041]
本说明书中描述的主题及功能操作的实施例可以在以下中实现:有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。
[0042]
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或
多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
[0043]
适合用于执行计算机程序的处理器包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。
[0044]
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
[0045]
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
[0046]
以上具体实施方式是对本发明的详细说明,不能认定本发明的具体实施方式只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演和替代,都应当视为属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献