[小O地图-数据] - 地址分词及对比

【概述】

小O地图是一款基于互联网地图进行地图数据挖掘、处理、图表的工具软件。

本文介绍众多功能之一“地址比较”功能。

作者认为这个功能还是很有用的,能够充分体现地理信息处理对于地址的处理

 

【场景一:地址比对】

物流、快递公司经常有大量地址数据需要处理,但由于用户输入地址不规范,容易导致同一个地点文字表述不一样。例如:

目标地点:中国纺织机械和技术进出口有限公司
输入地址1:北京市朝阳区北京市朝阳区建国路99号中服大厦18层
输入地址2:北京市朝阳区建国路99号

由于输入的原因导致文字表述差异较大,而使用纯文字对比的方法比较,很难判断为同一个地点。

【场景二:地址分词】

科研院所做语义研究,需要将地址文字进行分解,用于分析地址词汇出现的频率,从而推导地址热度、用户输入习惯行为特征,为大数据分析、深度学习提供基础的数据源。

输入地址:北京市朝阳区北京市朝阳区建国路99号中服大厦18层

地址分解

  • 城市:北京市 
  • 行政区:朝阳区
  • 道路:建国路
  • 门牌:99号
  • 大厦:中服大厦
  • 楼层:18层

按上面分解,当有多组地址作为样本,通过分解就能够很容易获得地址每个级别出现的频率,多数用户输入地址分段的习惯等,可以对输入界面UI/UE提供必要的提示或改进依据。

类似上述场景还有很多,作者不在此赘述,下面介绍小O地图功能,希望能够抛砖引玉,启发用户发现地理价值。

为满足上述场景,就可以使用小O地图的【地址比较】功能,利用地理分词技术对地址进行解析,判断地址是否为同一个地址;获得地址分解的结果。

 

【使用步骤】

 

【1】新建任务

小O地图功能均以任务的方式执行,如下图,首先新建“地址比较”任务,在任务界面中输入必要参数,保存新建任务。

 

【2】导入待处理地址(支持两列地址)

在任务菜单里选择导入数据功能,将待处理数据导入任务。待导入的数据通常包括:地址1、地址2、名称、编号等关键字段,地址1和地址2为待比较的字段,名称或编号作为保留字段导入,待处理完导出时关联原始数据。

使用任务导入数据功能

其中,地址1和地址2为比较的地址字段,其他字段为预留字段,用于处理后导出时与原数据进行对应。

 

【3】执行任务

导入后,登陆小O地图,非登录处理条数有限制。选择任务栏上的【爬虫】图表,启动任务进行地址分析及比较功能。小O地址比较功能支持离线,处理过程无需联网,不受地图KEY的限制

 

【4】导出结果

执行完成后,选择任务的导出数据功能,将处理结果导出为CSV格式文件,可在Excel文件中打开查看或做后续处理。

上图为导出界面,设置为默认状态,点击【确定】即可导出所有处理结果,导出格式首选【CSV】。

 下图为导出的CSV文件在EXCEL中打开的截图,其中地址1和地址2为比较的地址字段。

比较结果字段有:

1、地址分词1:对地址1进行分词的结果。
2、地址分词2:对地址2进行分词的结果。
3、相似度:两个地址比较相似程度。

相似度表,数值表示两个地址相似的级别,例如:105 - 表示地址  省、市、区、镇、村 都相同。

 省 - (101)
 市 - (102)
 区 - (103)
 镇 - (104)
 村 - (105)
街路 - (106)
门牌 - (107)
建筑 - (108)
单元 - (110)
楼层 - (109)
房间 - (111)
号码 - (112)

下面给出详细样例:

待比较的地址

地址1:北京市海淀区北京市海淀区三里河路15号    
地址2:北京市海淀区三里河路15号

比较结果:

分词1:北京市[AddrCity]海淀区[AddrDist]北京市[AddrCity]海淀区[AddrDist]三里河路[AddrRoad]15号[AddrRoadNum] 
分词2:北京市[AddrCity]海淀区[AddrDist]三里河路[AddrRoad]15号[AddrRoadNum] 
相似度:107

上述两个地址比较结果是 相同至 门牌号。

 

【本文完】

 

更多资讯,请访问如下方式

官网:www.GIS9.com 
技术QQ群:1054 7087 07

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
BERT-BiLSTM-CRF是一种基于深度学习的中文分词方法,它结合了BERT预训练模型、双向长短时记忆网络(BiLSTM)和条件随机场(CRF)模型。具体流程如下: 1. 预处理:将中文文本转换为字符序列,并将每个字符转换为对应的向量表示。 2. BERT编码:使用BERT模型对字符序列进行编码,得到每个字符的上下文表示。 3. BiLSTM编码:将BERT编码后的字符向量输入到双向LSTM中,得到每个字符的上下文表示。 4. CRF解码:使用CRF模型对BiLSTM编码后的结果进行解码,得到最终的分词结果。 以下是BERT-BiLSTM-CRF中文分词的Python代码示例: ```python import torch import torch.nn as nn from transformers import BertModel class BertBiLSTMCRF(nn.Module): def __init__(self, bert_path, num_tags): super(BertBiLSTMCRF, self).__init__() self.bert = BertModel.from_pretrained(bert_path) self.lstm = nn.LSTM(input_size=self.bert.config.hidden_size, hidden_size=self.bert.config.hidden_size // 2, num_layers=1, bidirectional=True, batch_first=True) self.dropout = nn.Dropout(p=0.5) self.fc = nn.Linear(self.bert.config.hidden_size, num_tags) self.crf = CRF(num_tags) def forward(self, input_ids, attention_mask): bert_output = self.bert(input_ids=input_ids, attention_mask=attention_mask)[0] lstm_output, _ = self.lstm(bert_output) lstm_output = self.dropout(lstm_output) emissions = self.fc(lstm_output) return emissions def loss(self, input_ids, attention_mask, tags): emissions = self.forward(input_ids, attention_mask) loss = self.crf(emissions, tags, mask=attention_mask.byte(), reduction='mean') return -loss def decode(self, input_ids, attention_mask): emissions = self.forward(input_ids, attention_mask) return self.crf.decode(emissions, attention_mask.byte()) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值