一种基于LCS和TF-IDF的相似字符串确定方法及装置与流程

文档序号:23546705发布日期:2021-01-05 21:00阅读:112来源:国知局
一种基于LCS和TF-IDF的相似字符串确定方法及装置与流程

本申请涉及数据处理技术领域,尤其是涉及一种基于lcs和tf-idf的相似字符串确定方法及装置。



背景技术:

大部分医疗数据是自由文本构成的非结构化数据,其中不仅包括大段的文字描述,也包括包含表格样式的文字描述。为有效处理和利用这些文本信息,需要将文本信息结构化。文本结构化由早期基于字典、规则的方法,到基于hmm、crf等传统机器学习方法,再到基于bilstm-crf、bilstm-cnn-crf等深度学习方法,直到当下基于注意力机制、图神经网络等方法,已经取得了较好的效果。但结构化数据存在预测结果不准确、不完整的问题,为解决这个问题,可结合专业人士整理的相关归一推理文件,使用字符串相似度算法对预测结果归一推理,便于后期数据分析。

目前关于字符串相似度计算的算法主要有:编辑距离(levenshtein)、最长公共子序列(longestcommonsubsequence,lcs)、余弦相似度(cosinesimilarity)、jaccard相似度。这些传统的字符相似度计算算法都基于当前字符本身进行推理,而对于字符中真正关键的语义很难捕捉。例如‘小细胞肺癌’和‘非小细胞肺癌’,不论上述哪一种算法,都是认为是非常相似的字符串。但是实际结果却截然相反。这是因为字符串中的每一个字符的重要程度并不相同。也就是说,‘非’字在这个例子中应该被给予更多的关注。

申请人在研究中发现,现有技术中使用以上算法返回结果并不十分理想。



技术实现要素:

有鉴于此,本申请的目的在于提供一种基于lcs和tf-idf的相似字符串确定方法及装置,既考虑了字符串之间的最长公共子序列长度和字符串之间的距离,也考虑了对应同义词中每个字符串中字符对该字符串的重要程度,可对结构化数据进行归一推理,取得了较好的结果有利于下一步数据分析、挖掘。

第一方面,本申请实施例提供了一种基于lcs和tf-idf的相似字符串确定方法,包括:

计算同义词字典中各同义词的tf-idf值;

从所述同义词字典中查找待归一的字符串对应的标准写法信息;

若未查找到待归一的字符串对应的标准写法信息,则计算该字符串与相应同义词的最长公共子序列长度和距离;

计算待归一的字符串与相应同义词的非公共子序列中包含的所有字符的tf-idf值的总和,得到tf-idf值总和;

对待归一的字符串的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果,对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果,返回所述第二排序结果中第一个字符串对应的目标标准写法信息;

基于待归一的字符串和目标标准写法信息,确定归一后的字符串,从而得到待归一的字符串的相似字符串。

在一种可能的实施方式中,通过以下步骤获取同义词字典:

获取归一推理文件,所述归一推理文件包括同义词和相关父子类关系文件;

根据所述归一推理文件确定同义词字典,所述同义词字典包括各种疾病的各指标的各标准写法信息。

在一种可能的实施方式中,通过以下步骤计算同义词字典中各同义词的tf-idf值:

基于目标字符在当前语料库中的目标字符串中出现的次数和所有目标字符在当前语料库中的目标字符串中出现的总次数,确定目标字符在当前字符串中出现的频率;

基于当前同义词语料库中字符串总例数和包含目标字符的字符串个数,确定目标字符在相应同义词语料数据库中的逆向文件频率;

基于目标字符在当前字符串中出现的频率和相应同义词语料数据库中的逆向文件频率,确定该字符在当前字符串的tf-idf值。

在一种可能的实施方式中,所述方法还包括:若查找到待归一的字符串对应的标准写法信息,则将该标准写法信息确定为目标标准写法信息。

第二方面,本申请实施例提供了一种基于lcs和tf-idf的相似字符串确定装置,包括:

