发明内容
本发明提供一种词典处理方法、处理装置、服务器和语音交互系统。
本发明实施方式的词典处理方法用于服务器,所述词典处理方法包括:
采集各个垂直领域的原始数据并转换所述原始数据为设定格式的中间数据;和
根据所述中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,其中,关系型数据库用于存储所述全量领域词典的数据并可对其中的单条数据执行包括新增、修改和删除在内的任意一项操作,非关系数据库用于对所述全量领域词典的查询。
在某些实施方式中,所述原始数据包括第一原始数据和第二原始数据,所述第一原始数据是通过各个垂直领域数据提供商的开放接口所采集,所述第二原始数据是已存储的数据。
在某些实施方式中,所述设定格式包括词典类型、词条的归一词和词条的同义词。
在某些实施方式中,根据所述中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,包括:
对所述中间数据进行抽取加载转换处理以生成所述全量领域词典的关系型数据库版本和非关系型数据库版本。
在某些实施方式中,所述词典处理方法还包括:
对所述全量领域词典的关系型数据库版本和非关系型数据库版本进行实时增量更新。
在某些实施方式中,对所述全量领域词典的关系型数据库版本和非关系型数据库版本进行实时增量更新,包括:
根据变更消息,操作所述全量领域词典的关系型数据库版本,所述变更消息包括同义词;
基于所述同义词,全局查询所述全量领域词典的关系型数据库版本的相关记录并得到查询结果;
将所述查询结果生成新的键值对;
将所述新的键值对同步到所述全量领域词典的非关系型数据库版本。
在某些实施方式中,所述词典处理方法还包括:
使用所述全量领域词典的关系型数据库版本和非关系型数据库版本进行自然语言理解处理。
在某些实施方式中,使用所述全量领域词典的关系型数据库版本和非关系型数据库版本进行自然语言理解处理,包括:
获取输入的文本内容;
根据所述文本内容,查询所述全量领域词典的关系型数据库版本和非关系型数据库版本;
输出查询结果。
本发明实施方式的词典处理装置用于服务器,所述词典处理装置包括:
预处理模块,所述预处理模块用于采集各个垂直领域的原始数据并转换所述原始数据为设定格式的中间数据;和
生成模块,所述生成模块用于根据所述中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,其中,关系型数据库用于存储所述全量领域词典的数据并可对其中的单条数据执行包括新增、修改和删除在内的任意一项操作,非关系数据库用于对所述全量领域词典的查询。
在某些实施方式中,所述词典处理装置还包括:
更新模块,所述更新模块用于对所述全量领域词典的关系型数据库版本和非关系型数据库版本进行实时增量更新。
在某些实施方式中,所述词典处理装置还包括:
使用模块,所述使用模块用于使用所述全量领域词典的关系型数据库版本和非关系型数据库版本进行自然语言理解处理。
本发明实施方式的服务器包括存储器和处理器,所述存储器存储有计算机程序,所述处理器用于执行所述程序以实现上述任一实施方式的词典处理方法。
本发明实施方式的语音交互系统包括车辆和服务器。
本发明实施方式的词典处理方法、词典处理装置、服务器和语音交互系统中,词典数据的涵盖范围广,可以覆盖到文本内容在不同垂直领域的精确语义含义,而且词典以数据库版本存在,可以提升词典的检索速度。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1,本发明实施方式的词典处理方法用于服务器,词典处理方法包括:
步骤S12:采集各个垂直领域的原始数据并转换原始数据为设定格式的中间数据;
步骤S14:根据中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,其中,关系型数据库用于存储全量领域词典的数据并可对其中的单条数据执行包括新增、修改和删除在内的任意一项操作,非关系数据库用于对全量领域词典的查询。
本发明实施方式的词典处理方法,词典数据的涵盖范围广,可以覆盖到文本内容在不同垂直领域的精确语义含义,而且词典以数据库版本存在,可以提升词典的检索速度。
在相关技术中,词典处理装置提取文本内容语义含义主要是基于NER技术和词典技术。NER技术只能识别文本内容中关键词的词性和词的通用含义,而且准确率不高,难以覆盖文本内容在不同垂直领域的精确语义含义。词典技术方案存在以下几方面问题:1、词典数据涵盖范围有限,只包含某一个或某几个垂直领域适用的词典数据;2、词典检索速度慢,难以适用于实时语音交互系统的语义理解要求等问题。
也即是说,基于NER技术提取文本内容的关键词的词性和词的通用含义,准确率不高,而且容易产生过拟合,使得提取文本内容语义含义超出实际表达范围,此外,通用的识别多种类型的命名实体的系统性能也较差。基于关系型数据库的词典技术,词语数据的覆盖范围有限,而且难以提供线上高效的检索速度。
而本发明实施方式的词典处理方法,可结合不同垂直领域的原始数据构建基于内存存储的语义词典,这样词典数据的涵盖范围广,可以覆盖到文本内容在不同垂直领域的精确语义含义,而且词典以数据库版本存在,可以提升词典的检索速度。
具体地,在步骤S12中,在某些实施方式中,垂直领域包括地图、音乐、车控和问答。请结合图2,原始数据包括第一原始数据和第二原始数据,第一原始数据是通过各个垂直领域数据提供商的开放接口所采集,第二原始数据是已存储的数据。如此,词典数据的涵盖范围广。进一步地,通过各个垂直领域数据提供商的开放接口第一原始数据,然后第一原始数据和第二原始数据统一进行预处理和格式转换操作,生成设定格式的中间数据。
在步骤S14中,在某些实施方式中,关系型数据库包括Oracle、DB2、Microsoft SQLServer、Microsoft Access和MySQL,非关系型数据库包括Cassandra、Mongodb、CouchDB、Redis、Riak、Membase、Neo4j和HBase,关系型数据库与非关系型数据库配合使用,提升全量领域词典的数据涵盖范围和检索速度,满足实时自然语言理解对时延的要求。
在一个例子中,全量领域词典涵盖了车载语音交互系统的主要垂直领域,全量领域词典包括MySQL数据表版本和Redis数据库版本,全量领域词典总计有3400万以上的词条,领域词典查询速度快,查询的平均耗时是11ms。通过查询全量领域词典,自然语言理解服务可将文本内容中能确定表达文本内容意图的精确语义解析出来,使得语音交互系统的语义理解的正确率高,用户体验佳。
在某些实施方式中,设定格式包括词典类型、词条的归一词和词条的同义词。
如此,原始数据经过预处理和转换后,生成设定格式的中间数据。具体地,中间数据的第一列为词典类型,中间数据的第二列为词条的归一词,中间数据的第三列为词条的同义词。词典类型定义不同垂直领域中词条的类型,词条具有标准说法和泛化说法,词条的归一词为词条的标准说法,词条的同义词为词条的泛化说法。
在一个例子中,请结合表1,表1为设定的音乐垂直领域的中间数据。设定音乐垂直领域的词典类型包括play_words、music_song、music_singer、music_lyricist、musis_composer和music_album。其中,play_words表示播放含义的动作词;music_song表示歌曲的名称;music_singer表示歌曲的演唱者;music_lyricist表示歌曲的词作者;musis_composer表示歌曲的曲作者;music_album表示歌曲专辑名称。
表1
词典类型 |
词条的归一词 |
词条的同义词 |
play_words |
播放 |
放|播 |
music_song |
如果伤害是场意外 |
如果伤害是场意外 |
music_singer |
刘德华 |
华仔 |
music_lyricist |
刘德华 |
华仔 |
music_composer |
刘德华 |
华仔 |
music_album |
美丽的一天 |
美丽的一天 |
请参阅图3,在某些实施方式中,步骤S14包括:
步骤S142:对中间数据进行抽取加载转换处理以生成全量领域词典的关系型数据库版本和非关系型数据库版本。
如此,实现关系型数据库版本和非关系型数据库版本的全量领域词典的构建。具体地,请结合图4中构建全量领域词典部分,关系型数据库版本包括MySQL数据表版本,非关系型数据库版本包括Redis数据库版本,在进行全量领域词典的构建时,MySQL数据表版本和Redis数据库版本的生成可以是并行的,不存在先后关系。
具体地,请结合表2和表3,表2为音乐领域的词典类型在MySQL数据表中的定义,表3为音乐领域的词典类型在MySQL数据表中的示例。音乐领域的词典类型包括music_song、music_singer、music_lyricist、stop_words、play_words、music_composer和search_words,其中,music_song表示歌曲的名称;music_singer表示歌曲的演唱者;music_lyricist表示歌曲的词作者;stop_words表示所有领域共用的停顿词,即在进行自然语言理解时可自动过滤掉的字或词;play_words表示所有领域共用的播放动作词,即在自然语言理解时可理解为进行播放动作的字或词;music_composer表示音乐领域的歌曲曲作者;search_words表示所有领域共用的搜索动作词,即在自然语言理解时可理解为进行搜索动作的字或词。
表2
列名称 |
值类型 |
列描述 |
示例 |
id |
bigint |
词典类型的id |
108 |
name |
varchar(50) |
词典类型的名称 |
music_singer |
description |
varchar(50) |
词典类型的中文描述 |
歌曲的演唱者 |
表3
请结合表4和表5,表4为词典在MySQL数据表中的定义,表5为词典在MySQL数据表中存储结构的示例。
表4
表5
id |
keyword |
tag_str |
1 |
华仔 |
108`刘德华 |
2 |
华仔 |
109`刘德华 |
3 |
华仔 |
112`刘德华 |
4 |
练习 |
107`练习 |
5 |
的 |
110`的 |
6 |
放 |
111`播放 |
具体地,词典在Redis数据库中的存储结构为键值(Key-Value,K-V)对结构。其中,Key表示某一个同义词,Value表示同义词在所有垂直领域中对应的具体词典类型和归一词构成的文本内容,格式形如“{词典类型的id}`{归一词}|{词典类型的id}`{归一词}”。词典在Redis数据表中存储结构的示例如下:
K:“华仔” V:“108`刘德华|109`刘德华|112`刘德华”
K:“练习” V:“107`练习”
K:“的” V:“110`的”
K:“放” V:“111`播放”。
在词典存储到Redis数据库的情况下,自然语言理解服务可通过实时查询词典,精确解析文本内容的语义。
请参阅图5,在某些实施方式中,词典处理方法还包括:
步骤S16:对全量领域词典的关系型数据库版本和非关系型数据库版本进行实时增量更新。
如此,保证全量领域词典的实时性和有效性,防止词典数据随着时间的发展缺失对不同垂直领域真实语义的描述。可以理解,随着手机等电子终端的普及和互联网的飞速发展,网络文化不断增长,网络用语中新词层出不穷,旧词语义日新月异,例如“汗”不仅可表示汗水、流汗,也可表示震惊、无奈;“小鲜肉”不指新鲜的肉,而指年轻帅气的男性等。如果词典数据更新迭代速度慢,会导致词典数据失真严重,因此,提供实时增量更新服务可保证全量领域词典的长期有效。
具体地,请结合图4中词义管理平台和词典增量更新服务部分,对全量领域词典的MySQL数据表版本和Redis数据库版本进行实时增量更新,包括对词典类型和/或词条进行创建、维修和删除,发布词典增量版本并上线,形成词典增量日志,将词典增量更新同步变更生效到MySQL数据表,再由MySQL数据表同步变更映射到Redis数据库。
请参阅图6,在某些实施方式中,步骤S16包括:
步骤S162:根据变更消息,操作全量领域词典的关系型数据库版本,变更消息包括同义词;
步骤S164:基于同义词,全局查询全量领域词典的关系型数据库版本的相关记录并得到查询结果;
步骤S166:将查询结果生成新的键值对;
步骤S168:将新的键值对同步到全量领域词典的非关系型数据库版本。
如此,实现全量领域词典的关系型数据库版本和非关系型数据库版本的增量更新。具体地,变更信息包括对词典类型和/或词条进行创建、维修和删除。在变更信息为同义词的情况下,根据同义词全局查询全量领域词典的MySQL数据表版本的相关记录并得到查询结果,将查询结果生成新的K-V键值对,并将新的K-V键值对同步到全量领域词典的Redis数据库版本。
在一个例子中,词条的更新操作,将同义词“华仔”表示“歌曲曲作者”的含义删除。
步骤一:词条变更信息;
{
"action_type":"delete",//delete表示删除操作
"keyword":"华仔",//词条的同义词
"tag_str":"112`刘德华"//词条的一个标准归一结果字符串
}
步骤二:删除MySQL数据表中相应数据记录行,如表6所示,第3行的删除线表示该条记录删除;
表6
步骤三:基于同义词“华仔”查询全量领域词典MySQL数据表的相关记录,查询结果如表7所示;
表7
id |
keyword |
tag_str |
1 |
华仔 |
108`刘德华 |
2 |
华仔 |
109`刘德华 |
步骤四:基于查询结果重新生成K-V键值对;
K:“华仔” V:“108`刘德华|109`刘德华”
步骤五:将新的K-V键值对同步到全量领域词典Redis数据库。领域词典在redis数据库中新的存储结果:
K:“华仔” V:“108`刘德华|109`刘德华”
K:“练习” V:“107`练习”
K:“的” V:“110`的”
K:“放” V:“111`播放”
请参阅图7,在某些实施方式中,词典处理方法还包括:
步骤S18:使用全量领域词典的关系型数据库版本和非关系型数据库版本进行自然语言理解处理。
如此,提升自然语言理解处理的速度和准确度。具体地,在一个例子中,使用全量领域词典的MySQL数据表版本和Redis数据库版本进行自然语言理解处理。
在图7所示的实施方式中,词典处理方法包括步骤S12、步骤S14、步骤S16和步骤S18。可以理解,在其它实施方式中,词典处理方法可包括步骤S12、步骤S14和步骤S18。
请参阅图8,在某些实施方式中,步骤S18包括:
步骤S182:获取输入的文本内容;
步骤S184:根据文本内容,查询全量领域词典的关系型数据库版本和非关系型数据库版本;
步骤S186:输出查询结果。
如此,快速准确地进行自然语言理解处理。具体地,自然语言理解服务的输入为一段文本内容,通过查询全量领域词典的Redis数据库,输出可以表示文本内容的所有有效精准语义的查询结果。
请结合表8,在一个例子中,输入文本内容为“放华仔的练习”,通过查询全量领域词典得到:“放”理解为播放动作词“播放”,“华仔”理解为歌曲的演唱者“刘德华”或歌曲的词作者“刘德华”,“的”为停顿词,不进行处理,“练习”理解为歌曲的名称“练习”,即输入的文本有两种精确的语义,分别是“播放由刘德华演唱的歌曲名为练习的歌曲”、“播放由刘德华作词的歌曲名为练习的歌曲”。
表8
请参阅图9,本发明实施方式的词典处理装置10用于服务器,词典处理装置10包括预处理模块12和生成模块14,预处理模块12用于采集各个垂直领域的原始数据并转换原始数据为设定格式的中间数据;生成模块14用于根据中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,其中,关系型数据库用于存储全量领域词典的数据并可对其中的单条数据执行包括新增、修改和删除在内的任意一项操作,非关系数据库用于对全量领域词典的查询。
本发明实施方式的词典处理装置10,词典数据的涵盖范围广,可以覆盖到文本内容在不同垂直领域的精确语义含义,而且词典以数据库版本存在,可以提升词典的检索速度。
需要指出的是,上述对词典处理方法的实施方式和有益效果的解释说明,也适应用于词典处理装置10和以下实施方式的服务器,为避免冗余,在此不作详细展开。
请参阅图10,在某些实施方式中,词典处理装置10还包括更新模块16,更新模块16用于对全量领域词典的关系型数据库版本和非关系型数据库版本进行实时增量更新。
如此,防止词典数据随着时间的发展会缺失对不同垂直领域真实语义的描述。
请参阅图11,在某些实施方式中,词典处理装置10还包括使用模块18,使用模块18用于使用全量领域词典的关系型数据库版本和非关系型数据库版本进行自然语言理解处理。
如此,提升自然语言理解处理的速度,提高自然语言理解处理的准确度。
具体地,在图11所示的实施方式中,词典处理装置10包括预处理模块12、生成模块14、更新模块16和使用模块18。可以理解,在其它实施方式中,词典处理装置可包括预处理模块、生成模块和使用模块。
请参阅图12,本发明实施方式的服务器100包括存储器101和处理器102,存储器101存储有计算机程序,处理器102用于执行程序以实现上述任一实施方式的词典处理方法。
例如实现:步骤S12:采集各个垂直领域的原始数据并转换原始数据为设定格式的中间数据;步骤S14:根据中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,其中,关系型数据库用于存储全量领域词典的数据并可对其中的单条数据执行包括新增、修改和删除在内的任意一项操作,非关系数据库用于对全量领域词典的查询。
又如,实现:步骤S12:采集各个垂直领域的原始数据并转换原始数据为设定格式的中间数据;步骤S14:根据中间数据生成全量领域词典的关系型数据库版本和非关系型数据库版本,其中,关系型数据库用于存储全量领域词典的数据并可对其中的单条数据执行包括新增、修改和删除在内的任意一项操作,非关系数据库用于对全量领域词典的查询;步骤S16:对全量领域词典的关系型数据库版本和非关系型数据库版本进行实时增量更新。步骤S18:使用全量领域词典的关系型数据库版本和非关系型数据库版本进行自然语言理解处理。
请参阅图13,本发明实施方式的语音交互系统1000包括车辆200和服务器100。
本发明实施方式的语音交互系统1000,词典数据的涵盖范围广,可以覆盖到文本内容在不同垂直领域的精确语义含义,而且词典以数据库版本存在,可以提升词典的检索速度。
具体地,车辆可以通过无线通信方式(如WIFI、移动通信网络等)连接服务器。在某些实施方式中,输入的文本内容、变更消息等指令或信号可以是车辆上的车载终端所采集,然后发送至服务器,由服务器进行处理,服务器根据处理结果控制车辆与用户进行语音交互。在某些实施方式中,输入的文本内容、变更消息等指令或信号也可以是服务器本地输入,由服务器进行处理,服务器根据处理结果控制车辆与用户进行语音交互。在某些实施方式中,输入的文本内容、变更消息等指令或信号可以是部分由服务器本地输入,部分由车辆的车辆终端所采集,由服务器进行处理,服务器根据处理结果控制车辆与用户进行语音交互。
在本发明中,计算机程序包括计算机程序代码。计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。