一种针对中医药症状句子的中文分词方法转让专利

申请号 : CN201710508975.9

文献号 : CN107357780B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姜晓红毛宇付钊杜定益陈广吴朝晖

申请人 : 浙江大学

摘要 :

本发明公开了一种针对中医药症状句子的中文分词方法,该分词方法首先通过分割词库、频繁词库做预筛选,然后利用正向条件概率和逆向条件概率做进一步分析,对于依旧不能确定的情况,再综合相对位置给出最后的结果。本发明分词方法有效地针对了中医药症状领域的特殊性,克服了传统中文分词方法不适用于中医药领域的缺点,在分词的准确率和召回率上均有较大的提高。

权利要求 :

1.一种针对中医药症状句子的中文分词方法,包括如下步骤:

(1)获取中医药症状语料库并对其进行数据清洗;

(2)对语料库中所有相邻汉字组合的出现频次进行统计,将大于一定阈值的相邻汉字组合提取出来,并将这些相邻汉字组合归为频繁词库和分割词库;所述相邻汉字组合由相邻两个汉字组成;

(3)通过对语料库中汉字单独出现次数以及相邻汉字组合出现频次进行统计,计算出相邻汉字组合的正向条件概率和逆向条件概率;

(4)通过对语料库中相邻汉字互相依赖的次数进行统计,计算出相邻汉字组合中两个汉字的相对位置值,具体方法为:对于某一相邻汉字组合{A,B},其由两个相邻汉字A和B组成且A在前B在后;首先从语料库中找出汉字A在前的所有相邻汉字组合,然后统计这些相邻汉字组合在语料库中出现的频次,并按照频次对这些相邻汉字组合进行降序排列,则相邻汉字组合{A,B}在其中的序号即为汉字B相对于汉字A的位置值;同理从语料库中找出汉字B在后的所有相邻汉字组合,然后统计这些相邻汉字组合在语料库中出现的频次,并按照频次对这些相邻汉字组合进行降序排列,则相邻汉字组合{A,B}在其中的序号即为汉字A相对于汉字B的位置值;

(5)对于任一给定的中医药症状句子,从左到右逐个扫描相邻两个汉字,综合所述频繁词库和分割词库、正向条件概率和逆向条件概率以及相对位置值来判断相邻两个汉字是否应该被分割。

2.根据权利要求1所述的中文分词方法,其特征在于:所述步骤(1)中对中医药症状语料库进行数据清洗的方法为:根据中英文符号中的逗号、句号、分号、顿号、大括号、中括号以及小括号字符将医药症状语料库中的每一行症状语句进行分隔。

3.根据权利要求1所述的中文分词方法,其特征在于:所述步骤(2)中采用人工方式将提取出来的相邻汉字组合归为频繁词库和分割词库,使一些为常用词组的相邻汉字组合归为频繁词库,其余相邻汉字组合归为分割词库。

4.根据权利要求1所述的中文分词方法,其特征在于:所述步骤(3)中根据以下公式计算相邻汉字组合的正向条件概率和逆向条件概率:其中:对于任一相邻汉字组合,其由两个相邻汉字A和B组成且A在前B在后,P(B|A)和P(A|B)分别为该相邻汉字组合的正向条件概率和逆向条件概率,Count(A)和Count(B)分别为汉字A和汉字B在语料库中单独出现的频次,Count(AB)为该相邻汉字组合在语料库中出现的频次。

5.根据权利要求1所述的中文分词方法,其特征在于:所述步骤(5)中判断相邻两个汉字是否应该被分割的标准如下:对于给定中医药症状句子中出现的相邻两个汉字A和B且A在前B在后,首先判断由汉字A和汉字B组成的相邻汉字组合是否在分割词库或者频繁词库中,若在分割词库中则对其进行分词处理,若在频繁词库中则不对其进行分词处理;

若该相邻汉字组合不在分割词库或频繁词库中,则判断其正向条件概率,若正向条件概率大于阈值α1则不对其进行分词处理,若正向条件概率小于阈值β1则对其进行分词处理;

若该相邻汉字组合的正向条件概率在[β1,α1]区间内,则判断其逆向条件概率,若逆向条件概率大于阈值α2则不对其进行分词处理,若逆向条件概率小于阈值β2则对其进行分词处理;

若该相邻汉字组合的逆向条件概率在[β2,α2]区间内,则判断其相对位置值,若汉字B相对于汉字A的位置值或汉字A相对于汉字B的位置值小于阈值p1则不对其进行分词处理;

若汉字B相对于汉字A的位置值和汉字A相对于汉字B的位置值均小于阈值p2则不对其进行分词处理,否则对其进行分词处理。

说明书 :

一种针对中医药症状句子的中文分词方法

