CN112712415B - 一种基于电子元器件采购bom核价的表格预处理方法 - Google Patents
一种基于电子元器件采购bom核价的表格预处理方法 Download PDFInfo
- Publication number
- CN112712415B CN112712415B CN202110069429.6A CN202110069429A CN112712415B CN 112712415 B CN112712415 B CN 112712415B CN 202110069429 A CN202110069429 A CN 202110069429A CN 112712415 B CN112712415 B CN 112712415B
- Authority
- CN
- China
- Prior art keywords
- col
- column
- cell
- matrix
- field
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0611—Request for offers or quotes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供一种基于电子元器件采购BOM核价的表格预处理方法,包括:步骤1,读入表格;步骤2,合并单元格的处理;步骤3,矩阵Z的预处理;步骤4,提取单元格特征;步骤5,确认表头和物料部分;步骤6,确认列属性;步骤7,提取矩阵列字段的特征向量;步骤8,最终列确认。本方法能够对多源的电子元器件的BOM采购表格预处理,提取出于BOM核价相关的有效信息,包括与物料确认相关的信息、单价信息、采购总量信息,为BOM核价提供有效支撑,提取表格中BOM核价的有效信息,去除表格中的冗余信息,减少其他无效信息的影响,支撑BOM核价功能能够适应多源的电子元器件采购BOM表格,减少人工干预,节省时间、提高效率。
Description
技术领域
本发明涉及表格处理技术领域,具体涉及一种基于电子元器件采购BOM核价的表格预处理方法。
背景技术
对于电子元器件行业的采购BOM表格的物料、单价、成本核算等,原始方式是采用人工的方式,对BOM表格中的物料进行确认,然后根据表格中提供的单价和总量信息计算BOM表中的原始成本,并根据物料实际对应的单价和总量计算得到实际成本,并对物料的单价和成本进行比较。人工方式仍然是目前的主流方法,但是该方法耗费时间长,且需要核对人员具有较为丰富的采购经验和较为广泛的产品认知。随之出现的方法是,利用计算机实现BOM表产品的确认,目前在计算机识别BOM表产品的主要方式为,规定表格格式、输入格式等,规范限制较多,该方法能够在产品确认上节省较多的时间,但由于BOM采购表格中每家企业的传统或采购员的习惯等问题,基本上都需要进行表格的调整、转换等操作,将其按照模板进行重新构成。
发明内容
本发明的目的是:针对BOM核价的问题,本发明提供一种基于电子元器件采购BOM核价的表格预处理方法,能够对多源的电子元器件的BOM采购表格预处理,提取出于BOM核价相关的有效信息,包括与物料确认相关的信息、单价信息、采购总量信息。本发明针对BOM核价的功能,所要实现的功能为:(1)找到产品物料在表格中的起始位置。(2)确认有无表头信息。(3)确定表格中的有效列和其对应属性,属性包括确认产品相关、价格相关、采购总量相关。(4)确定表格中的产品及对应的价格和采购总量信息。一行数据为一条信息,一条信息包括,产品确定相关的信息、价格相关的信息、采购总量相关的信息。其中确定产品相关的信息为必包含项,价格相关、采购总量相关为非必包含项。从而实现:1、为BOM核价提供有效支撑。提取表格中BOM核价的有效信息,去除表格中的冗余信息,减少其他无效信息的影响。用于产品确定、单价对比、成本核算等。2、支撑BOM核价功能能够适应多源的电子元器件采购BOM表格,对用户上传的BOM表格不设限,减少人工干预,节省时间、提高效率。
为了解决上述问题,本发明所采用的技术方案是:
一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,包括:
步骤1,读入表格:判断表格中每个单元格的内容属性,并依据每个单元格的内容属性将每个单元格的内容以指定形式读入;
步骤2,合并单元格的处理:将表格的内容,转换成矩阵Z表示,矩阵Z的大小为M×N,其中M对应的是表格的行数,N对应的是表格的列数;
步骤3,矩阵Z的预处理:去除矩阵Z中的空白行、空白列、相同行、相同列以及相同行元素,而后得到矩阵X,此时矩阵X的大小为m×n,其中m表示矩阵X的行数,n表示矩阵X的列数;
步骤4,提取单元格特征:确定字段特征向量;
步骤5,确认表头和物料部分:确认有效矩阵及有无表头的属性特征;
步骤6,确认列属性:将提取的列属性分为三大类:产品确认的相关列、价格列、采购数量列;根据是否有表头,分别进入有表头确认列的部分进行列属性的确认或进入无表头确认列的部分进行列属性的确认;
步骤7,提取矩阵列字段的特征向量:确定列字段的特征向量;
步骤8,最终列确认:确认产品确认的相关列、最终价格列、最终数量列,并返回矩阵U;U由产品确认的相关列,最终价格列、最终数量列组成。
进一步的,步骤1读入表格,包括如下步骤:
步骤1.1:读入表格,判断其单元格中的内容属性;
步骤1.2:判断属性是否为number。若属性number判断成立,则判断其是否为整数,若为整数,则将该内容以整数的形式读入;若不为整数,则判断其是否为小数,若为小数,则将该内容以保留八位小数之后的形式读入;若属性number判断不成立,则进入步骤1.3;
步骤1.3:判断属性是否为empty;若成立,则将该内容以‘’空的形式读入;若不成立,则进入步骤1.4;
步骤1.4:将属性判断为非number和empty的内容,以字符串的形式读入。
进一步的,步骤2合并单元格的处理,包括如下步骤:
步骤2.1:得到合并单元格的起始行位置、结束行位置、起始列位置、结束列位置;
步骤2.2:若合并单元格的内容不为空,则在其合并位置的单元格,均写入其内容;将合并的单元格,转换为非合并的单元格;
步骤2.3:将表格的内容,转换成矩阵Z表示,矩阵Z的大小为M×N,其中M对应的是表格的行数,N对应的是表格的列数。
进一步的,步骤3矩阵Z的预处理,包括如下步骤:
步骤3.1:去除矩阵Z中的空白行、空白列;
步骤3.2:去除矩阵Z中的相同行、相同列;相同行的意义为,存在两行及以上行对应元素均相同,则只保留位置靠前的一行;相同列的意义为,存在两列及以上列对应元素均相同,则只保留位置靠前的一列,且保证其原始矩阵Z中的行或列前后顺序不发生变换;
步骤3.3:去掉相同行元素;矩阵Z中的行内容,若满足行元素相同,且行长度大于1,则将该行从矩阵Z中删除,其中的行长度,表示为行的元素个数;
经过矩阵预处理后得到矩阵X,此时矩阵X的大小为m×n,其中m表示矩阵X的行数,n表示矩阵X的列数。
进一步的,步骤4提取单元格特征,确定字段特征向量,包括如下步骤:
字段特征向量确定:F_cell=[cell1,cell2,cell3,cell4,cell5,cell6],其中cell1表示单元格中有无内容,cell2表示单元格中的汉字字段个数,cell3表示单元格中的英文字段个数,cell4表示单元格中的小数个数,cell5表示单元格中的整数个数,cell6表示单元格中其他字符的个数;字段特征向量提取步骤为:
步骤4.1:cell1的确定,cell1取值范围为{0,1};当cell1=0时,表示该字段内容为空,且确定该字段的特征向量为:F_cell=[0,0,0,0,0,0],无需向下继续提取特征向量的对应元素值;当cell1=1时,表示该字段内容不为空,则进入下一步骤,继续进行特征向量其他元素对应值的提取;
步骤4.2:cell2的确定,cell2取值范围为[0,+∞);以字段中所有非汉字的字符为分隔符,提取包含汉字的部分,将汉字字段的个数作为cell2的实际值,并将删除汉字部分的字段,作为下一步骤的输入;
步骤4.3:cell3的确定,cell3取值范围为[0,+∞);以字段中所有非英文、空格的字符为分隔符,提取包含英文的部分,将英文字段的个数作为cell3的实际值,并将删除英文部分的字段,作为下一步骤的输入;
步骤4.4:cell4,cell5的确认,cell4取值范围为[0,+∞),cell5取值范围为[0,+∞);提取字段中的数字部分,将包含小数点的小数个数作为cell4的实际值,将不包含小数点的整数个数作为cell5的实际值,将删除数字部分的字段,作为下一步骤的输入;
步骤五:cell6的确认,cell6的取值范围为[0,+∞);计算剩余字段的长度,即为cell6的实际值;
则由cell1,cell2,cell3,cell4,cell5,cell6实际值,构成的特征向量F_cell,即为该输入字段对应的特征向量。
进一步的,步骤5确认表头和物料部分,包括如下步骤:
步骤5.1:计算特征向量F_cellij;其中F_cellij表示矩阵X中第i行第j列对应元素的特征向量,每个特征向量有6个元素构成,表示为:
F_cellij=[cellij1,cellij2,cellij3,cellij4,cellij5,cellij6]
步骤5.2:统计行特征向量F_tci;其中F_tci表示矩阵X中第i行所有对应元素中特征向量对应位置的和,即:
其中,n表示矩阵X的列数,即矩阵X中第i行的元素个数;
步骤5.3:计算行R_rowi;其中R_row具体计算表示为:
步骤5.4:确定阈值threshold=0.12;该阈值是通过训练集中的表头和物料部分的R_row统计得到的阈值,小于该阈值的行,为表头行;大于该阈值的行,为物料行;若R_row1≥threshold,即矩阵X的第一行对应的R_row小于阈值threshold,则该表格无表头,矩阵X中的内容均为物料部分;否则寻找第一个满足条件R_rowi<threshold且R_rowi+1≤threshold的i,则i和i+1行,为表头和物料的分界位置,即矩阵的第i行,为最靠近物料的表头位置;第i行的内容是所要提取的表头内容,第i+1行内容是物料内容开始的位置,即第i+1以及向后的所有行,均为物料内容;
步骤5.5:确认有效矩阵及有无表头的属性特征;根据步骤5.4确认的位置行i,取矩阵X的第i行到结束行,且需要去掉该部分矩阵中的空白行、空白列、相同行、相同列、相同元素行;其步骤与矩阵Z预处理的步骤相同,得到新的矩阵Y,作为确认表头和物料部分的有效矩阵;并根据步骤5.4,确认表格有无表头的属性特征head,当head=0时,表格不存在表头,即矩阵Y全部为物料信息;当head=1时,表格存在,即矩阵Y的第一行为表头信息,第二行开始为物料信息。
进一步的,步骤6确认列属性,包括如下步骤:
将提取的列属性分为三大类:产品确认的相关列、价格列、采购数量列;其中产品确认的相关列,包括物料的品类列、品牌列、封装列、原厂型号列、物料描述列以及为产品确认提供有效信息的列;
步骤6.1:确认矩阵Y,对应的属性特征head的值;若head=1时,则进入有表头确认列的部分进行列属性的确认;若head=0时,则进入无表头确认列的部分进行列属性的确认;
(1)有表头确认列属性
步骤6.1.1:确认产品确认的相关列;提取表头的内容,是否包含产品确认相关列的对应表头内容,且不包含表头非提取内容的字段对应列,且物料部分不全部为空;满足条件的表头元素对应列,即为产品确认需要的相关列,无需向下继续进行列属性的确认;无法确定列属性的表头元素,向下进行列属性的确认;
步骤6.1.2:确认价格列;提取表头的元素,是否包含价格相关列的对应表头内容,且不包含非表头内容的字段对应列,且物料部分不全部为空;满足条件的表头元素对应列,即为价格的相关列,无需向下继续进行列属性的确认;无法确定列属性的表头元素,向下进行列属性的确认;
步骤6.1.3:确认数量列;提取表头的元素,是否包含数量相关列的对应表头内容,且不包含非表头内容的字段对应列,且物料部分不全部为空;满足条件的表头元素对应列,即为数量的相关列;无法确定列属性的不为空的表头元素,则该元素对应的列属性,其不在本发明提取的属性内;
步骤6.1.4:确认提取未成功的表头字段中,是否存在表头字段为空的列,若存在,将此列内容在无表头确认列部分,确认其列属性,并将其添加到对应的产品确认的相关列、价格列、数量列对应列表中;
(2)无表头确认列属性
步骤6.2.1:组合字段;初始化字段为空;判断矩阵第j列的元素,是否为空,为空时,不进行操作;不为空时,将该元素的后面加上‘;’与字段进行连接,并最终记录不为空的元素总数为Lj;若组成的字段为空,则可得到F_colj=[0,0,0,0,0,0,0,0,0,0],无需向下进行列特征向量的计算;若组成的字段不为空,则进入下一步骤,进行特征向量的提取;
步骤6.2.2:将组合的字段,利用提取矩阵列的特征向量,提取列向量特征F_colj=[colj1,colj2,colj3,colj4,colj5,colj6,colj7,colj8,colj9,colj10];
步骤6.2.3:获得矩阵的列特征向量;校正特征向量中的元素colj1,使colj1=Lj;校正特征向量中的元素colj10,使colj10=colj10-Lj;
步骤6.2.4:计算计算列R_colj;其中R_col具体计算表示为:
步骤6.2.5:确认产品确认的相关列;确认条件为:R_colj≥decompose_threshold或者col2+col3+col4+col5>Lj,其中decompose_threshold是由训练集统计得到的列属性的阈值,decompose_threshold=0.3;Lj表示矩阵中第j列对应的字段不为空的元素总数;若矩阵第j列的R_colj和特征向量F_colj满足上述条件时,则矩阵第j列为与产品确认的相关列,列属性确认完成,无需向下进行;若不满足上述条件是,则进入下一步骤确认列属性;
步骤6.2.6:确认数量列;确认条件为:colj9≥1,且且不为整数或带有数量单位前面数字的元素,不为空的元素必须在列的尾部,同时不能为数字顺序增加的列;若满足以上条件时,矩阵的第j列为价格列,列属性确认完成,无需向下进行;若不满足上述条件是,则进入下一步骤确认列属性;
步骤6.2.7:确认价格列;确认条件为:colj8≥1,且且不为纯小数或带有价格单位前面数字的元素,不为空的元素必须在列的尾部;若满足以上条件时,矩阵的第j列为价格列,列属性确认完成;若不满足上述条件时,则矩阵的第j列为非预处理提取内容。
进一步的,步骤7提取矩阵列字段的特征向量,包括如下步骤:
特征向量确定:F_col=[col1,col2,col3,col4,col5,col6,col7,col8,col9,col10],其中col1表示字段内容是否为空,col2表示字段内容中的包含品类的字段个数,col3表示字段内容中的包含品牌的字段个数,col4表示字段内容中的包含封装的字段个数,col5表示字段内容中包含单位的字段个数,col6表示字段内容中的汉字字段的个数,col7表示字段内容中表示英文字段的个数,col8表示字段内容中小数的个数,col9表示字段内容中整数的个数,col10表示字段内容中其他字符的个数;
特征向量提取步骤为:
步骤7.1:col1的确定,col1取值范围为{0,1};当col1=0时,表示该字段内容为空,且确定单元格特征向量为:F_col=[0,0,0,0,0,0,0,0,0,0],进入确认表头和物料部分;col1=1时,表示该字段内容不为空,并进入下一步骤;
步骤7.2:col2的确定,col2取值范围为[0,+∞);提取字段中所有品类的字段,并统计其数量,作为col2的实际值;将删除提取的品类字段的字段内容,作为下一步骤的输入;
步骤7.3:col3的确定,col3取值范围为[0,+∞);提取字段中所有品牌的字段,并统计其数量,作为col3的实际值;将删除提取的品牌字段的字段内容,作为下一步骤的输入;
步骤7.4;col4的确定,col4取值范围为[0,+∞);提取字段中所有封装的开头+数字的字段;和类似5*6*7、5×6×7、5*8、5×7这种表示封装的字段,并统计其数量,作为col4的实际值;将删除提取的封装信息的字段内容,作为下一步骤的输入;
步骤7.5:col5的确定,col5的取值范围为[0,+∞);提取字段中所有单位前+数字的字段,并统计其数量,作为col5的实际值;将删除提取的单位信息的字段内容,作为下一步骤的输入;
步骤7.6:col6的确定,col6的取值范围为[0,+∞);提取字段中所有非汉字的字符为分隔符,提取包含汉字的部分,将汉字字段的个数作为col6的实际值,并将去除汉字部分的字段内容,作为下一步骤的输入;
步骤7.7:col7的确定,col7取值范围为[0,+∞);以字段中所有非英文、空格的字符为分隔符,提取包含英文的部分,将英文字段的个数作为col7的实际值,并将去除英文部分的字段,作为下一步骤的输入;
步骤7.8:col8,col9的确认,col4的补充,col8取值范围为[0,+∞),col9取值范围为[0,+∞);提取字段中的数字部分,将包含小数点的小数个数作为col8的实际值;将不包含小数点的整数且该整数在封装纯数字的表示中,则更新col4的值,即加上此部分的表示封装的字段数量;将不包含小数点的整数且该整数不在封装纯数字的表示中,则将此类的整数的个数作为col9的实际值;将去除数字部分的字段,作为下一步骤的输入;
步骤7.9:col10的确认,col10的取值范围为[0,+∞);计算剩余字段的长度,即为col10的实际值。
进一步的,步骤8最终列确认,包括如下步骤:
步骤8.1:确认产品确认的相关列,即由步骤6列属性的确认的关于产品确认的列,即为最终的产品确认相关列;
步骤8.2:确认最终价格列;若存在两个或两个以上的价格列,则计算每个价格列对应的平均价格,将平均价格较高的列,作为最终价格列使用;
步骤8.3:确认最终数量列;若存在两个或两个以上的数量列,则计算每个数量列对应的平均数量,将平均数量较高的列,作为最终数量列使用;
步骤8.4:返回矩阵U;U由产品确认的相关列,价格列、数量列组成,并返回d=[d1,d2,d3],其中d1表示产品确认的相关列在矩阵U中的最后一列的位置,若不存在产品确认相关列时,d1=0;d2表示数量列的位置,若不存在数量列时,d2=0;d3表示价格列的位置,若不存在价格列时,d3=0。
本发明实施例提供的上述技术方案的有益效果至少包括:本发明减少了以往BOM采购表格中的人工调整处理时间,能够自动提取BOM核价的有效信息,能够为BOM核价提供有效支撑。本发明的优点体现在:
(1)便捷性,对上传的BOM表格不设限,极大方便用户。
(2)节省时间,没有模板格式、没有输入限制,直接上传,提高用户的工作效率。
(3)门槛低,无需对表格进行调整,可直接进行上传原始表格文件,无需专业采购人员的调整。
(4)通用性,根据训练集BOM表,统计其规律,该方法具备一定通用性。
(5)学习性,对于有表头部分的表格列确认,具备学习性。
(6)最大概率选择性,对于无表头的表格列确认,对于同样规律的表格,会结合实际表格统计的规律,选择较大概率的列,作为提取对应的有效列的准则。
(7)专业性,本发明是建立在电子元器件的采购BOM表的基础上,结合行业内的采购知识、专家知识,统计行业中BOM表的规律,得到该BOM表格有效信息提取方法,具备一定的专业性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例公开的基于电子元器件采购BOM核价的表格预处理方法的流程图。
具体实施例
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种基于电子元器件采购BOM核价的表格预处理方法,包括:(1)读入表格;(2)合并单元格的处理;(3)矩阵Z的预处理;(4)提取单元格特征;(5)确认表头和物料部分;(6)确认列属性;(7)提取矩阵列字段的特征向量;(8)最终列确认这八大步骤。下面对本方法进行详细描述。
1、训练集数据情况:
收集电子元器件行业中的5000个原始采购BOM表。其中表头信息15469条(一个表格中可能包含0条或多条表头)、物料产品信息258413条。
2、电子元器件行业的采购BOM核价的表格预处理方法步骤
(一)读入表格
步骤一:读入表格,判断其单元格中的内容属性。
步骤二:判断属性是否为number。若属性number判断成立,则判断其是否为整数,若为整数,则将该内容以整数的形式读入;若不为整数,则判断其是否为小数,若为小数,则将该内容以保留八位小数之后的形式读入。若属性number判断不成立,则进入步骤三。
步骤三:判断属性是否为empty。若成立,则将该内容以‘’空的形式读入;若不成立,则进入步骤四。
步骤四:将属性判断为非number和empty的内容,以字符串的形式读入。
(二)合并单元格的处理
步骤一:得到合并单元格的起始行位置、结束行位置、起始列位置、结束列位置。
步骤二:若合并单元格的内容不为空,则在其合并位置的单元格,均写入其内容。将合并的单元格,转换为非合并的单元格。
步骤三:将表格的内容,转换成矩阵Z表示,矩阵Z的大小为M×N,其中M对应的是表格的行数,N对应的是表格的列数。
(三)矩阵Z预处理
步骤一:去除矩阵Z中的空白行、空白列。
步骤二:去除矩阵Z中的相同行、相同列(相同行的意义为,存在两行及以上行对应元素均相同,则只保留位置靠前的一行;相同列的意义为,存在两列及以上列对应元素均相同,则只保留位置靠前的一列),且保证其原始矩阵Z中的行或列前后顺序不发生变换。
步骤三:去掉相同行元素。矩阵Z中的行内容,若满足行元素相同,且行长度大于1(行长度,表示为行的元素个数),则将该行从矩阵Z中删除。
经过矩阵预处理后得到矩阵X,此时矩阵X的大小为m×n,其中m表示矩阵X的行数,n表示矩阵X的列数。
(四)提取单元格特征
字段特征向量确定:F_cell=[cell1,cell2,cell3,cell4,cell5,cell6],其中cell1表示单元格中有无内容,cell2表示单元格中的汉字字段个数,cell3表示单元格中的英文字段个数,cell4表示单元格中的小数个数,cell5表示单元格中的整数个数,cell6表示单元格中其他字符的个数。
特征向量提取步骤为:
步骤一:cell1的确定,cell1取值范围为{0,1}。当cell1=0时,表示该字段内容为空,且确定该字段的特征向量为:F_cell=[0,0,0,0,0,0],无需向下继续提取特征向量的对应元素值;当cell1=1时,表示该字段内容不为空,则进入下一步骤,继续进行特征向量其他元素对应值的提取。
步骤二:cell2的确定,cell2取值范围为[0,+∞)。以字段中所有非汉字的字符为分隔符,提取包含汉字的部分,将汉字字段的个数作为cell2的实际值,并将删除汉字部分的字段,作为下一步骤的输入。
步骤三:cell3的确定,cell3取值范围为[0,+∞)。以字段中所有非英文、空格的字符为分隔符,提取包含英文的部分,将英文字段的个数作为cell3的实际值,并将删除英文部分的字段,作为下一步骤的输入。
步骤四:cell4,cell5的确认,cell4取值范围为[0,+∞),cell5取值范围为[0,+∞)。提取字段中的数字部分,将包含小数点的小数个数作为cell4的实际值,将不包含小数点的整数个数作为cell5的实际值,将删除数字部分的字段,作为下一步骤的输入。
步骤五:cell6的确认,cell6的取值范围为[0,+∞)。计算剩余字段的长度,即为cell6的实际值。
则由cell1,cell2,cell3,cell4,cell5,cell6实际值,构成的特征向量F_cell,即为该输入字段对应的特征向量。
(五)确认表头和物料部分
步骤一:计算特征向量F_cellij。其中F_cellij表示矩阵X中第i行第j列对应元素的特征向量,每个特征向量有6个元素构成,表示为:
F_cellij=[cellij1,cellij2,cellij3,cellij4,cellij5,cellij6]
步骤二:统计行特征向量F_tci。其中F_tci表示矩阵X中第i行所有对应元素中特征向量对应位置的和,即:
其中,n表示矩阵X的列数,即矩阵X中第i行的元素个数。
步骤三:计算行R_rowi。其中R_row具体计算表示为:
步骤四:确定阈值threshold=0.12(该阈值是通过训练集中的表头和物料部分的R_row统计得到的阈值,小于该阈值的行,为表头行;大于该阈值的行,为物料行。)。若R_row1≥threshold(即矩阵X的第一行对应的R_row小于阈值threshold),则该表格无表头,矩阵X中的内容均为物料部分。否则寻找第一个满足条件R_rowi<threshold且R_rowi+1≤threshold的i,则i和i+1行,为表头和物料的分界位置,即矩阵的第i行,为最靠近物料的表头位置(第i行的内容是所要提取的表头内容),第i+1行内容是物料内容开始的位置,即第i+1以及向后的所有行,均为物料内容。
步骤五:确认有效矩阵及有无表头的属性特征。根据步骤四确认的位置行i,取矩阵X的第i行到结束行,且需要去掉该部分矩阵中的空白行、空白列、相同行、相同列、相同元素行(其步骤与矩阵Z预处理的步骤相同),得到新的矩阵Y,作为确认表头和物料部分的有效矩阵。并根据步骤四,确认表格有无表头的属性特征head,当head=0时,表格不存在表头,即矩阵Y全部为物料信息;当head=1时,表格存在,即矩阵Y的第一行为表头信息,第二行开始为物料信息。
(六)确认列属性
列属性,本发明根据电子元器件采购BOM表中的产品确认、核价等功能提供服务,因此将提取的列属性分为三大类:产品确认的相关列、价格列、采购数量列。其中产品确认的相关列,包括物料的品类列、品牌列、封装列、原厂型号列、物料描述列以及其他为产品确认提供有效信息的列。
步骤一:确认矩阵Y,对应的属性特征head的值。若head=1时,则进入有表头确认列的部分进行列属性的确认;若head=0时,则进入无表头确认列的部分进行列属性的确认。
(1)有表头确认列属性
步骤一:确认产品确认的相关列。提取表头的内容,是否包含产品确认相关列的对应表头内容,且不包含表头非提取内容的字段对应列,且物料部分不全部为空。满足条件的表头元素对应列,即为产品确认需要的相关列,无需向下继续进行列属性的确认。无法确定列属性的表头元素,向下进行列属性的确认。
表1产品确认相关列对应的表头内容
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | …… |
内容 | 名称 | 型号 | 品名 | 品牌 | 描述 | Footprint | 参数 | PartType | …… |
表2表头非提取内容的表头内容
序号 | 1 | 2 | …… |
内容 | 采购商名称 | 客户料号 | …… |
步骤二:确认价格列。提取表头的元素,是否包含价格相关列的对应表头内容,且不包含非表头内容的字段对应列,且物料部分不全部为空。满足条件的表头元素对应列,即为价格的相关列,无需向下继续进行列属性的确认。无法确定列属性的表头元素,向下进行列属性的确认。
表3价格列对应的表头内容
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …… |
内容 | 报价 | 单价 | 价格 | 采购价 | 含税售价 | 含税价 | Price | …… |
步骤三:确认数量列。提取表头的元素,是否包含数量相关列的对应表头内容,且不包含非表头内容的字段对应列,且物料部分不全部为空。满足条件的表头元素对应列,即为数量的相关列。无法确定列属性的不为空的表头元素,则该元素对应的列属性,其不在本发明提取的属性内。
表4数量列对应的表头内容
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …… |
内容 | 使用量 | 总量 | 数量 | Quantity | 用量 | 总需求 | 使用数量 | …… |
步骤四:确认提取未成功的表头字段中,是否存在表头字段为空的列,若存在,将此列内容在无表头确认列部分,确认其列属性,并将其添加到对应的产品确认的相关列、价格列、数量列对应列表中。
(2)无表头确认列属性
(2.1)列特征向量F_col的计算
步骤一:组合字段。初始化字段为空。判断矩阵第j列的元素,是否为空,为空时,不进行操作;不为空时,将该元素的后面加上‘;’与字段进行连接,并最终记录不为空的元素总数为Lj。若组成的字段为空,则可得到F_colj=[0,0,0,0,0,0,0,0,0,0],无需向下进行列特征向量的计算;若组成的字段不为空,则进入下一步骤,进行特征向量的提取。
步骤二:将组合的字段,利用提取矩阵列的特征向量,提取列向量特征F_colj=[colj1,colj2,colj3,colj4,colj5,colj6,colj7,colj8,colj9,colj10](先组合字段再求特征向量的方法的时间复杂度为O(n),相较于矩阵列每个元素提取特征向量后进行求和的时间复杂度O(n2),在速度上明显提高)。
步骤三:获得矩阵的列特征向量。由于组合字段的原因,会造成某些特征元素的减少或降低,通过此步骤进行校正。校正特征向量中的元素colj1,使colj1=Lj;校正特征向量中的元素colj10,使colj10=colj10-Lj。
(2.2)列属性的确认
步骤一:计算计算列R_colj。其中R_col具体计算表示为:
步骤二:确认产品确认的相关列。确认条件为:R_colj≥decompose_threshold或者col2+col3+col4+col5>Lj,其中decompose_threshold是由训练集统计得到的列属性的阈值,decompose_threshold=0.3;Lj表示矩阵中第j列对应的字段不为空的元素总数。若矩阵第j列的R_colj和特征向量F_colj满足上述条件时,则矩阵第j列为与产品确认的相关列,列属性确认完成,无需向下进行;若不满足上述条件是,则进入下一步骤确认列属性。
步骤三:确认数量列。确认条件为:colj9≥1,且且不为整数或带有数量单位前面数字的元素,不为空的元素必须在列的尾部,同时不能为数字顺序增加的列。若满足以上条件时,矩阵的第j列为价格列,列属性确认完成,无需向下进行;若不满足上述条件是,则进入下一步骤确认列属性。
步骤四:确认价格列。确认条件为:colj8≥1,且且不为纯小数或带有价格单位前面数字的元素,不为空的元素必须在列的尾部。若满足以上条件时,矩阵的第j列为价格列,列属性确认完成;若不满足上述条件时,则矩阵的第j列为非预处理提取内容。
(七)提取矩阵列字段的特征向量
特征向量确定:F_col=[col1,col2,col3,col4,col5,col6,col7,col8,col9,col10],其中col1表示字段内容是否为空,col2表示字段内容中的包含品类的字段个数,col3表示字段内容中的包含品牌的字段个数,col4表示字段内容中的包含封装的字段个数,col5表示字段内容中包含单位的字段个数,col6表示字段内容中的汉字字段的个数,col7表示字段内容中表示英文字段的个数,col8表示字段内容中小数的个数,col9表示字段内容中整数的个数,col10表示字段内容中其他字符的个数。
特征向量其提取步骤为:
步骤一:col1的确定,col1取值范围为{0,1}。当col1=0时,表示该字段内容为空,且确定单元格特征向量为:F_col=[0,0,0,0,0,0,0,0,0,0],进入确认表头和物料部分;col1=1时,表示该字段内容不为空,并进入下一步骤。
步骤二:col2的确定,col2取值范围为[0,+∞)。提取字段中所有品类(品类中间可存在空格,存在英文的,不区分大小写)的字段,并统计其数量,作为col2的实际值;将删除提取的品类字段的字段内容,作为下一步骤的输入(具体品类字段见表5)。
表5品类
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …… |
名称 | 力敏电阻 | MLCC | SMD电容 | Y电容 | CL电容 | 磁环电感 | 铝电解电容 | …… |
步骤三:col3的确定,col3取值范围为[0,+∞)。提取字段中所有品牌(品类中间可存在空格,存在英文的,不区分大小写)的字段,并统计其数量,作为col3的实际值;将删除提取的品牌字段的字段内容,作为下一步骤的输入(具体品类字段见表6)。
表6品牌
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | …… |
名称 | 东电化 | 国巨 | 恩智浦 | 夏普 | 华新科技 | 西安创联 | SAMSUNG | 旺诠 | …… |
步骤四;col4的确定,col4取值范围为[0,+∞)。提取字段中所有封装的开头+数字的字段(英文不区分大小写)和类似5*6*7、5×6×7、5*8、5×7(符号×,若以字母x表示,则不区分大小写)这种表示封装的字段,并统计其数量,作为col4的实际值;将删除提取的封装信息的字段内容,作为下一步骤的输入(具体封装开头见表7)。
表7封装有关字段
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | …… |
名称 | led-m | led- | SOP | SOP- | SOT | SOT- | IRM | IRM- | …… |
步骤五:col5的确定,col5的取值范围为[0,+∞)。提取字段中所有单位前+数字的字段(英文不区分大小写),并统计其数量,作为col5的实际值;将删除提取的单位信息的字段内容,作为下一步骤的输入(具体单位表示见表8)。
表8单位
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | …… |
名称 | UF | μF | NF | PF | 摄氏度 | ℃ | 小时 | CM | …… |
步骤六:col6的确定,col6的取值范围为[0,+∞)。提取字段中所有非汉字的字符为分隔符,提取包含汉字的部分,将汉字字段的个数作为col6的实际值,并将去除汉字部分的字段内容,作为下一步骤的输入。
步骤七:col7的确定,col7取值范围为[0,+∞)。以字段中所有非英文、空格的字符为分隔符,提取包含英文的部分,将英文字段的个数作为col7的实际值,并将去除英文部分的字段,作为下一步骤的输入。
步骤八:col8,col9的确认,col4的补充,col8取值范围为[0,+∞),col9取值范围为[0,+∞)。提取字段中的数字部分,将包含小数点的小数个数作为col8的实际值;将不包含小数点的整数且该整数在封装纯数字的表示中,则更新col4的值,即加上此部分的表示封装的字段数量;将不包含小数点的整数且该整数不在封装纯数字的表示中,则将此类的整数的个数作为col9的实际值;将去除数字部分的字段,作为下一步骤的输入(纯数字表示的封装如表9所示)。
表9封装(纯数字)
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | …… |
名称 | 0201 | 0402 | 0603 | 0805 | 1008 | 1206 | 1210 | 1218 | …… |
步骤九:col10的确认,col10的取值范围为[0,+∞)。计算剩余字段的长度,即为col10的实际值。
(八)最终列确认
步骤一:确认产品确认的相关列,即由(2)列属性的确认的关于产品确认的列,即为最终的产品确认相关列。
步骤二:确认最终价格列。若存在两个或两个以上的价格列,则计算每个价格列对应的平均价格,将平均价格较高的列,作为最终价格列使用(采用平均价格较高的列,是因为在价格中,含税价格要高于未税价格)。
步骤三:确认最终数量列。若存在两个或两个以上的数量列,则计算每个数量列对应的平均数量,将平均数量较高的列,作为最终数量列使用(采用平均数量较高的列,是因为在数量中,使用总量要高于单板用量)。
步骤四:返回矩阵U。U由产品确认的相关列,价格列、数量列组成,并返回d=[d1,d2,d3],其中d1表示产品确认的相关列在矩阵U中的最后一列的位置,若不存在产品确认相关列时,d1=0;d2表示数量列的位置,若不存在数量列时,d2=0;d3表示价格列的位置,若不存在价格列时,d3=0。
实施例1:
下表为实际应用中的企业真实的采购BOM表(其中将与企业名称有关的信息进行隐藏,其中汉字的部分采用‘公司’进行替换,英文的部分采用‘XX’进行替换,其余均为真实表格中的内容)。
表10BOM表
一、以表10为例,说明带有表头的BOM表预处理过程,提取有效信息。
1、读入数据,构成矩阵Z(其中有些元素过长,在矩阵中用省略号……进行部分信息的省略)。
其中读入表格内容,对合并单元格之后得到的矩阵Z。此时的矩阵Z对应的行数M=73,列数N=8。
2、对矩阵X进行预处理,去掉矩阵X中的空白行、空白列、相同行、相同列、相同元素行,得到预处理之后的矩阵X为:
3、提取单元格特征F_cell,以矩阵X的单四列为例,提取元素‘规格描述’、‘iSee X项目成本评估’、‘规格’,‘PCBA(USB接口)’,‘PCB-Rigid,iSee X.USB.v00.03,FR4,2,15.2mm*10mm*0.8mm,绿,白字,喷锡,R’,‘Diode,ESD,N,N,0603,N,RT180603180C030SY,R’的单元格特征向量。
其元素对应的提取的特征向量如下:
(1)‘规格描述’:[1,1,0,0,0,0]
(2)‘iSee X项目成本评估’:[1,1,1,0,0,1]
(3)‘规格’:[1,1,0,0,0,0]
(4)‘PCBA(USB接口)’:[1,1,2,0,0,2]
(5)‘PCB-Rigid,iSee X.USB.v00.03,FR4,2,15.2mm*10mm*0.8mm,绿,白字,喷锡,R’:[1,3,10,3,3,12]
(6)‘Diode,ESD,N,N,0603,N,RT180603180C030SY,R’:[1,0,9,0,3,7]
4、确认行特征向量F_tc,以矩阵X的前六行为例,计算其行特征向量。其矩阵X的前六行对应的特征向量为:
F_tc1=[5 5 0 0 0 0]
F_tc2=[2 2 1 0 0 1]
F_tc3=[7 7 0 0 0 0]
F_tc4=[6 1 4 0 4 2]
F_tc5=[6 3 12 3 7 12]
F_tc6=[7 0 12 0 9 8]
5、确认行R_row,以矩阵X的前六行为例,计算其行R_row。其矩阵X的前六行对应的行R_row为:
R_row4=0.57143,R_row15=037037,R_row6=0.45
6、确认表头属性以及表头位置和物料开始位置。
由于存在i=3,使得R_rowi<threshold且R_rowi+1≥threshold。则该表格的确认为有表头的表格,即head=1。且表头位置为矩阵X的第三行,物料开始位置为矩阵X的第四行。
7、确认有X提取的有效矩阵Y为:
8、确认列属性
(1)确认产品确认的相关列为:表头行元素‘规格’对应的列,为确认成功的产品确认的相关列。
(2)确认价格列:表头行元素,确认无价格列。
(3)确认数量列:表头行元素‘用量’对应列,为确认成功的数量列。
9、确认最终矩阵和属性
由于表头行元素均不为空,且确认的数量列为1列。即最终提取的矩阵为:
并返回向量d=[d1,d2,d3]=[1,2,0],即产品确认的相关列在矩阵U中的结束位置为第一列,即仅第一列为产品确认相关列;数量列的位置为2,即数量列在矩阵U中的列为第二列。
二、以表10去掉表头部分的表格部分为例,对无表头的BOM表的预处理过程,提取有效信息。
其中无表头表格的预处理过程,与带有表头的BOM表预处理过程,相同部分直至到提取有效矩阵Y结束。
即提取成功矩阵Y以前的步骤均相同,成功提取的Y矩阵如下,其中的有无表头属性,此处的head=0,即无表头。
1、组合字段。以矩阵Y的第三列为例。
则组合的字段为(部分):PCBA(USB接口);PCB-Rigid,iSee X.USB.v00.03,FR4,2,15.2mm*10mm*0.8mm,绿,白字,喷锡,R;Diode,ESD,N,N,0603,N,RT180603180C030SY,R;水平,4PIN,1.25MM,DIP,高温热塑树脂,R;MICRO USB,5PIN,0.65,DIP,立式,卷边,铜合金,R;……
其中L3=69。
2、提取矩阵的列的特征向量。则矩阵Y的校正之后的列特征向量为:
F_col1=[69,0,0,0,0,0,0,0,69,0]
F_col2=[69,0,0,0,0,0,24,0,69,0]
F_col3=[69,37,104,113,38,52,385,17,157,613]
F_col4=[62,2,1,0,0,0,148,0,144,90]
F_col5=[69,0,0,0,0,0,0,0,69,0]
F_col6=[69,0,0,0,0,0,69,0,0,0]
F_col7=[69,0,0,0,0,0,0,0,69,0]
3、矩阵Y的列R_col,分别计算得到为:
R_col1=0.0,R_col2=0.0,R_col3=0.333
R_col4=0.0319,R_col5=0.0,R_col6=0.0,R_col7=0.0
4、确认列属性。
由于R_col3满足条件R_col3≥decompose_threshold。所以矩阵Y的第三列确认属性为产品确认相关列。
未存在能够满足价格条件的列,即价格列未成功提取。
5、确认最终有效矩阵U。
有效矩阵U中,关于产品确认的列,需要全部提取。关于数量列,需要提取平均值较大的列,由于第4列的平均值2.246大于第6列的平均值1,即第4列为最终提取的价格列。
则有效矩阵U为:
并返回向量d=[d1,d2,d3]=[1,2,0],即产品确认的相关列在矩阵U中的结束位置为第一列,即仅第一列为产品确认相关列;数量列的位置为2,即数量列在矩阵U中的列为第二列。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
Claims (6)
1.一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,包括:
步骤1,读入表格:判断表格中每个单元格的内容属性,并依据每个单元格的内容属性将每个单元格的内容以指定形式读入;
步骤2,合并单元格的处理:将表格的内容,转换成矩阵Z表示,矩阵Z的大小为M×N,其中M对应的是表格的行数,N对应的是表格的列数;
步骤3,矩阵Z的预处理:去除矩阵Z中的空白行、空白列、相同行、相同列以及相同行元素,而后得到矩阵X,此时矩阵X的大小为m×n,其中m表示矩阵X的行数,n表示矩阵X的列数;
步骤4,提取单元格特征:确定字段特征向量;
步骤5,确认表头和物料部分:确认有效矩阵及有无表头的属性特征;
步骤6,确认列属性:将提取的列属性分为三大类:产品确认的相关列、价格列、采购数量列;根据是否有表头,分别进入有表头确认列的部分进行列属性的确认或进入无表头确认列的部分进行列属性的确认;
步骤7,提取矩阵列字段的特征向量:确定列字段的特征向量;
步骤8,最终列确认:确认产品确认的相关列、最终价格列、最终数量列,并返回矩阵U;U由产品确认的相关列,最终价格列、最终数量列组成;
步骤4提取单元格特征,确定字段特征向量,包括如下步骤:
字段特征向量确定:F_cell=[cell1,cell2,cell3,cell4,cell5,cell6],其中cell1表示单元格中有无内容,cell2表示单元格中的汉字字段个数,cell3表示单元格中的英文字段个数,cell4表示单元格中的小数个数,cell5表示单元格中的整数个数,cell6表示单元格中其他字符的个数;字段特征向量提取步骤为:
步骤4.1:cell1的确定,cell1取值范围为{0,1};当cell1=0时,表示该字段内容为空,且确定该字段的特征向量为:F_cell=[0,0,0,0,0,0],无需向下继续提取特征向量的对应元素值;当cell1=1时,表示该字段内容不为空,则进入下一步骤,继续进行特征向量其他元素对应值的提取;
步骤4.2:cell2的确定,cell2取值范围为[0,+∞);以字段中所有非汉字的字符为分隔符,提取包含汉字的部分,将汉字字段的个数作为cell2的实际值,并将删除汉字部分的字段,作为下一步骤的输入;
步骤4.3:cell3的确定,cell3取值范围为[0,+∞);以字段中所有非英文、空格的字符为分隔符,提取包含英文的部分,将英文字段的个数作为cell3的实际值,并将删除英文部分的字段,作为下一步骤的输入;
步骤4.4:cell4,cell5的确认,cell4取值范围为[0,+∞),cell5取值范围为[0,+∞);提取字段中的数字部分,将包含小数点的小数个数作为cell4的实际值,将不包含小数点的整数个数作为cell5的实际值,将删除数字部分的字段,作为下一步骤的输入;
步骤五:cell6的确认,cell6的取值范围为[0,+∞);计算剩余字段的长度,即为cell6的实际值;
则由cell1,cell2,cell3,cell4,cell5,cell6实际值,构成的特征向量F_cell,即为该输入字段对应的特征向量。
2.如权利要求1所述的一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,步骤1读入表格,包括如下步骤:
步骤1.1:读入表格,判断其单元格中的内容属性;
步骤1.2:判断属性是否为number,若属性number判断成立,则判断其是否为整数,若为整数,则将该内容以整数的形式读入;若不为整数,则判断其是否为小数,若为小数,则将该内容以保留八位小数之后的形式读入;若属性number判断不成立,则进入步骤1.3;
步骤1.3:判断属性是否为empty;若成立,则将该内容以‘’空的形式读入;若不成立,则进入步骤1.4;
步骤1.4:将属性判断为非number和empty的内容,以字符串的形式读入。
3.如权利要求1所述的一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,步骤2合并单元格的处理,包括如下步骤:
步骤2.1:得到合并单元格的起始行位置、结束行位置、起始列位置、结束列位置;
步骤2.2:若合并单元格的内容不为空,则在其合并位置的单元格,均写入其内容;将合并的单元格,转换为非合并的单元格;
步骤2.3:将表格的内容,转换成矩阵Z表示,矩阵Z的大小为M×N,其中M对应的是表格的行数,N对应的是表格的列数。
4.如权利要求1所述的一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,步骤3矩阵Z的预处理,包括如下步骤:
步骤3.1:去除矩阵Z中的空白行、空白列;
步骤3.2:去除矩阵Z中的相同行、相同列;相同行的意义为,存在两行及以上行对应元素均相同,则只保留位置靠前的一行;相同列的意义为,存在两列及以上列对应元素均相同,则只保留位置靠前的一列,且保证其原始矩阵Z中的行或列前后顺序不发生变换;
步骤3.3:去掉相同行元素;矩阵Z中的行内容,若满足行元素相同,且行长度大于1,则将该行从矩阵Z中删除,其中的行长度,表示为行的元素个数;
经过矩阵预处理后得到矩阵X,此时矩阵X的大小为m×n,其中m表示矩阵X的行数,n表示矩阵X的列数。
5.如权利要求1所述的一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,步骤7提取矩阵列字段的特征向量,包括如下步骤:
特征向量确定:F_col=[col1,col2,col3,col4,col5,col6,col7,col8,col9,col10],其中col1表示字段内容是否为空,col2表示字段内容中的包含品类的字段个数,col3表示字段内容中的包含品牌的字段个数,col4表示字段内容中的包含封装的字段个数,col5表示字段内容中包含单位的字段个数,col6表示字段内容中的汉字字段的个数,col7表示字段内容中表示英文字段的个数,col8表示字段内容中小数的个数,col9表示字段内容中整数的个数,col10表示字段内容中其他字符的个数;
特征向量提取步骤为:
步骤7.1:col1的确定,col1取值范围为{0,1};当col1=0时,表示该字段内容为空,且确定单元格特征向量为:F_col=[0,0,0,0,0,0,0,0,0,0],进入确认表头和物料部分;col1=1时,表示该字段内容不为空,并进入下一步骤;
步骤7.2:col2的确定,col2取值范围为[0,+∞);提取字段中所有品类的字段,并统计其数量,作为col2的实际值;将删除提取的品类字段的字段内容,作为下一步骤的输入;
步骤7.3:col3的确定,col3取值范围为[0,+∞);提取字段中所有品牌的字段,并统计其数量,作为col3的实际值;将删除提取的品牌字段的字段内容,作为下一步骤的输入;
步骤7.4;col4的确定,col4取值范围为[0,+∞);提取字段中所有封装的开头+数字的字段;和类似5*6*7、5×6×7、5*8、5×7这种表示封装的字段,并统计其数量,作为col4的实际值;将删除提取的封装信息的字段内容,作为下一步骤的输入;
步骤7.5:col5的确定,col5的取值范围为[0,+∞);提取字段中所有单位前+数字的字段,并统计其数量,作为col5的实际值;将删除提取的单位信息的字段内容,作为下一步骤的输入;
步骤7.6:col6的确定,col6的取值范围为[0,+∞);提取字段中所有非汉字的字符为分隔符,提取包含汉字的部分,将汉字字段的个数作为col6的实际值,并将去除汉字部分的字段内容,作为下一步骤的输入;
步骤7.7:col7的确定,col7取值范围为[0,+∞);以字段中所有非英文、空格的字符为分隔符,提取包含英文的部分,将英文字段的个数作为col7的实际值,并将去除英文部分的字段,作为下一步骤的输入;
步骤7.8:col8,col9的确认,col4的补充,col8取值范围为[0,+∞),col9取值范围为[0,+∞);提取字段中的数字部分,将包含小数点的小数个数作为col8的实际值;将不包含小数点的整数且该整数在封装纯数字的表示中,则更新col4的值,即加上此部分的表示封装的字段数量;将不包含小数点的整数且该整数不在封装纯数字的表示中,则将此类的整数的个数作为col9的实际值;将去除数字部分的字段,作为下一步骤的输入;
步骤7.9:col10的确认,col10的取值范围为[0,+∞);计算剩余字段的长度,即为col10的实际值。
6.如权利要求1所述的一种基于电子元器件采购BOM核价的表格预处理方法,其特征在于,步骤8最终列确认,包括如下步骤:
步骤8.1:确认产品确认的相关列,即由步骤6列属性的确认的关于产品确认的列,即为最终的产品确认相关列;
步骤8.2:确认最终价格列;若存在两个或两个以上的价格列,则计算每个价格列对应的平均价格,将平均价格较高的列,作为最终价格列使用;
步骤8.3:确认最终数量列;若存在两个或两个以上的数量列,则计算每个数量列对应的平均数量,将平均数量较高的列,作为最终数量列使用;
步骤8.4:返回矩阵U;U由产品确认的相关列,价格列、数量列组成,并返回d=[d1,d2,d3],其中d1表示产品确认的相关列在矩阵U中的最后一列的位置,若不存在产品确认相关列时,d1=0;d2表示数量列的位置,若不存在数量列时,d2=0;d3表示价格列的位置,若不存在价格列时,d3=0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110069429.6A CN112712415B (zh) | 2021-01-19 | 2021-01-19 | 一种基于电子元器件采购bom核价的表格预处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110069429.6A CN112712415B (zh) | 2021-01-19 | 2021-01-19 | 一种基于电子元器件采购bom核价的表格预处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112712415A CN112712415A (zh) | 2021-04-27 |
CN112712415B true CN112712415B (zh) | 2023-01-10 |
Family
ID=75549416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110069429.6A Active CN112712415B (zh) | 2021-01-19 | 2021-01-19 | 一种基于电子元器件采购bom核价的表格预处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712415B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239818B (zh) * | 2021-05-18 | 2023-05-30 | 上海交通大学 | 基于分割和图卷积神经网络的表格跨模态信息提取方法 |
CN113705175B (zh) * | 2021-08-18 | 2024-02-23 | 厦门海迈科技股份有限公司 | 一种电子表格行列精简的方法、服务器及存储介质 |
CN114066376B (zh) * | 2022-01-17 | 2022-05-17 | 岚图汽车科技有限公司 | 一种bom差异分析方法、存储介质、设备及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138499A (zh) * | 2015-08-07 | 2015-12-09 | 北京汽车研究总院有限公司 | 一种数据处理方法、装置及终端 |
CN107633353A (zh) * | 2017-09-08 | 2018-01-26 | 南京国电南自电网自动化有限公司 | 基于excel表vba的物料bom表合规检查方法 |
CN107992625A (zh) * | 2017-12-25 | 2018-05-04 | 湖南星汉数智科技有限公司 | 一种网页表格数据自动抽取方法及装置 |
CN108052619A (zh) * | 2017-12-15 | 2018-05-18 | 北京海致星图科技有限公司 | 一种基于配置信息匹配及相似度提取网页信息的方法 |
CN108710660A (zh) * | 2018-05-11 | 2018-10-26 | 上海核工程研究设计院有限公司 | 一种数据库的物项属性参数建模和存储方法 |
-
2021
- 2021-01-19 CN CN202110069429.6A patent/CN112712415B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138499A (zh) * | 2015-08-07 | 2015-12-09 | 北京汽车研究总院有限公司 | 一种数据处理方法、装置及终端 |
CN107633353A (zh) * | 2017-09-08 | 2018-01-26 | 南京国电南自电网自动化有限公司 | 基于excel表vba的物料bom表合规检查方法 |
CN108052619A (zh) * | 2017-12-15 | 2018-05-18 | 北京海致星图科技有限公司 | 一种基于配置信息匹配及相似度提取网页信息的方法 |
CN107992625A (zh) * | 2017-12-25 | 2018-05-04 | 湖南星汉数智科技有限公司 | 一种网页表格数据自动抽取方法及装置 |
CN108710660A (zh) * | 2018-05-11 | 2018-10-26 | 上海核工程研究设计院有限公司 | 一种数据库的物项属性参数建模和存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112712415A (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112712415B (zh) | 一种基于电子元器件采购bom核价的表格预处理方法 | |
US5999937A (en) | System and method for converting data between data sets | |
US7870485B2 (en) | Method and apparatus for generating multiple documents using a template and a data source | |
CN110751143A (zh) | 一种电子发票信息的提取方法及电子设备 | |
WO2019205308A1 (zh) | 信息的输入方法、装置、终端设备及介质 | |
JP2004139484A (ja) | 帳票処理装置、該装置実行のためのプログラム、及び、帳票書式作成プログラム | |
CN112395418B (zh) | 网页中的目标对象提取方法、装置、电子设备 | |
CN117035948B (zh) | 基于大数据的任务智能处理方法及系统 | |
CN112258074A (zh) | 一种基于大数据分析的电商商品仓储物流智能调度方法 | |
CN115204998A (zh) | 一种基于搜索及数据分析引擎库的对账方法和对账系统 | |
US20230205800A1 (en) | System and method for detection and auto-validation of key data in any non-handwritten document | |
CN101369953B (zh) | 一种字库的网络分发方法及系统 | |
CN109324963B (zh) | 自动测试收益结果的方法及终端设备 | |
CN111626029A (zh) | 一种项目咨询用预算方法、装置、电子设备及计算机可读存储介质 | |
CN113627893B (zh) | 一种bom文件的解析识别方法以及电子设备 | |
CN115294586A (zh) | 一种识别发票的方法、装置、存储介质及电子设备 | |
CN113627892A (zh) | 一种bom数据的识别方法及其电子设备 | |
CN112286936A (zh) | 一种对账方法、系统及相关设备 | |
CN112926577A (zh) | 一种医疗票据图像结构化方法和装置、计算机可读介质 | |
WO2023021636A1 (ja) | データ処理装置、データ処理方法及びプログラム | |
CN110717483B (zh) | 网络图像识别处理方法,计算机可读存储介质和移动终端 | |
JP7021819B1 (ja) | データ処理装置、データ処理方法及びプログラム | |
JP7470264B1 (ja) | レイアウト解析システム、レイアウト解析方法、及びプログラム | |
WO2022049689A1 (ja) | データ処理装置、データ処理方法及びプログラム | |
CN117523570A (zh) | 一种药品标题的修正方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |