深度学习在商户挂牌语义理解的实践

​导读:高德地图拥有几千万的POI兴趣点,例如大厦、底商、学校等数据,而且每天不断有新的POI出现。为了维持POI数据的鲜度,高德会通过大量的数据采集来覆盖和更新。现实中POI名称复杂,多变,同时,名称制作工艺要求严格,通过人工来制作POI名称,需要花费大量的人力成本。

因此,POI名称的自动生成就显得格外重要,而机器对商户挂牌的语义理解又是其中关键的一环。本文主要介绍相关技术方案在高德的实践和业务效果。

一、背景
现实世界中,商户的挂牌各式各样,千奇百怪,如何让机器正确的理解牌匾语义是一个难点。商户挂牌的文本种类有很多,如下图所示,我们可以看到一个商户牌匾的构成。

结合POI的名称制作工艺,我们目前将POI的牌匾的文本行分为4大类:主名称、经营性质(包括经营范围,具体的进行项目)、分店名、噪声(包括非POI文字,地址,联系方式),前面3个类别会参与到POI名称制作中。如上图所示的牌匾,它输出的规范名称应该是“世纪宏图不动产 (兴业路店)”。其中“世纪宏图”是主名称,“不动产”是经营范围,而“兴业路店”是分店名。

从牌匾中找出制作名称所需要的文字,不仅仅需要文本行自身的一些特征,还需要通过结合牌匾上下文,以及图像的信息进行分析。单纯的文本行识别会遇到下面的问题,如下图,在两个牌匾中都提到了“中国电信”,但是它们的意义是不一样的,这时必须结合上下文的理解。

二、技术方案

单纯从文本的语义理解的角度出发,那么这个应该是一个文本分类问题。但是直接的分类效果不佳。现实中在理解牌匾文本行语义的时候,需要结合图形,位置,内容,以及上下文关系综合来判断。为此,我们将商户挂牌理解的这个问题分解成两个子问题来解决,1.如何结合图像、文本、以及空间位置;2.如何结合上下文关系。因此,我们提出了Two-Stages级联模型。

2.1 Two-Stages 级联模型

Two-stages级联模型分为两个主要的阶段:第一阶段提取单文本信息特征,包括文本位置和文本内容等,第二阶段提取牌匾中文本行上下文关系特征,消除只用单个文本识别容易造成的歧义,准确识别出该文本属性。

2.1.1 Stage One 单文本行特征提取

单文本行特征可以分为词性结构(token level)特征和句子语义(sentence level)特征。除此之外,位置信息(PV)也是比较重要的信息,需要进行特征提取和编码。将以上特征进行融合,得到了单文本行特征。

token level层的特征提取方面,结合名称的构成以及名称工艺,我们定义了三种词性: 核心词(C)、通用词(U)、结尾词(T)。在这里我们使用LSTM网络来学习名称的词性序列。

sentence leve层的特征提取方面,由于我们的标注量相对比较少,采用了具有大量先验知识的BERT模型。同时,为了更好的符合当前业务场景的需求,我们结合业务中POI的数据集合,在原来Google官方提供的预训练模型基础上继续pre-training,得到新的模型BERT-POI。

预训练的POI文本语料没有太多的上下文环境,在构造样本时,我们将两个POI名称串起来或是同一个POI随机切分,中间都用SEP隔开,进行多任务学习:缺字补全和预测两个文本行是否属于同一POI。经过实验发现,在POI数据上预训练模型BERT-POI 比Google发布模型BERT-Google,缺字补全和同一POI判定两项任务上名,正确率高20%左右。

此外,将预训练的模型用于下游属性识别任务上,BERT-POI与BERT-Google相比,提升主名称,分店名,营业范围的召回3%~6%。

下图展示了我们预训练的过程图: 

随后,我们对预训练好的BERT-POI在进行了finetune,提取出sentence leve层的特征。

2.1.2 Stage-Two 文本相互关系提取

Stage One提取到了单文本行的特征,那如何去实现上下文的关联,我们加入了Stage Two的模块,模型结构如下:

Stage Two最主要是用BILSTM(Bidirectional LSTM)处理stage one输出特征,能够将当前文本特征和牌匾内其他文本特征进行学习,消除歧义。

三、业务效果

牌匾通过语义理解后,会根据具体的输出类型来制定名称生成的策略。例如:对于单主+噪声牌匾,我们直接将主名称作为POI名称,而对于单主+分店名+经营性质+噪声的牌匾,我们会分析主名称的结构,看是否需要拼接经营性质。

下图展示了当前我们牌匾语义理解和名称的部分拼接策略:

图3.1单主+噪声场景

图3.2 单主+分店名场景

图3.3单主+经营性质场景(主名称中有经营性质)

图3.4 单主+经营性质场景(主名称中无经营性质)

四、小结

目前商户牌匾语义理解模块的准确率在95%以上,在POI的名称自动生成中起到的重要的作用。商户牌匾的语义理解模块只是POI名称自动化的一部分内容,在POI名称自动化中还会涉及到噪声牌匾过滤、牌匾是否依附建筑物、敏感类别、文本的缺失、名称生成、名称纠错等模块。我们会在图文多模态这块更深入的探索,更多地应用于我们现实场景中,生产更多、更高质量的数据。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算与星辰大海的结合——不要回答,来自百亿光年外的未知信号

作者 | 硬核云顶宫责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)今年在疫情的影响下,各国的经济发展都遇到了一些困难,甚至除中国以外的主要经济体都会进入了负增长的情况,不过越是这样的时候,越…

让大数据分析更简单,4步教你玩转MongoDB BI Connector

MongoDB使用BI Connector支持BI组件直接使用SQL或ODBC数据源方式直接访问MongoDB,在早期MongoDB直接使用Postgresql FDW实现 SQL到MQL的转换,后来实现更加轻量级的mongosqld支持BI工具的连接。 安装 BI Connector 参考 Install BI Connectorhttps://docs.mongodb.com/bi-conne…

iosselect简单使用(三级联动)

npm安装 npm install iosselect --save index.html引入文件 <link rel"stylesheet" href"static/iosSelect.css"> <script type"text/javascript" src"static/iosSelect.js"></script> <template><div…

阿里巴巴叔同谈云原生和云计算

本文系『CSDN云计算』对阿里云云原生应用平台负责人叔同的专访&#xff0c;阿里巴巴中间件受权转载。通过本文&#xff0c;您将了解到云计算时代容器技术的发展路径&#xff0c;阿里云在容器领域的产品矩阵、技术迭代以及未来趋势等方面&#xff0c;以及阿里云的容器技术演进历…

谷歌排名第一的编程语言,收下这份资料,小白也能学的会!

学习 Python 的过程中你是否有过这样的问题&#xff1a; 应用方向太多了&#xff0c;不知道该选择哪个&#xff0c;也不知道学习路径是什么。 入门简单&#xff0c;但是精通很难&#xff0c;每次学完做练习项目时都头疼&#xff0c;没思路&#xff0c;甚至怀疑自己不适合编程。…

SpringBoot2 集成xJar插件 动态解密jar包,避免源码泄露或反编译

文章目录一、集成1. 官方介绍地址2. 添加仓库和插件3. 编译打包二、安装go环境和编译2.1. 安装go2.2. 编译三、运行3.1. 正常运行3.2. 二次加密运行3.3. 测试结果四、IntelliJ IDE 反编译测试4.1. 将加密的jar进行解压4.2. 打开解压后的文件夹4.3. class文件查看4.4. 配置文件反…

通过网络地址进行真机调试

开发调试&#xff1a; 1.修改webpack创建的本地的服务器地址为开发的网络地址或者是全网段0.0.0.0 2.调试的时候直接使用配置的地址去访问当前的服务器 3.调式的时候可以直接在手机上查看&#xff0c;如果需要看log&#xff0c;打开chrome进行调试 4.检测到手机后webview调试可…

每秒7亿次请求,阿里新一代数据库如何支撑?

阿里妹导读&#xff1a;Lindorm&#xff0c;就是云操作系统飞天中面向大数据存储处理的重要组成部分。Lindorm是基于HBase研发的、面向大数据领域的分布式NoSQL数据库&#xff0c;集大规模、高吞吐、快速灵活、实时混合能力于一身&#xff0c;面向海量数据场景提供世界领先的高…

拼不过 GO?阿里如何重塑云上的 Java