第一计算模块,用于计算同义词字典中各同义词的tf-idf值;

查找模块,用于从所述同义词字典中查找待归一的字符串对应的标准写法信息;

第二计算模块,用于在未查找到待归一的字符串对应的标准写法信息时,计算该字符串与相应同义词的最长公共子序列长度和距离;

第三计算模块,用于计算待归一的字符串与相应同义词的非公共子序列中包含的所有字符的tf-idf值的总和,得到tf-idf值总和;

排序模块,用于对待归一的字符串的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果,对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果,返回所述第二排序结果中第一个字符串对应的目标标准写法信息;

确定模块,用于基于待归一的字符串和目标标准写法信息,确定归一后的字符串,从而得到待归一的字符串的相似字符串。

在一种可能的实施方式中,所述装置还包括获取模块,所述获取模块包括:

获取单元,用于获取归一推理文件,所述归一推理文件包括同义词和相关父子类关系文件;

第一确定单元,用于根据所述归一推理文件确定同义词字典,所述同义词字典包括各种疾病的各指标的各标准写法信息。

在一种可能的实施方式中,所述第一计算模块包括:

第二确定单元,用于基于目标字符在当前语料库中的目标字符串中出现的次数和所有目标字符在当前语料库中的目标字符串中出现的总次数,确定目标字符在当前字符串中出现的频率;

第三确定单元,用于基于当前同义词语料库中字符串总例数和包含目标字符的字符串个数,确定目标字符在相应同义词语料数据库中的逆向文件频率;

第四确定单元,用于基于目标字符在当前字符串中出现的频率和相应同义词语料数据库中的逆向文件频率,确定该字符在当前字符串的tf-idf值。

在一种可能的实施方式中,所述第二计算模块还用于:在查找到待归一的字符串对应的标准写法信息时,将该标准写法信息确定为目标标准写法信息。

第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面中任一种可能的实施方式中的步骤。

第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面中任一种可能的实施方式中的步骤。

本申请实施例提供的一种基于lcs和tf-idf的相似字符串确定方法,首先计算同义词字典中各同义词的tf-idf值;从所述同义词字典中查找待归一的字符串对应的标准写法信息;若未查找到待归一的字符串对应的标准写法信息,则计算该字符串与相应同义词的最长公共子序列长度和距离;计算待归一的字符串与相应同义词的非公共子序列中包含的所有字符的tf-idf值的总和,得到tf-idf值总和;对待归一的字符串的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果,对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果,返回所述第二排序结果中第一个字符串对应的目标标准写法信息;基于待归一的字符串和目标标准写法信息,确定归一后的字符串,从而得到待归一的字符串的相似字符串。采用本方案既考虑了字符串之间的最长公共子序列长度和距离,也考虑了对应同义词中每个字符串中字符对该字符串的重要程度,可对结构化数据进行归一推理,取得了较好的结果有利于下一步数据分析、挖掘。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种基于lcs和tf-idf的相似字符串确定方法的流程图;

图2示出了本申请实施例所提供的一种基于lcs和tf-idf的相似字符串确定装置的结构示意图;

图3示出了本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

为便于对本实施例进行理解,首先对本申请实施例所公开的一种基于lcs和tf-idf的相似字符串确定方法进行详细介绍。

请参考图1,图1为本申请实施例所提供的一种基于lcs和tf-idf的相似字符串确定方法的流程图。如图1所示,所述方法可以包括:

步骤s101、计算同义词字典中各同义词的tf-idf值;

步骤s102、从所述同义词字典中查找待归一的字符串对应的标准写法信息;

步骤s103、若未查找到待归一的字符串对应的标准写法信息,则计算该字符串与相应同义词的最长公共子序列长度和距离;

步骤s104、计算待归一的字符串与相应同义词的非公共子序列中包含的所有字符的tf-idf值的总和,得到tf-idf值总和;

步骤s105、对待归一的字符串的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果,对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果,返回所述第二排序结果中第一个字符串对应的目标标准写法信息;

