中文地址分词标注方法
【技术领域】
[0001]本发明涉及数据处理技术领域,尤其涉及一种中文地址分词标注方法。
【背景技术】
[0002]人们在填写收件人地址、办公地址、家庭住址等地址信息时一般都是将省、市、区、门牌号、住宅小区、房间号等信息写在一起组成地址信息,如“广东深圳南山区高新中一道9号科技园软件大厦713”,这种写法适合人工识别,而当通过机器识别地址的结构化细节信息时首先要做的处理就是分词与标注,将输入的长文本切分成一个一个的词,并对词的属性进行标注,如上例地址信息的分词标注结果可能为广东/省深圳/市南山区/区高新中一道/道路9号/路号科技园/片区软件大厦/楼栋713/房间”。中文地址分词标注是地址信息处理的一项基础性工作,其准确程度将直接影响到后续处理的正确性。
[0003]现有分词标注技术中应用的比较成熟的是基于统计的方法,例如,隐马尔可夫模型(HMM)的分词标注技术就是一种典型的基于统计模型的分词标注方法。但是,应用通用的分词标注或实体识别技术来进行中文地址分词标注的结果准确率不太高,只有80%左右。因此,亟需一种高准确率的中文地址分词标注方法。
【发明内容】
[0004]本发明的目的在于提供一种中文地址分词标注方法,提高中文地址分词标注的准确率。
[0005]为实现上述目的,本发明提供一种中文地址分词标注方法,包括:
[0006]步骤11、对挑选出的地址数据进行人工分词标注,以作为训练数据;
[0007]步骤12、对于该训练数据或挑选出的地址数据中出现的单个阿拉伯数字字符或英文字母字符以及多个连续阿拉伯数字字符或英文字母字符,以预先唯一指定的单个阿拉伯数字字符或英文字母字符替换;
[0008]步骤13、采用由分词标签和标注标签组成的组合标签将该训练数据转换成CRF++工具所需要的格式;
[0009]步骤14、定义特征模板;
[0010]步骤15、使用CRF++工具建立分词标注模型;
[0011]步骤16、对于欲分词标注的地址中出现的单个阿拉伯数字字符或英文字母字符以及多个连续阿拉伯数字字符或英文字母字符,以该预先唯一指定的单个阿拉伯数字字符或英文字母字符替换,同时保存替换前的阿拉伯数字字符或英文字母字符;
[0012]步骤17、然后使用CRF++工具对欲分词标注的地址进行分词标注;
[0013]步骤18、在分词标注结果中还原替换前的阿拉伯数字字符或英文字母字符。
[0014]其中,所述分词标签包括表示字在词的开头或中间的标签以及表示字是词的结尾的标签。
[0015]其中,所述标注标签包括省、市、区、街道、社区、道路、路号、片区、楼栋及房间。
[0016]其中,步骤17包括获取地址中每个字的组合标签以及解析每个字的分词标签和标注标签。
[0017]其中,解析每个字的分词标签和标注标签的过程包括:
[0018]a)首先建立一个字的缓存区,初始为空,并从头开始按顺序处理输入地址的每个字;
[0019]b)将字存入缓存区,拆开组合标签获得分词标签和标注标签两个独立标签;
[0020]c)如果字的分词标签表示字在词的开头或中间且非最后一个字,则继续处理下一个字;
[0021]d)否则取出缓存区所有的字并组成一个词,且该词的标注属性为标注标签,将结果输出,清空缓存区。
[0022]其中,所述预先唯一指定的单个阿拉伯数字字符或英文字母字符为I。
[0023]其中,所述步骤15中使用CRF++工具提供的crf_learn命令训练分词标注模型。
[0024]其中,训练分词标注模型的过程迭代100步。
[0025]综上所述,本发明的中文地址分词标注方法的准确率高。
【附图说明】
[0026]图1为本发明中文地址分词标注方法一较佳实施例的流程图。
【具体实施方式】
[0027]下面结合附图,通过对本发明的【具体实施方式】详细描述,将使本发明的技术方案及其有益效果显而易见。
[0028]本发明采用基于条件随机场模型的分词框架,条件随机场相关技术采用开源的CRF++工具。CRF++是著名的条件随机场开源工具,也是目前综合性能最佳的CRF工具。
[0029]对应于地址的标注标签,本发明定义地址如下概念:
[0030]省:由“国家地名地址数据规范”规定的一级行政区域,包含:省、直辖市、自治区、特别行政区;
[0031]市:由“国家地名地址数据规范”规定的二级行政区域,包含:地级市、地区、自治州、盟;
[0032]区:由“国家地名地址数据规范”规定的三级行政区域,包含:市辖区、县级市、县、旗、特区、林区;
[0033]街道:由“国家地名地址数据规范”规定的四级行政区域,包含:区公所、镇、乡、苏木、街道;
[0034]社区:由“国家地名地址数据规范”规定的五级行政区域,包含:社区、居委会、行政村;
[0035]道路:道路、街、巷;
[0036]路号:门牌号;
[0037]片区:区域性质的地址名,通常该名称所代表的地址区域内容有数栋建筑,如科技园、深南花园、下沙村等;
[0038]楼栋:建筑物名称,通指一栋建筑,如软件大厦、I栋、2号楼、A座等;
[0039]房间:楼栋内的房间编号,如713 ;
[0040]其他:其他内容。
[0041]参见图1,其为本发明中文地址分词标注方法一较佳实施例的流程图。该方法主要包括:
[0042]步骤11、对挑选出的地址数据进行人工分词标注,以作为训练数据。
[0043]挑选一批地址数据,可以是数千至数万条,数据来源应符合多样性,尽量保证地址常见的写法都涵盖,人工对其进行分词并标注,作为模型的训练数据。
[0044]训练数据可整理成如下格式,即每个词之间用空格隔开,标注信息添加在每个词后面,以斜线”/” (或其他特殊符号)作为分隔符,如:
[0045]广东/省深圳/市南山区/区高新中一道/道路9号/路号科技园/片区软件大厦/楼栋713/房间;
[0046]广东省/省深圳市/市南山区/区沙河街道/街道沙河街社区/社区上白石/片区五坊/片区15号/楼栋;
[0047]广东省/省深圳市/市福田区/区梅林街道/街道新阁社区/社区林园东路/道路32号/门牌号华天公寓/楼栋;
[0048]福田/区莲花路/道路与/其他香梅路/道路交汇处/其他康欣园/片区。
[0049]步骤12、对于该训练数据或挑选出的地址数据中出现的单个阿拉伯数字字符或英文字母字符以及多个连续阿拉伯数字字符或英文字母字符,以预先唯一指定的单个阿拉伯数字字符或英文字母字符替换。
[0050]由于数字、字母在中文地址中绝大部分是作为整体出现的,很少存在把在数字、字母切分开的情况,如上面例子中“713/房间”中的713,以及“15号/楼栋”中的15,都是作为整体出现。针对这个情况,本发明将地址中所有连续的字母数字统一用一个字符替换,任一数字或字母都可以,比如用I替换。如存在其它数字、字母形式,如:2A123,也可以替换成
1
[0051]原训练数据:
[0052]“广东/省深圳/市南山区/区高新中一道/道路9号/路号科技园/片区软件大厦/楼栋713/房间”。
[0053]处理后变为:
[0054]“广东/省深圳/市南山区/区高新中一道/道路I号/路号科技园/片区软件大厦/楼栋I/房间”。
[0055]这样处理的好处有2点:1是保证数字字母不会被错误的拆分开;2是减少了训练数据中的特征数量,可节约模型的训练时间,同时提升地址分词与标注的速度。替换操作可以选择对训练数据进行,也可以选择在对挑选出的地址数据进行人工分词标注操作前进行。
[0056]步骤13、采用由分词标签和标注标签组成的组合标签将该训练数据转换成CRF++工具所需要的格式。
[0057]上述训练数据的格式方便人的阅读与处理,但并不是CRF++工具所需要的格式,因此需要转换一下。CRF++工具要求的格式为每行内容为一个字及其标签,中间用空格或制表符隔开。
[0058]由于本发明中地址分词与标注任务是同时解决的,一个标签需同时支持这2个任务,因此采用组合标签:第一个标签为分词标签用于分词,第二个标签为标注标签用于标注,两个标签之间用连接。其中分词标签采用I和E,I代表这个字在词的开头或中间,E代表这个字是词的结尾,即这个字与前面所有I标记的字组成一个词;标注标签用于表示此词的标注属性,如省、市、楼栋等。通过采用组合标签的形式,可以相对提升最终分词标注结果的准确度。示例数据如下:
[0059]深1-市
[0060]圳1-市
[0061]市E-市
[0062]福1-区
[0063]田1-区
[0064]区E-区
[0065]福1-道路
[0066]强1-道路
[0067]路E-道路。
[0068]训练数据到CRF++格式数据转换方法如下:
[0069]I)对每行训练数据