兴趣点识别方法、装置、终端设备及存储介质与流程

文档序号:15969595发布日期:2018-11-16 23:23阅读:180来源:国知局

本发明涉及计算机技术领域,尤其涉及一种兴趣点识别方法、装置、终端设备及存储介质。

背景技术

随着社会的进步和经济的发展,许多人因业务需要会经常出差,也有些人会利用闲暇之余外出旅游,在陌生的地方往往需要通过智能设备对一些地址或兴趣点进行查找,为了给人们提供方便,许多智能设备都提供语音识别功能进行兴趣点识别。

当前智能设备提供的语音识别功能大多通过使用通用模型,将获取到的自然语言信息进行语音文本转换,来识别其中包含的预设兴趣点,但自然语言中往往存在许多对预设兴趣点干扰的词汇,且由于每个人的表达方式、口音等问题,使得对于自然语言的语音信息中兴趣点的识别准确率不高且效率较低。



技术实现要素:

本发明实施例提供一种兴趣点识别方法、装置、终端设备及存储介质,以解决对自然语言的语音信息中兴趣点的识别准确率低并且识别效率低的问题。

第一方面,本发明实施例提供一种兴趣点识别方法,包括:

获取预设的训练语料库;

使用n-gram模型对所述预设的训练语料库进行分析,得到所述预设的训练语料库的词序列数据,其中,所述词序列数据包括词序列以及每个所述词序列的词序列频度;

若接收到待识别语音信息,则对所述待识别语音信息进行解析,得到所述待识别语音信息的m个发音序列,其中,m为大于1的正整数;

针对每个所述发音序列,依据所述词序列数据,计算每个发音序列的发生概率,从而得到m个发音序列的发生概率;

从m个所述发音序列的发生概率中,选取达到预设概率阈值的发生概率对应的所述发音序列,作为目标发音序列;

从兴趣点信息库中获取与所述目标发音序列对应的兴趣点信息,作为所述待识别语音信息的兴趣点识别结果。

第二方面,本发明实施例提供一种兴趣点识别装置,包括:

训练语料获取模块,用于获取预设的训练语料库;

训练语料分析模块,用于使用n-gram模型对所述预设的训练语料库进行分析,得到所述预设的训练语料库的词序列数据,其中,所述词序列数据包括词序列以及每个所述词序列的词序列频度;

语音信息解析模块,用于若接收到待识别语音信息,则对所述待识别语音信息进行解析,得到所述待识别语音信息的m个发音序列,其中,m为大于1的正整数;

发生概率计算模块,用于针对每个所述发音序列,依据所述词序列数据,计算每个发音序列的发生概率,从而得到m个发音序列的发生概率;

发音序列确认模块,用于从m个所述发音序列的发生概率中,选取达到预设概率阈值的发生概率对应的所述发音序列,作为目标发音序列;

识别结果获取模块,用于从兴趣点信息库中获取与所述目标发音序列对应的兴趣点信息,作为所述待识别语音信息的兴趣点识别结果。

第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述兴趣点识别方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述兴趣点识别方法的步骤。

本发明实施例所提供的兴趣点识别方法、装置、终端设备及存储介质,通过获取预设的训练语料库,再使用n-gram模型对训练语料库进行分析,得到训练语料库的词序列数据,通过预先分析统计出所有词序列数据,方便后续计算发生概率时可直接使用词序列数据,从而节省了计算概率的时间,提高了效率,在接收到待识别语音信息时,对待识别语音信息进行解析,得到待识别语音信息的m个发音序列,针对每个发音序列,依据词序列数据,计算每个发音序列的发生概率,从得到的m个发音序列的发生概率中,选取达到预设概率阈值的发生概率对应的发音序列作为目标发音序列,进而从兴趣点信息库中获取与目标发音序列对应的兴趣点信息,作为待识别语音信息的兴趣点识别结果。通过对所有发音序列的概率进行计算,选取符合条件的概率作为结果,实现对语音信息的含义进行准确识别,从而提升了兴趣点识别的准确率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的兴趣点识别方法的实现流程图;

图2是本发明实施例提供的兴趣点识别方法中步骤s4的实现流程图;

图3是本发明实施例提供的兴趣点识别方法中得到训练语料库的实现流程图;

图4是本发明实施例提供的兴趣点识别方法中构建兴趣点信息库的实现流程图;

图5是本发明实施例提供的兴趣点识别方法中生成补充语料库的实现流程图;

图6是本发明实施例提供的兴趣点识别装置的示意图;

图7是本发明实施例提供的终端设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1示出本发明实施例提供的兴趣点识别方法的实现流程图。该兴趣点识别方法应用在对自然语言的语音信息中的兴趣点的识别场景中。该识别场景包括服务端和客户端,其中,服务端和客户端之间通过网络进行连接,用户通过客户端发送自然语言中的语音信息,客户端具体可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务端具体可以用独立的服务器或者多个服务器组成的服务器集群实现。本发明实施例提供的兴趣点识别方法应用于服务端,详述如下:

s1:获取预设的训练语料库。

具体地,训练语料库是用来为了对自然语言中的语音信息进行评估,而使用相关语料进行训练得到的语料库,本发明实施例中训练语料库中的内容包含但不限于:兴趣点信息和通用语料库等。

其中,语料库(corpus)是指经科学取样和加工的大规模电子文本库。语料库是语言学研究的基础资源,也是经验主义语言研究方法的主要资源,应用于词典编纂,语言教学,传统语言研究,自然语言处理中基于统计或实例的研究等方面,语料,即语言材料,语料是语言学研究的内容,也是构成语料库的基本单元。

s2:使用n-gram模型对预设的训练语料库进行分析,得到预设的训练语料库的词序列数据,其中,词序列数据包括词序列以及每个词序列的词序列频度。

具体地,通过使用n-gram模型对预设的训练语料库中每个语料进行统计分析,得出预设的训练语料库中一个语料h出现在另一个语料i之后的次数,进而得到“语料i+语料h”组成的词序列出现的词序列数据。

其中,词序列是指由至少两个语料按照一定顺序组合而成的序列,词序列频度是指该词序列出现的次数占整个语料库中分词(wordsegmentation)出现次数的比例,这里的分词指的是将连续的字序列按照预设的组合方式进行组合得到的词序列。例如,某个词序列“爱吃西红柿”在整个语料库中出现的次数为100次,整个语料库所有分词出现的次数之和为100000次,则词序列“爱吃西红柿”的词序列频度为0.0001。

其中,n-gram模型是大词汇连续语音识别中常用的一种语言模型,利用上下文中相邻词间的搭配信息,在需要把连续无空格的拼音转换成汉字串(即句子)时,可以计算出具有最大概率的句子,从而实现到汉字的自动转换,无需用户手动选择,避开了许多汉字对应一个相同的拼音的重码问题。

通过使用n-gram模型对预设的训练语料库的每个词序列数据进行分析,使得后续在计算发生概率时直接使用这些词序列数据即可,节省了计算时间,提高了兴趣点识别的效率。

s3:若接收到待识别语音信息,则对待识别语音信息进行解析,得到待识别语音信息的m个发音序列,其中,m为大于1的正整数。

具体地,每个汉语发音对应一个或多个汉字,服务端在接收到用户在客户端输入的待识别语音信息后,通过声学解码器对该待识别语音信息进行解码,转化得到多个发音序列。

其中,发音序列是指语音信息经过转化,得到的包含至少两个分词的文字序列。

例如,在一具体实施方式中,将这一待识别语音信息“woxihuanchizhongguomeishi”经声学解码后提取到的发音序列可以为发音序列a:“我”、“喜欢”、“吃”、“中国”、“美食”,也可以为发音序列b:“我”、“喜欢”、“驰中”、“国美”、“食”,还可以为发音序列c:“我”、“西环”、“持”、“中国”、“没事”等。

s4:针对每个发音序列,依据词序列数据,计算每个发音序列的发生概率,从而得到m个发音序列的发生概率。

具体地,根据步骤s2中获取到的词序列数据,对每个发音序列进行发音概率计算,得到m个发音序列的发生概率。

对发音序列计算发生概率具体可使用马尔科夫假设理论:第y个词的出现只与前面y-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计y个词同时出现的次数得到。即:

p(t)=p(w1w2...wy)=p(w1)p(w2|w1)...p(wy|w1w2...wy-1)公式(1)

其中,p(t)为整句出现的概率,p(wy|w1w2...wy-1)为第y个分词出现在y-1个分词组成的词序列之后的概率。