步骤s106、基于待归一的字符串和目标标准写法信息,确定归一后的字符串,从而得到待归一的字符串的相似字符串。

在步骤s101之前,还包括:获取归一推理文件,所述归一推理文件包括由专业医学相关人士整理得到的同义词和相关父子类关系文件;根据所述归一推理文件确定同义词字典,所述同义词字典包括各种疾病的各指标的各标准写法信息。

在步骤s101中,计算同义词字典中各同义词的tf-idf值,存入以下文件夹:疾病->指标.json(写入文件的目的是后期减少计算量,若设备硬件条件较好,可进行实时计算)。具体地,步骤s101可以包括以下子步骤:

步骤s1011、基于目标字符在当前语料库中的目标字符串中出现的次数和所有目标字符在当前语料库中的目标字符串中出现的总次数,确定目标字符在当前字符串中出现的频率;

其中,tfi,j表示字符串中的词频,指一个字符在当前字符串中出现的频率,ni,j为一个字符在当前语料库中的一个字符串中出现的次数,k表示一个字符串中所有字符或词语的个数。

步骤s1012、基于当前同义词语料库中字符串总例数和包含目标字符的字符串个数,确定目标字符在相应同义词语料数据库中的逆向文件频率;

其中,idfi表示对应同义词语料数据库中的逆向文件频率,指一个字符普遍重要性的度量,|d|为当前同义词语料库中字符串总例数,|{j:tj∈dj}|为包含字符tj的字符串个数。

步骤s1013、基于目标字符在当前字符串中出现的频率和相应同义词语料数据库中的逆向文件频率,确定该字符在当前字符串的tf-idf值。

tfidfi,j=tfi,j×idfi

其中,tfidfi,j表示一个字符在当前字符串的重要程度。

以当前字符串为granzymeb为例,通过上述步骤s1011-s1013计算可得当前字符串granzymeb中每个字符在当前字符串的tf-idf值;

计算结果示例如下:

"granzymeb":{

"z":0.5080144813233212,

"y":0.3440248680111459,

"b":0.23785692967476413,

"g":0.22409365392889904,

"e":0.19908438546978388,

"m":0.19321299865040834,

"r":0.18306950751602977,

"n":0.1808545947492723,

"a":0.13435046256310373

}。

在步骤s102中,由于所述同义词字典包括各种疾病的各指标的各标准写法信息,从所述同义词字典中查找待归一的字符串对应的标准写法信息。

在步骤s103中,最长公共子序列(lcs)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题,简称“lcs问题”。一个数列,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列。

lcs问题在于寻找两个(或更多)序列的最长子序列。lcs问题与寻找公共子字符串的问题不同,子字符串不需要在原始序列中占据连续的位置。

长度为n的字符串x和长度为m的字符串y的lcs距离为:

n+m-2|lcs(x,y)|,min=0,max=n+m。

在步骤s103中,还可以包括:若查找到待归一的字符串(string)对应的标准写法信息,则将该标准写法信息确定为目标标准写法信息(string_normal),直接转入步骤s106。

在步骤s104中,首先确定待归一的字符串与相应同义词的非公共子序列,然后计算非公共子序列中每个字符的tf-idf值,将非公共子序列中所有字符的tf-idf值相加,得到tf-idf值总和。

在步骤s105中,首先对待归一的字符串(string)的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果。然后对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果。最后返回所述第二排序结果中第一个字符串对应的目标标准写法信息(string_normal),这里的第二排序结果中第一个字符串,即与待归一的字符串最相似的目标字符串。

在步骤s106中,计算过程中得到的归一后的字符串可以‘stringstring_normal’的形式存入文本。并且,步骤s104之前还可增加匹配同义词文件的步骤,可以减少计算量。

在步骤s106之后,还包括:通过读取归一推理文件中的父子类关系,对已经提取出的指标推理出未提取出的结果,是对结构化数据的一种补充。

通过上述步骤s101-s106输入的字符串和输出的相似字符串如下所示:

['mark','cd124']——>cd14

['diagnosis2','滤泡性']——>滤泡性淋巴瘤

['diagnosis2','弥漫性']——>弥漫性大b细胞淋巴瘤,非特指型。

本申请实施例提供的一种基于lcs和tf-idf的相似字符串确定方法,首先计算同义词字典中各同义词的tf-idf值;从所述同义词字典中查找待归一的字符串对应的标准写法信息;若未查找到待归一的字符串对应的标准写法信息,则计算该字符串与相应同义词的最长公共子序列长度和距离;计算待归一的字符串与相应同义词的非公共子序列中包含的所有字符的tf-idf值的总和,得到tf-idf值总和;对待归一的字符串的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果,对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果,返回所述第二排序结果中第一个字符串对应的目标标准写法信息;基于待归一的字符串和目标标准写法信息,确定归一后的字符串,从而得到待归一的字符串的相似字符串。采用本方案既考虑了字符串之间的最长公共子序列长度和距离,也考虑了对应同义词中每个字符串中字符对该字符串的重要程度,可对结构化数据进行归一推理,取得了较好的结果有利于下一步数据分析、挖掘。

基于相同的技术构思,本申请实施例还提供一种基于lcs和tf-idf的相似字符串确定装置、电子设备、以及计算机存储介质等,具体可参见以下实施例。

请参考图2,图2为本申请实施例所提供的一种基于lcs和tf-idf的相似字符串确定装置的结构示意图。如图2所示,所述装置可以包括:

第一计算模块201,用于计算同义词字典中各同义词的tf-idf值;

查找模块202,用于从所述同义词字典中查找待归一的字符串对应的标准写法信息;

第二计算模块203,用于在未查找到待归一的字符串对应的标准写法信息时,计算该字符串与相应同义词的最长公共子序列长度和距离;

第三计算模块204,用于用于计算待归一的字符串与相应同义词的非公共子序列中包含的所有字符的tf-idf值的总和,得到tf-idf值总和;

排序模块205,用于对待归一的字符串的相应同义词按照最长公共子序列长度进行降序排列,得到第一排序结果,对所述第一排序结果按照最长公共子序列距离和tf-idf值总和的和进行升序排列,得到第二排序结果,返回所述第二排序结果中第一个字符串对应的目标标准写法信息;

确定模块206,用于基于待归一的字符串和目标标准写法信息,确定归一后的字符串,从而得到待归一的字符串的相似字符串。

在一种可能的实施方式中,所述装置还包括获取模块207,所述获取模块包括:

获取单元,用于获取归一推理文件,所述归一推理文件包括同义词和相关父子类关系文件;

第一确定单元,用于根据所述归一推理文件确定同义词字典,所述同义词字典包括各种疾病的各指标的各标准写法信息。

在一种可能的实施方式中,所述第一计算模块201包括:

第二确定单元,用于基于目标字符在当前语料库中的目标字符串中出现的次数和所有目标字符在当前语料库中的目标字符串中出现的总次数,确定目标字符在当前字符串中出现的频率;

第三确定单元,用于基于当前同义词语料库中字符串总例数和包含目标字符的字符串个数,确定目标字符在相应同义词语料数据库中的逆向文件频率;

第四确定单元,用于基于目标字符在当前字符串中出现的频率和相应同义词语料数据库中的逆向文件频率,确定该字符在当前字符串的tf-idf值。

在一种可能的实施方式中,所述第二计算模块203还用于:在查找到待归一的字符串对应的标准写法信息时,将该标准写法信息确定为目标标准写法信息。

本申请实施例公开了一种电子设备,如图3所示,包括:处理器301、存储器302和总线303,所述存储器302存储有所述处理器301可执行的机器可读指令,当电子设备运行时,所述处理器301与所述存储器302之间通过总线303通信。所述机器可读指令被所述处理器301执行时执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

本申请实施例所提供的一种基于lcs和tf-idf的相似字符串确定方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1