# 基于深度学习的企业实体识别
## 摘要
随着深度学习技术的发展,文字识别与自然语言处理近年来受到广泛关注。结合文字识别与自然语言处理技术解决传统方法无法处理的问题,成为企业提高自身竞争力的重要利器。
## 需求分析
### 背景及研究意义
实体识别技术在布局各类证件、通用文字识别等相关领域都有着重要应用前景,我们相信实体识别技术将会支持更多应用场景,满足更多用户的需求。例如,通过拍照扫描等方式,提供身份信息的快速自动录入体验,以提高边检/酒店/旅游/公共安全以及电商等行业领域的工作效率;自然场景实体识别可以捕获现实中多种场景下的文字,可有效支持虚拟现实、人机交互、图像检索、无人驾驶、车牌识别、工业自动化等领域中广泛的应用。综上,实体识别技术有着广泛的应用前景。
### 作品简介
企业实体识别主要应用在我们目前业务系统中的查证功能。查证功能的主要作用是将用户拍摄的店铺照片经过OCR识别后进行店铺名称的提取,然后通过店铺名称查询证照库,获取该店铺办理过的所有证照信息,方便用户进一步了解该店铺。在日常应用中,例如外出就餐时利用我们的系统随手拍摄要就餐的饭店门脸,系统会自动检测该饭店证照是否齐全以及所办证照的详细信息,方便用户做出就餐决策。
参赛者可以用附件提供的50张图片作为测试数据,提取出文字信息后汇总进Excel作为交付文件,此外附件还包括一个txt文件,文件中每行表示每张图片的标准输出。
### 特色描述
我们的作品相对于现有的企业实体识别技术主要有以下主要特色:
- 更快的收敛速度
传统的系统往往需要较大的训练数据集才可以得到较好的测试精度,这就十分不利于提升中小型企业在市场中的竞争力,我们通过进行前置文字转移技术来使得作品有了更快的收敛速度,更利于中小型企业的应用。
- 更快的相应速度
相对于传统的OCR算法在文字识别时更注重查全率不同,我们的系统更关注一张图片中的主要内容,也即是较大的商标LOGO,而不用去关注那些与企业名称识别无关的部分。
- 更巧妙的算法带来更准确的识别结果
市面上现有的算法几乎都是完全基于深度学习的判断,这样不仅让系统的运行速度降低,更重要的是这样的做法在复杂环境下会降低准确率,我们小组在深度学习的基础上增加了商标面积权重,这样的作法基于人的想法:人往往会将那些期望的景物放在图片最显眼的位置。
### 应用前景
企业实体识别技术在布局各类证件、通用文字识别等相关领域都有着重要应用前景,我们相信未来企业实体识别技术将会支持更多应用场景,满足更多用户的需求。例如,通过拍照扫描等方式,提供身份信息的快速自动录入体验,以提高边检/酒店/旅游/公共安全以及电商等行业领域的工作效率;自然场景企业实体识别可以捕获现实中多种场景下的文字,可有效支持虚拟现实、人机交互、图像检索、无人驾驶、车牌识别、工业自动化等领域中广泛的应用。综上,我们的项目有着广泛的应用前景。
### 需求描述
#### 功能性需求
1. 程序能够自动读取图片所在的文件夹路径。
2. 从图片文件夹路径中顺序取出图片进行识别。
3. 能够尽可能识别出图片中的所有文字,接着从文字中精确识别商铺名称。
4. 最终的识别结果以一份汇总的Excel交付
#### 非功能性需求
1. 程序源码要求结构清晰。
2. 建议但不强求使用人工智能领域深度学习技术进行实现。
3. 使用GPU(图形处理器)加速计算。
### 实验条件
1. 操作系统使用Windows10。
2. 开发语言使用Python3。
3. 使用Pytorch实现模型训练。
## 概要设计
#### 架构设计
为了使您可以更直观,方便的了解本系统的架构模式,我们绘制了如下的系统架构图:
<img src="images/软件设计文档/总体架构.png" style="zoom:80%;" />
#### 使用的技术
- 文字检测
- 文字识别
- 命名实体识别
#### 算法交互架构
本项目有三个主要的模块即:文字检测,文字识别与命名实体识别,其中:
1. 文字检测与文字识别将直接通过数据流进行交互,并且这两项算法由于已经较为稳定,它们被封装在一个Docker容器中。
2. 文字识别与命名实体识别之间将通过套接字进行交互,这也是为了后期可能的分布式处理做准备。
3. 在我们优化过程中也对图片进行了加工,这时图片将直接通过读写文件的方式进行交互。
## 详细设计
我们根据架构设计的结果绘制出了如下的数据流图
<img src="images/软件设计文档/数据流图.jpg" style="zoom:80%;" />
即:
1. 用户打开软件,输入期望识别的图片所在文件夹
2. 程序会根据用户输入的文件路径读入相应的图片
3. 程序会根据图片的大小情况进行压缩
4. 图片会被交给文字检测模块,检测后输出文字所在区域坐标
5. 文字识别模块接收到文字区域信息自动识别区域内的文字信息
6. 系统将识别出的文字信息交给自然语言处理模块
7. 自然处理模块通过中文文本语义识别和面积加权判断出最可能企业实体名称并传递给主函数
8. 主函数接收到自然语言处理模块返回的数据,将数据按照格式要求写入excel文件以及一个txt文件,同时向用户返回成功的消息
其中:
- 文字检测模块使用EAST算法
- 文字识别模块使用CRNN+CTC算法
- 自然语言处理模块使用Aho-Corasick算法
整个项目过程中python代码需严格按照Google开源项目风格指南完成,除此之外要特别注重变量的可读性命名,所有代码都尽可能有详尽的注释。Java代码需严格遵守阿里巴巴Java开发手册要求进行编码。
除此之外还要注意文档的书写以及文件目录结构的组织,以增强代码的可重用性,可扩展性以及可维护性。
## 文字检测模块
### EAST算法
#### 核心思想
- 提出了两段式的文本检测方法,FCN+NMS,消除多过程造成的中间误差累计,减少了检测时间
- 模型可以进行单词级别检测,又可以进行文本行检测,检测的形状可以是任意形状的四边形也可以是普通的四边形
- 采用了`Locality-Aware NMS`的预测框过滤
网络结构如下所示
<img src="images/软件设计文档/east.jpg" style="zoom:80%;" />
#### Pipeline
- 先用一个通用的网络(论文中采用的是PVAnet,实际在使用的时候可以采用VGG16,Resnet等)作为base net ,用于特征提取
> 此处对PAVnet进行一些说明,PAVnet主要是对VGG进行了改进并应用于目标检测任务,主要针对FasterRcnn的基础网络进行了改进,包含`mCReLU,Inception,Hyper-feature`各个结构
>
> ![](images/软件开发文档/PVAnet.png)
>
> 在论文总的基础网络用的是`PVAnet`的基础网络,具体参数如下所示
>
> ![](images/软件开发文档/PVAnetParam.png)
>
> 对于mCReLU结构和Inception结构如下所示
>
> ![](images/软件开发文档/PVAnet_crelu_inception.png)
- 基于上述主干特征提取网络,抽取不同层的`featuremap`(它们的尺寸分别是inuput-image的132,116,18,14132,116,18,14,这样可以得到不同尺度的特征图,这样做的目的是解决文本行尺度变换剧烈的问题,ealy-stage可用于预测小的文本行(较大的特征图),late-stage可用于预测大的文本行(较小的特征图)。
-
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【探索人工智能的宝藏之地】 无论您是计算机相关专业的在校学生、老师,还是企业界的探索者,这个项目都是为您量身打造的。无论您是初入此领域的小白,还是寻求更高层次进阶的资深人士,这里都有您需要的宝藏。不仅如此,它还可以作为毕设项目、课程设计、作业、甚至项目初期的立项演示。 【人工智能的深度探索】 人工智能——模拟人类智能的技术和理论,使其在计算机上展现出类似人类的思考、判断、决策、学习和交流能力。这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言处理和计算机视觉的实战项目源码,助您从理论走向实践,如果您已有一定基础,您可以基于这些源码进行修改和扩展,实现更多功能。 【期待与您同行】 我们真诚地邀请您下载并使用这些资源,与我们一起在人工智能的海洋中航行。同时,我们也期待与您的沟通交流,共同学习,共同进步。让我们在这个充满挑战和机遇的领域中共同探索未来!
资源推荐
资源详情
资源评论
收起资源包目录
人工智能项目资料-基于深度学习的企业实体识别.zip (816个子文件)
libonnxruntime.so.1.3.0 87.12MB
libonnxruntime.so.1.3.0 10.08MB
libonnxruntime.so.1.3.0 10.08MB
ctpn.bin 52.19MB
crnn.bin 41.86MB
chunk-vendors.9d96bc97.css 456KB
app.77d50329.css 1KB
TagPKU98.csv 16KB
index.html 869B
favicon.ico 3KB
训练-识别成功率.ipynb 125KB
训练-识别成功率-checkpoint.ipynb 125KB
测试集大小-用时图.ipynb 113KB
测试集大小-用时图-checkpoint.ipynb 113KB
FFT.ipynb 3KB
FFT-checkpoint.ipynb 72B
OrganizationDictionary.java 155KB
Pinyin.java 92KB
FeatureExtractor.java 49KB
MDAG.java 49KB
DoubleArrayTrie.java 38KB
MutableDoubleArrayTrieInteger.java 35KB
ArcEagerBeamTrainer.java 32KB
HanLP.java 32KB
Matrix.java 32KB
NeuralNetworkParser.java 27KB
Segment.java 27KB
AhoCorasickDoubleArrayTrie.java 26KB
AbstractLexicalAnalyzer.java 26KB
TaggerImpl.java 24KB
KBeamArcEagerParser.java 24KB
Args.java 23KB
String2PinyinConverter.java 23KB
CustomDictionary.java 22KB
IOUtil.java 21KB
SegmentTest.java 21KB
Word2VecTraining.java 20KB
TestPinyinGuesser.java 20KB
WordBasedSegment.java 19KB
Options.java 18KB
MDAGNode.java 18KB
Utility.java 18KB
TextUtility.java 17KB
NeuralNetworkClassifier.java 17KB
BinTrie.java 17KB
Preconditions.java 17KB
Nature.java 16KB
Encoder.java 15KB
ClusterAnalyzer.java 15KB
ParseThread.java 14KB
DoubleArrayBuilder.java 14KB
CRFModel.java 14KB
DoubleArrayTrieInteger.java 14KB
Occurrence.java 14KB
LinearModel.java 14KB
Mcsrch.java 13KB
CoNLLReader.java 13KB
State.java 13KB
Sentence.java 13KB
EncoderFeatureIndex.java 13KB
PerceptronTrainer.java 13KB
MaxEntModel.java 13KB
Vertex.java 12KB
TestMakePinYinDictionary.java 12KB
CoreDictionary.java 12KB
DawgBuilder.java 12KB
AveragedPerceptron.java 11KB
TestMakeTranslateName.java 11KB
WordNet.java 11KB
NTDictionaryMaker.java 10KB
SimpleMDAGNode.java 10KB
CRFSegment.java 10KB
MutableDoubleArrayTrie.java 10KB
DictionaryMaker.java 10KB
LbfgsOptimizer.java 10KB
LogLinearModel.java 10KB
HiddenMarkovModel.java 10KB
Viterbi.java 9KB
FeatureIndex.java 9KB
NRDictionaryMaker.java 9KB
CoreBiGramTableDictionary.java 9KB
CommonSynonymDictionary.java 9KB
Trie.java 9KB
CharacterBasedGenerativeModel.java 9KB
TestUtility.java 9KB
TextRankSentence.java 9KB
POSInstance.java 9KB
ByteUtil.java 9KB
CWSInstance.java 9KB
BaseChineseDictionary.java 8KB
NShortPath.java 8KB
NShortSegment.java 8KB
PosTagUtil.java 8KB
ViterbiSegment.java 8KB
DictionaryMakerTest.java 8KB
PerceptronClassifier.java 8KB
SecondOrderHiddenMarkovModel.java 8KB
TfIdfCounter.java 8KB
Cluster.java 8KB
CRFModelTest.java 8KB
共 816 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- git使用文档(一步一步教你使用Git仓库管理代码)
- 进制转换(通用版).cpp
- linux实践之从DistroWatch排名第三的EndeavourOS转到排名第五的Manjaro工作机迁移
- Discuz模板+资讯博客课程干货+商业版(GBK+UTF)
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本123.0.6292.0)
- RB308A-SOT23-5 单节锂电池保护IC 深圳市可芯电子有限公司.pdf
- Ubuntu下安装JDK
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本123.0.6291.0)
- Android基础之用Eclipse建立工程
- WZLR(2).ipynb
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功