技术领域

[0001] 本发明属于中医药信息化和自然语言处理技术领域,具体涉及一种针对中医药症状句子的中文分词方法。

背景技术

[0002] 中医药起源于中国,是中华民族特色文化的一部分,也是医学界的一派重要分支。随着信息技术和人工智能的迅速发展,越来越多的领域开始引入信息化和智能化,中医药领域也不例外。由于中医药经历了漫长的发展,在此期间慢慢的累积了无数数据,这些数据中拥有着巨大的能量和医学规律,如果可以充分利用信息技术和互联网技术等多种手段,将这些隐性的经验知识和精髓转换成现代的显性知识,并将这些隐性知识规律化、可视化、数量化、智能化,这是进一步推动中医药发扬光大的有效手段,也会极大的推动全人类的医疗和健康事业。
[0003] 在中医药信息化的过程中,一项非常基础的工作就是对中医药的症状句子进行分析,而句子分析的第一步就是进行中文分词工作。虽然目前已有的分词算法已经达到了很高的召回率和准确率,但这仅仅局限于现代汉语,对于中医药症状这类具有古汉语特色的句子,其分词效果并不理想。

发明内容

[0004] 鉴于上述,本发明结合已有的中文分词算法和中医药症状数据的特点,提出了一种针对中医药症状句子的中文分词方法,可以对中医药症状句子达到更好的分词效果。
[0005] 一种针对中医药症状句子的中文分词方法,包括如下步骤:
[0006] (1)获取中医药症状语料库并对其进行数据清洗;
[0007] (2)对语料库中所有相邻汉字组合的出现频次进行统计,将大于一定阈值的相邻汉字组合提取出来,并将这些相邻汉字组合归为频繁词库和分割词库;所述相邻汉字组合由相邻两个汉字组成;
[0008] (3)通过对语料库中汉字单独出现次数以及相邻汉字组合出现频次进行统计,计算出相邻汉字组合的正向条件概率和逆向条件概率;
[0009] (4)通过对语料库中相邻汉字互相依赖的次数进行统计,计算出相邻汉字组合中两个汉字的相对位置值;
[0010] (5)对于任一给定的中医药症状句子,从左到右逐个扫描相邻两个汉字,综合所述频繁词库和分割词库、正向条件概率和逆向条件概率以及相对位置值来判断相邻两个汉字是否应该被分割。
[0011] 进一步地,所述步骤(1)中对中医药症状语料库进行数据清洗的方法为:根据中英文符号中的逗号、句号、分号、顿号、大括号、中括号以及小括号字符将医药症状语料库中的每一行症状语句进行分隔。
[0012] 进一步地,所述步骤(2)中采用人工方式将提取出来的相邻汉字组合归为频繁词库和分割词库,使一些为常用词组的相邻汉字组合归为频繁词库,其余相邻汉字组合归为分割词库。
[0013] 进一步地,所述步骤(3)中根据以下公式计算相邻汉字组合的正向条件概率和逆向条件概率:
[0014]
[0015] 其中:对于任一相邻汉字组合,其由两个相邻汉字A和B组成且A在前B在后,P(B|A)和P(A|B)分别为该相邻汉字组合的正向条件概率和逆向条件概率,Count(A)和Count(B)分别为汉字A和汉字B在语料库中单独出现的频次,Count(AB)为该相邻汉字组合在语料库中出现的频次。
[0016] 进一步地,所述步骤(4)中计算相邻汉字组合中两个汉字相对位置值的具体方法为:对于某一相邻汉字组合{A,B},其由两个相邻汉字A和B组成且A在前B在后;首先从语料库中找出汉字A在前的所有相邻汉字组合,然后统计这些相邻汉字组合在语料库中出现的频次,并按照频次对这些相邻汉字组合进行降序排列,则相邻汉字组合{A,B}在其中的序号即为汉字B相对于汉字A的位置值;同理从语料库中找出汉字B在后的所有相邻汉字组合,然后统计这些相邻汉字组合在语料库中出现的频次,并按照频次对这些相邻汉字组合进行降序排列,则相邻汉字组合{A,B}在其中的序号即为汉字A相对于汉字B的位置值。
[0017] 进一步地,所述步骤(5)中判断相邻两个汉字是否应该被分割的标准如下:
[0018] 对于给定中医药症状句子中出现的相邻两个汉字A和B且A在前B在后,首先判断由汉字A和汉字B组成的相邻汉字组合是否在分割词库或者频繁词库中,若在分割词库中则对其进行分词处理,若在频繁词库中则不对其进行分词处理;
[0019] 若该相邻汉字组合不在分割词库或频繁词库中,则判断其正向条件概率,若正向条件概率大于阈值α1则不对其进行分词处理,若正向条件概率小于阈值β1则对其进行分词处理;
[0020] 若该相邻汉字组合的正向条件概率在[β1,α1]区间内,则判断其逆向条件概率,若逆向条件概率大于阈值α2则不对其进行分词处理,若逆向条件概率小于阈值β2则对其进行分词处理;
[0021] 若该相邻汉字组合的逆向条件概率在[β2,α2]区间内,则判断其相对位置值,若汉字B相对于汉字A的位置值或汉字A相对于汉字B的位置值小于阈值p1则不对其进行分词处理;若汉字B相对于汉字A的位置值和汉字A相对于汉字B的位置值均小于阈值p2则不对其进行分词处理,否则对其进行分词处理。
[0022] 本发明分词方法首先通过分割词库、频繁词库做预筛选,然后利用正向条件概率和逆向条件概率做进一步分析,对于依旧不能确定的情况,再综合相对位置给出最后的结果。该分词方法有效地针对了中医药症状领域的特殊性,克服了传统中文分词方法不适用于中医药领域的缺点,在分词的准确率和召回率上均有较大的提高。