例如:在“中华民族是一个有着悠久文明历史的民族”这句话进行语音识别后,划分的一种发音序列为:“中华民族”、“是”、“一个”、“有着”、“悠久”、“文明”、“历史”、“的”、“民族”,一共出现了9个分词,当n=9的时候,即计算“民族”这个分词在出现在“中华民族是一个有着悠久文明历史的”这个词序列之后的概率。

s5:从m个发音序列的发生概率中,选取达到预设概率阈值的发生概率对应的发音序列,作为目标发音序列。

具体地,针对每个发音序列,通过步骤s4的计算均得到一个发生概率,共得到m个发音序列的发生概率,将这m个发音序列的发生概率分别与预设概率阈值进行比较,选取大于或者等于预设概率阈值的发生概率,作为有效发生概率,进而找到有效发生概率对应的发音序列,将这些发音序列作为目标发音序列。

通过与预设概率阈值进行比较,过滤掉发生概率不符合要求的发音序列,从而使得选取的目标发音序列更为接近自然语音中表达的含义,提高了兴趣点识别的准确率。

需要说明的是,若计算出的m个发音序列的发生概率均小于预设的概率阈值,将向用户推送提醒信息,例如,“未找到目标位置,请确认您的发音规范并进行重新尝试”,同时,收录该条语音信息记录并发送给后台管理人员。若目标发音序列个数大于预设个数,按照其对应的发生概率的大小顺序进行排序,并选取排序前面的预设个数发音序列作为目标发音序列,例如,预设的个数为5个,则在将有效发生概率进行排序后,选取排序前5个的有效发生概率,进而得到这5个发生概率对应的发音语序作为目标发音序列。

s6:从兴趣点信息库中获取与目标发音序列对应的兴趣点信息,作为待识别语音信息的兴趣点识别结果。

具体地,在获取到目标发音序列后,从兴趣点信息库中获取目标发音序列中包含的兴趣点信息,并将该兴趣点信息作为语音信息的兴趣点识别结果推送给用户。

在图1对应的实施例中,通过获取预设的训练语料库,再使用n-gram模型对预设的训练语料库进行分析,得到预设的训练语料库的词序列数据,通过预先分析统计出所有词序列数据,方便后续计算发生概率时可直接使用词序列数据,从而节省了计算概率的时间,提高了效率;在接收到待识别语音信息时,对待识别语音信息进行解析,得到待识别语音信息的m个发音序列,针对每个发音序列,依据词序列数据,计算每个发音序列的发生概率,从得到的m个发音序列的发生概率中,选取达到预设概率阈值的发生概率对应的发音序列作为目标发音序列,进而从兴趣点信息库中获取与目标发音序列对应的兴趣点信息,作为待识别语音信息的兴趣点识别结果,这种通过对发音序列的概率进行计算,并选取符合条件的概率作为结果的筛选方式,能够实现对语音信息的含义进行准确识别,从而提升了兴趣点识别的准确率。

接下来,在图1对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s4中所提及的针对每个发音序列,依据词序列数据,计算该发音序列的发生概率的具体实现方法进行详细说明。

请参阅图2,图2示出了本发明实施例提供的步骤s4的具体实现流程,详述如下:

s41:针对每个发音序列,获取该发音序列内的所有分词a1,a2,...,an-1,an,其中,n为大于1的正整数。

需要说明的是,获取该发音序列内的分词是分别按照词序从前到后的顺序依次获取,例如,针对一发音序列“我爱中国”,按照词序从前到后的顺序依次进行分词提取,得到第一个分词“我”,第二个分词“爱”,第三个分词“中国”。

s42:依据词序列数据,使用公式(2)计算n个分词中第n个分词an出现在词序列(a1a2...an-1)之后的概率,将该概率作为发音序列的发生概率:

其中,p(an|a1a2...an-1)为n个分词中第n个分词an出现在词序列(a1a2...an-1)之后的概率,c(a1a2...an-1an)为词序列(a1a2...an-1an)的词序列频度,c(a1a2...an-1)为词序列(a1a2...an-1)的词序列频度。

具体地,由步骤s2可知,每个词序列的词序列频度均通过n-gram模型对训练语料库的分析得出,此处仅需按照公式(2)进行计算即可。

值得说明的是,由于n-gram模型使用的训练语料库较为庞大,而且数据稀疏严重,时间复杂度高,对于兴趣点计算出的发生概率数值偏小,所以也可以使用二元模型来计算发生概率。

其中,二元模型是通过使用公式(2)来分别计算分词a2出现在分词a1之后的概率a1,分词a3出现在分词a2之后的概率a2,...,分词an出现在分词an-1之后的概率an-1,进而使用公式(3)计算整个词序列(a1a2...an-1an)的发生概率:

p(t')=a1a2...an-1

在图2对应的实施例中,针对每个发音序列,获取该发音序列内的所有分词,并计算最后一个分词出现在前面所有分词组合而成的词序列之后的概率来得到整个句子出现的概率,进而评估句子是否合理,从而识别出自然语言的语音信息包含的语义,得到相关要获取的兴趣点名称等信息,有效提高了兴趣点识别的准确率。

在图1或图2对应的实施例的基础之上,在步骤s1提及的获取预设的训练语料库之前,还可以构建训练语料库,如图3所示,该兴趣点识别方法还包括:

s71:构建兴趣点信息库。

具体地,在进行兴趣点识别之前,为了保证兴趣点识别的准确性,需要构建一个包含兴趣点较全面的兴趣点信息库,该兴趣点信息库中包含每个兴趣点的兴趣点信息,可以使用现有的通用模型中包含的兴趣点来生成兴趣点信息库,也可以通过人工采集兴趣点的方式进行兴趣点信息库的构建,或者使用网络爬虫的方式获取兴趣点来构建兴趣点信息库,具体方式在此不做具体限制。

优选地,本发明实施例采用的方式为使用网络爬虫的方式获取兴趣点来构建兴趣点信息库。

其中,兴趣点信息包括但不限于:兴趣点名称,兴趣点所属类别和兴趣点地址等。

s72:基于兴趣点信息库,生成补充语料库。

具体地,对兴趣点信息库中的兴趣点信息进行提取,将获取到的所有兴趣点信息按照预设的处理方式进行处理后作为补充语料库。

其中,具体的处理方式可以是对兴趣点进行分词,也可以是对兴趣点信息进行语义统计等,具体可根据实际需要选择,此处不做限制。

s73:将补充语料库与预设的基础语料库进行组合,得到训练语料库。

具体地,由于使用n-gram模型来对训练语料库进行分析,使得训练语料库必须具有庞大的语料,以便可以对一个句子是否合理做出评估,所以需要使用一个将具有足够语料的预设语料库和补充语料库组合得到训练语料库。

其中,预设的基础语料库根据实际需要来进行选取,例如,选取搜狐近三年财经体育时事等领域的新闻,并经过文本清理和整理生成的语料库作为基础语料库。

在图3对应的实施例中,通过构建兴趣点信息库,并基于兴趣点信息库,生成补充语料库,进而将补充语料库与预设的基础语料库进行组合,得到训练语料库,使得用来进行n-gram模型分析的训练语料库不仅具有评估语句是否合理的能力,还包含了兴趣点的相关信息,从而可以对一条语句中是否包含兴趣点进行准确的评估,有利于提高自然语言的语音信息识别准确率和对兴趣点信息识别的准确率。

在图3对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s71中所提及的构建兴趣点信息库的具体实现方法进行详细说明。

请参阅图4,图4示出了本发明实施例提供的步骤s71的具体实现流程,详述如下:

s711:对预设的基础兴趣点按照预设的分类方式进行分类,得到兴趣点信息库的基础分类。

具体地,按照预先设置好的兴趣点的分类方式,对基础兴趣点进行分类,将该分类作为兴趣点信息库的基础分类,并将每个基础分类包含的兴趣点信息存储到信息点信息库中对应的位置,分类方式具体可以根据实际需要进行设置,此处不作限制。

其中,基础兴趣点是指兴趣点的每个小类,基础分类是指兴趣点的大类,例如,信息点信息库包含的一个基础分类是“美食”,该基础分类下面包含的基础兴趣点有“早餐”、“快餐”、“火锅”、“自助餐”和“酒店”等。

s712:针对每个基础分类,通过网络爬取的方式,获取全国每个行政区中包含该基础分类的所有基础兴趣点的兴趣点信息,得到该基础分类在全国每个行政区的兴趣点信息。

具体地,针对信息点信息库中的每个基础分类,通过网络爬虫(webcrawler),依次爬取全国每个行政区,来获取该行政区包含这个基础分类下所有基础兴趣点的信息,从而得到该基础分类在全国每个行政区的兴趣点信息,按照此方法,获取所有基础分类在全国每个行政区的兴趣点信息。

其中,网络爬虫又称全网爬虫(scalablewebcrawler),爬行对象从一些种子url(uniformresourcelocator,统一资源定位符)扩充到整个web(worldwideweb,全球广域网),主要为门户站点搜索引擎和大型web服务提供商采集数据。网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,网络爬虫的结构大致可以分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、url队列、初始url集合几个部分。为提高工作效率,通用网络爬虫会采取一定的爬行策略。常用的爬行策略有:深度优先策略、广度优先策略。

其中,深度优先策略的基本方法是按照深度由低到高的顺序,依次访问下一级网页链接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点进一步搜索其它链接。当所有链接遍历完后,爬行任务结束。

其中,广度优先策略是按照网页内容目录层次深浅来爬行页面,处于较浅目录层次的页面首先被爬行。当同一层次中的页面爬行完毕后,爬虫再深入下一层继续爬行。这种策略能够有效控制页面的爬行深度,避免遇到一个无穷深层分支时无法结束爬行的问题,实现方便,无需存储大量中间节点。

优选地,本发明实施例采用的爬行策略为广度优先策略。

针对每个基础分类,通过网络爬虫,依次爬取全国每个行政区,来获取该行政区包含这个基础分类下所有基础兴趣点的信息,从而得到该基础分类在全国每个行政区的兴趣点信息的具体实现流程包括步骤a至步骤e,详述如下:步骤a:获取全国各级行政区信息及每个行政区对应的经纬度。

具体地,获取全国每个市级单位的行政区信息,然后获取市级行政区包含的县级行政区信息,进而获取县级行政区包含的区、街道、乡镇等办事处信息。

其中,行政区信息包括但不限于:行政区名称、行政区代码、上级行政区信息和下级行政区信息等,例如,如表一所示,表一是获取到的行政区代码为440300的行政区信息。

表一

进一步地,获取每个行政区对应的经纬度信息。

其中,经纬度是经度与纬度的合称组成一个坐标系统。称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。

我国常用的经纬度坐标系统包括但不限于:wgs84坐标系(worldgeodeticsystem1984,世界大地坐标系)、北京54坐标系(bjz54)、西安80坐标系(xian80)。

优选地,本发明实施例采用的经纬度坐标系为wgs84坐标系。

步骤b:针对每个行政区k,根据预设的切分边长,对该行政区按照经纬度进行切分,得到n个大小相同的矩形列表。

具体地,全国行政区列表包含若干个行政区,不同行政区大小均不一样。通过获取行政区的经纬度范围,得到四个极点坐标,并将这四个经纬度的坐标作为一个大矩形的四个顶点的坐标,进而得到一个大矩形,通过将这个大矩形按照预设的切分边长分割得到n个矩形。

值得说明的是,不同行政区由于其繁华程度的不一致,存在有些行政区兴趣点密集,有些行政区兴趣点稀疏,从而针对不同的行政区,预设的切分边长可以根据实际情况选择不同的值,针对兴趣点密集的行政区,可以预设偏小一些的切分边长,针对兴趣点稀疏的行政区,可以预设偏大一些的切分边长,以便于后续获取兴趣点的时候,提高爬取的速度,从而提高兴趣点获取的效率。

进一步地,将获取的大矩形的四个顶点经纬度转换成空间直角坐标并按照预设的矩形长和矩形宽进行分割,例如:左下角坐标为(lat_1,lon_1)、右上角坐标为(lat_2,lon_2),设定的切分边长为len,第一个矩形的左下角坐标是lat_1,lon_1,右上角坐标是lat_1+len,lon_1+len;第二个矩形的左下角坐标是lat_1+len,lon_1+len,右上角坐标是lat_1+len,lon_1+len。生成的矩形数量为:

(int((lat_2-lat_1)/len)+1)×(int((lon_2-lon_1)/len)+1)。

其中,int是一个取整函数。例如:int(1.334)=1。

例如,在一具体实施方式中,获取到深圳市的纬度经度范围为:东经-113°46'~114°37',北纬22°27'~22°52',转换成空间直角坐标为左下角(22.45,113.769444)、右上角(22.86667,114.619444)。在实际需求中,将边长可以设置为0.04,依照上述方式,第一个矩形坐标为左下角(22.45,113.769444)、右上角(22.49,113.809444),第二个矩形坐标为左下角(22.53,113.809444)、右上角(22.53,113.809444)。

步骤c:针对基础分类j,依据行政区k的矩形列表,生成该行政区的url列表。

具体地,假设当前基础分类为j,当前行政区为k,则在行政区k的n个矩形列表生成之后,通过网络爬虫对矩形列表进行遍历,爬取每个矩形列表中包含基础分类j下的任一基础兴趣点的url,生成url列表。

例如,在一具体实施方式中,使用网络爬虫爬取百度地图中左下角坐标为(22.53,113.809444)、右上角坐标为(22.53,113.809444)的矩形区域包含的基础兴趣点为“中学”,可使用如下代码:

url=’http://api.map.baidu.com/place/v2/search?query=’中学’&bounds=’+22.53’+’,’+’113.809444’+’,’+’22.53’+’,’+’113.809444’+’,’+’&page_size=20&page_num=’+str(page_num)+’&output=json&ak=9s5gsyzswbmafu8ps2v2vwvdldlqgaao’。

其中,“page_size”是指预设的每页包含的内容的数目,page_num是指分页数量,“ak”(apiconsolekey,ak)为开发人员的百度地图api控制台钥匙。

步骤d:通过对url列表的解析确定基础分类j的兴趣点在行政区k的分布信息,得到该行政区内包含的属于基础分类j的兴趣点信息。

具体地,通过对步骤c中获取到的url列表进行网页解析,获取每个url上包含的基础分类的兴趣点信息,从而得到每个行政区内包含的兴趣点信息。

例如,在一具体实施方式中,获取到的url列表包含了26个url,每个url包含20条兴趣点信息,其中一条兴趣点信息如下:

通过对url上的该地址进行解析,得到的结果为:兴趣点名称为“昆明八中”,其具体地址为“云南省昆明市五华区龙泉路628号”,其所属行政区为“五华区”,其所属街道编号为“35debf29e6063d3aa7da399b”。

步骤e:将获取到的兴趣点信息存入到兴趣点信息库中的对应位置。

具体地,将获取到的兴趣点信息按照所属的基础分类,存入到兴趣点信息库中的对应位置。

以步骤d中获取到的兴趣点信息为例,将兴趣点名称为“昆明八中”的兴趣点信息存入到基础分类为“学校”的基础兴趣点“中学”之中。

在图4对应的实施例中,通过对预设的基础兴趣点按照预设的分类方式进行分类,得到兴趣点信息库的基础分类,进而针对每个基础分类,通过网络爬取的方式,获取全国每个行政区中包含该基础分类的所有基础兴趣点的兴趣点信息,得到该基础分类在全国每个行政区的兴趣点信息,从而获取到全国各个行政区范围内所有的兴趣点信息,使得在进行兴趣点识别时候,能够提供准确全面的兴趣点信息,有利于提升兴趣点识别的准确率。

在图3对应的实施例的基础之上,下面通过一个具体的实施例来对步骤s72中所提及的基于兴趣点信息库,生成补充语料库的具体实现方法进行详细说明。

请参阅图5,图5示出了本发明实施例提供的步骤s72的具体实现流程,详述如下:

s721:提取兴趣点信息库中的兴趣点信息。

具体地,从兴趣点信息库中提取各个基础分类下的基础兴趣点,以及基础兴趣点包含的兴趣点信息。

s722:对兴趣点信息进行分词处理,得到兴趣点分词。

具体地,针对提取出的每一条兴趣点信息,进行中文分词,得到该兴趣点信息的兴趣点分词。

其中,中文分词是指的是将一个汉字序列切分成一个个单独的字。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。

优选地,被发明实施例采用的分词算法为基于理解的分词方法。

例如,在一具体实施方式中,获取到的某个兴趣点信息为“基础分类-美食,基础兴趣点-快餐,兴趣点名称-盐津煲,兴趣点地址-广东省深圳市罗湖区八卦二路盐津煲”可以按照分词得到“美食”、“快餐”、“广东省”、“深圳市”、“罗湖区”、“八卦二路”和“盐津煲”。

s723:建立兴趣点分词与对应的兴趣点信息之间的映射关系,并将兴趣点分词、兴趣点信息和映射关系对应保存到补充语料库中。

具体地,在对兴趣点信息进行分词之后,将获取到的每个兴趣点分词与该兴趣点信息进行关联,形成映射,并将兴趣点分词、兴趣点信息和映射关系对应保存到补充语料库中,以便在识别到某个兴趣点分词时可以找到对应的兴趣点信息,同时,将兴趣点分词、兴趣点信息都放入补充语料库中,可以提高兴趣点的相关信息出现在训练语料中的出现次数。

以步骤s722中获取到的兴趣点分词为例,兴趣点信息为“基础分类-美食,基础兴趣点-快餐,兴趣点名称-盐津煲,兴趣点地址-广东省深圳市罗湖区八卦二路盐津煲”的兴趣点包含的分词集合为:{“美食”,“快餐”,“广东省”,“深圳市”,“罗湖区”,“八卦二路”,“盐津煲”}。

在图5对应的实施例中,通过提取兴趣点信息库中的兴趣点信息,并对兴趣点信息进行分词处理,得到兴趣点分词,进而建立兴趣点分词与对应的兴趣点信息之间的映射关系,并将兴趣点分词、兴趣点信息和映射关系对应保存到补充语料库中,使得补充语料库包含兴趣点信息、兴趣点分词和它们的映射关系,使得在后续兴趣点检测时,能够根据相应的兴趣点分词直接找到对应的兴趣点信息,从而提高兴趣点的识别效率。

在图3对应的实施例的基础之上,在步骤s71提及的构建兴趣点信息库之后,还可以更兴趣点信息区进行更新,该兴趣点识别方法还包括:

若接收到更新指令,则对兴趣点信息库进行实时更新,或者,根据预设的条件,对兴趣点信息库进行自动更新。

可以理解地,兴趣点信息会随着时间变化而有所改变,在一些兴趣点发生变化后,若不对兴趣点信息库做相应更新,在对这些兴趣点进行识别时,将会导致兴趣点无法识别或者识别信息有误,因此,需要对兴趣点信息库进行更新。

具体地,本发明实施例提供了两种兴趣点信息库更新方式,分别是按预设的条件进行更新,以及在接收到用户发送的更新指令时进行实时更新。

其中,按预设的条件进行更新是指在达到预设条件后,触发自动更新程序,进行自动更新,预设的条件可以是预设的更新周期,例如,预设的更新周期为7天,也可以是检测到在步骤s712的中,爬取的url列表发生变化,例如,在检测到同一爬取条件下,爬取结果由之前的16000条变成了17600条,此时,对兴趣点信息库进行更新,具体预设条件可以根据实际情况进行多样灵活的设置,此处不做具体限制。

需要说明的是,兴趣点信息库的更新过程请参照s711中步骤c至步骤e的描述,为避免重复,此处不在赘述。

在本发明实施例中,在接收到更新指令时,对兴趣点信息库进行实时更新或者自动更新,使得兴趣点信息库中包含的兴趣点信息始终保持准确状态,以便在后续进行兴趣点识别时,能够提供准确全面的兴趣点信息,有利于提升兴趣点识别的准确率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上述方法实施例中的兴趣点识别方法,图6示出了与上述方法实施例提供的兴趣点识别方法一一对应的兴趣点识别装置,为了便于说明,仅示出了与本发明实施例相关的部分。

如图6所示,该兴趣点识别装置包括:训练语料获取模块10、训练语料分析模块20、语音信息解析模块30、发生概率计算模块40、发音序列确认模块50和识别结果获取模块60。各功能模块详细说明如下:

训练语料获取模块10,用于获取预设的训练语料库;

训练语料分析模块20,用于使用n-gram模型对预设的训练语料库进行分析,得到预设的训练语料库的词序列数据,其中,词序列数据包括词序列以及每个词序列的词序列频度;

语音信息解析模块30,用于若接收到待识别语音信息,则对待识别语音信息进行解析,得到待识别语音信息的m个发音序列,其中,m为大于1的正整数;

发生概率计算模块40,用于针对每个发音序列,依据词序列数据,计算每个发音序列的发生概率,从而得到m个发音序列的发生概率;

发音序列确认模块50,用于从m个发音序列的发生概率中,选取达到预设概率阈值的发生概率对应的发音序列,作为目标发音序列;

识别结果获取模块60,用于从兴趣点信息库中获取与目标发音序列对应的兴趣点信息,作为待识别语音信息的兴趣点识别结果。

进一步地,发生概率计算模块40包括:

分词序列提取单元41,用于针对每个发音序列,获取该发音序列内的所有分词a1,a2,...,an-1,an,其中,n为大于1的正整数;

发生概率计算单元42,用于依据词序列数据,使用如下公式计算n个分词中第n个分词an出现在词序列(a1a2...an-1)之后的概率,将该概率作为发音序列的发生概率:

其中,p(an|a1a2...an-1)为n个分词中第n个分词an出现在词序列(a1a2...an-1)之后的概率,c(a1a2...an-1an)为词序列(a1a2...an-1an)的词序列频度,c(a1a2...an-1)为词序列(a1a2...an-1)的词序列频度。

进一步地,该兴趣点识别装置还包括:

兴趣点信息库构建单元71,用于构建兴趣点信息库;

补充语料库获取单元72,用于基于兴趣点信息库,生成补充语料库;

训练语料库生成单元73,用于将补充语料库与预设的基础语料库进行组合,得到训练语料库。

进一步地,兴趣点信息库构建单元71包括:

分类划分子单元711,用于对预设的基础兴趣点按照预设的分类方式进行分类,得到兴趣点信息库的基础分类;

信息获取子单元712,用于针对每个基础分类,通过网络爬取的方式,获取全国每个行政区中包含该基础分类的所有基础兴趣点的兴趣点信息,得到该基础分类在全国每个行政区的兴趣点信息。

进一步地,补充语料库获取单元72包括:

信息提取子单元721,用于提取兴趣点信息库中的兴趣点信息;

信息分割子单元722,用于对兴趣点信息进行分词处理,得到兴趣点分词;

语料获取子单元723,用于建立兴趣点分词与对应的兴趣点信息之间的映射关系,并将兴趣点分词、兴趣点信息和映射关系对应保存到补充语料库中。

进一步地,该兴趣点识别装置还包括:

信息库更新模块80,用于若接收到更新指令,则对兴趣点信息库进行实时更新,或者,根据预设的条件,对兴趣点信息库进行自动更新。

本实施例提供的一种兴趣点识别装置中各模块实现各自功能的过程,具体可参考前述方法实施例的描述,此处不再赘述。

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中兴趣点识别方法,或者,该计算机程序被处理器执行时实现上述装置实施例中兴趣点识别装置中各模块/单元的功能。为避免重复,这里不再赘述。

可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号和电信信号等。

图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备90包括:处理器91、存储器92以及存储在存储器92中并可在处理器91上运行的计算机程序93,例如兴趣点识别程序。处理器91执行计算机程序93时实现上述各个兴趣点识别方法实施例中的步骤,例如图1所示的步骤s1至步骤s6。或者,处理器91执行计算机程序93时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块10至模块60的功能。

示例性的,计算机程序93可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器92中,并由处理器91执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序93在终端设备90中的执行过程。例如,计算机程序93可以被分割成训练语料获取模块、训练语料分析模块、语音信息解析模块、发生概率计算模块、发音序列确认模块和识别结果获取模块。各模块的具体功能如装置实施例所示,为避免重复,此处不一一赘述。

终端设备90可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备90可包括,但不仅限于,处理器91、存储器92。本领域技术人员可以理解,图7仅仅是终端设备90的示例,并不构成对终端设备90的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备90还可以包括输入输出设备、网络接入设备、总线等。

所称处理器91可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器92可以是终端设备90的内部存储单元,例如终端设备90的硬盘或内存。存储器92也可以是终端设备90的外部存储设备,例如终端设备90上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器92还可以既包括终端设备90的内部存储单元也包括外部存储设备。存储器92用于存储计算机程序以及终端设备90所需的其他程序和数据。存储器92还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1