阿里妹导读&#xff1a;Java 诞生于20年前&#xff0c;拥有大量优秀的企业级框架&#xff0c;践行 OOP 理念&#xff0c;更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今&#xff0c;在要求快速迭代交付的云场景下&#xff0c;语言的简单性似乎成了首要的要…

centos7 修改默认yum源为国内的阿里云

# 安装wget yum -y install wget# 备份当前的yum源 mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex# echo 新建空的yum源设置目录 mkdir /etc/yum.repos.d# echo 下载阿里云的yum源配置 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Cento…

腾讯云数据库 MySQL 8.0 正式上线,性能全面超越官方版本

7月8日&#xff0c;拥有60全新特性&#xff0c;性能全面超越官方版本的腾讯云MySQL 8.0正式发布。在全新引擎的驱动下&#xff0c;在MySQL官方版本大幅度提升性能的基础上&#xff0c;腾讯云MySQL8.0数据库通过优化锁系统&#xff0c;事务系统等模块&#xff0c;进一步提升性能…

android studio打包纯H5项目(集成5+SDK)

下载地址 http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/103 我们下载5SDK直接复制demo出来 可以自行修改名字&#xff0c;上面两个dome都可以使用 使用Android Studio打开后 默认目录结构如下 替换HTML文件 找到目录下app/src/main/assets/apps/HelloH5/www…

Apache Flink CEP 实战

本文根据Apache Flink 实战&进阶篇系列直播课程整理而成&#xff0c;由哈啰出行大数据实时平台资深开发刘博分享。通过一些简单的实际例子&#xff0c;从概念原理&#xff0c;到如何使用&#xff0c;再到功能的扩展&#xff0c;希望能够给打算使用或者已经使用的同学一些帮…

docker 加速镜像 阿里云镜像

https://blog.csdn.net/weixin_40816738/article/details/113825637

图神经网络(AliGraph)在阿里巴巴的发展与应用

背景 为什么做GNN? 在大数据的背景下&#xff0c;利用高速计算机去发现数据中的规律似乎是最有效的手段。为了让机器计算的有目的性&#xff0c;需要将人的知识作为输入。我们先后经历了专家系统、经典机器学习、深度学习三个阶段&#xff0c;输入的知识由具体到抽象&#xf…

实用!五款新型 Linux 命令行工具

作者 | Ricardo Gerardi译者 | 弯月&#xff0c;责编 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;在Linux/Unix系统的日常使用中&#xff0c;我们需要使用很多命令行工具来完成工作&#xff0c;以及理解和管理我们的系统&#xff0c;例如使用du来监视磁盘…

regedit或child_process添加注册表

使用regedit包添加注册表&#xff0c;regedit是对node的子进程模块进行了封装&#xff0c;使得我们不用去写shell脚本或者window命令之类的 安装 npm install --save regedit使用&#xff0c;注意这里我是把作者的vbs目录拷贝到我的项目里了&#xff0c;要不然无法使用&#…

从零开始入门 K8s | 手把手带你理解 etcd

导读&#xff1a;etcd 是用于共享配置和服务发现的分布式、一致性的 KV 存储系统。本文从 etcd 项目发展所经历的几个重要时刻开始&#xff0c;为大家介绍了 etcd 的总体架构及其设计中的基本原理。希望能够帮助大家更好的理解和使用 etcd。 一、etcd 项目的发展历程 etcd 诞生…

minio 单机安装、部署 centos7环境

文章目录一、默认模式下载运行1. 下载2. 访问minio控制台3. 创建目录3. 上传文件二、企业自定义模式2.1. 指定用户密码2.2. 配置目录2.3. 控制台端口2.4. 启动2.5. minio控制台登录2.6. 效果图一、默认模式下载运行 1. 下载 官网地址&#xff1a;https://docs.min.io/docs/ …

Kubernetes 日志查询分析实践

准备工作 为了完成后续的相关操作&#xff0c;我们需要准备一个 K8s 集群&#xff0c;操作步骤如下&#xff1a; 登陆容器服务控制台。创建一个标准托管集群&#xff08;杭州区域&#xff09;&#xff0c;在向导中勾选上【使用 EIP 暴露 API Server】 和【使用日志服务】。集…