附图说明

[0023] 图1为本发明中条件概率计算的流程示意图。
[0024] 图2为本发明中分词判断的流程示意图。
[0025] 图3为本发明中通过排序确定相对位置的示意图。

具体实施方式

[0026] 为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
[0027] 本发明针对中医药症状句子的中文分词方法,包括如下步骤:
[0028] (1)本发明中文分词方法首先需要一个中医药症状语料库,该语料库是原始的数据,需要对该语料库进行数据清洗,清洗工作将根据中文和英文符号中的逗号、句号、分号、顿号、大括号、中括号、小括号等字符将一行症状数据分隔开,得到相对规则的语料库数据。
[0029] (2)对语料库中的所有相邻汉字组合进行频次统计,将大于一定频次P的汉字组合提取出来,频次P一般取一个非常大的数值,以保证得到的汉字组合是高频组合。然后用人工的方法将这些汉字组合分为频繁词库和分割词库,由于分割词库的词汇量有限,一般是先筛选出分割词库,那么剩下的就是频繁词库。
[0030] (3)对语料库中每个汉字单独出现的次数以及所有相邻汉字一起出现的次数进行统计和计算,得到相邻汉字的正向条件概率和逆向条件概率。执行流程如图1所示,首先统计每个汉字单独出现的次数,汉字A表示为Count(A),汉字B表示为Count(B),然后统计相邻汉字AB出现的次数表示为Count(AB),利用公式 来计算两个汉字之间的正向条件概率,利用公式 来计算两个汉字之间的逆向条件概率。
[0031] (4)对语料库中相邻汉字互相依赖的次数进行统计和计算,得到相邻汉字的相对位置值。执行流程如图1所示,对于相邻的两个汉字AB,我们用F1[A][B]表示汉字A后面接B的频次是正向的依赖次数,用F2[B][A]表示汉字B前面接A的频次是逆向的依赖次数。对所有出现的相邻汉字AB做累加,得到F1和F2两个数组。
[0032] 对F1和F2两个数组做降序排序,得到相对位置值,如图3所示,排序方法是以数组的第一维为基础,对第二维数值按照大小进行降序排序。排序以后,F1[A][B]中B的索引值即为汉字B相对于汉字A的相对位置,用Rank(B|A)表示;若图3中排序后的B'3就是汉字B,那么Rank(B|A)=3。同理,F2[B][A]中A的索引值即为汉字A相对于汉字B的相对位置,用Rank(A|B)表示。
[0033] (5)对一个给定的句子,从左到右逐个扫描相邻的两个汉字,综合利用频繁词库、分割词库、正向条件概率、逆向条件概率以及相对位置,来判断相邻的两个字是否应该分割。执行流程如图2所示,具体判断方法可以分为12步,具体如下:
[0034] 1.读入一句话S;
[0035] 2.对汉字串S从左到右逐个扫描相邻的两个汉字AB;
[0036] 3.如果AB在频繁词库中,则AB成词,跳转到第2步;
[0037] 4.如果AB在分割词库中,则AB不成词,跳转到第12步;
[0038] 5.如果P(B|A)>α1,则AB成词,跳转到第2步;
[0039] 6.如果P(B|A)<β1,则AB不成词,跳转到第12步;
[0040] 7.如果P(A|B)>α2,则AB成词,跳转到第2步;
[0041] 8.如果P(A|B)<β2,则AB不成词,跳转到第12步;
[0042] 9.如果Rank(B|A)
[0043] 10.如果Rank(B|A)
[0044] 11.否则,AB不成词,跳转到第12步;
[0045] 12.将汉字串AB分割,跳转到第2步。
[0046] 上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。