买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】输入法模型生成方法及装置_北京金山安全软件有限公司_201811620636.0 

申请/专利权人:北京金山安全软件有限公司

申请日:2018-12-28

公开(公告)日:2023-01-13

公开(公告)号:CN109710087B

主分类号:G06F3/023

分类号:G06F3/023;G06F40/289

优先权:

专利状态码:有效-授权

法律状态:2023.01.13#授权;2019.05.28#实质审查的生效;2019.05.03#公开

摘要:本发明提出一种输入法模型生成方法及装置,其中方法包括:获取训练数据以及分词词库,分词词库中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,进而生成句子对应的有向无环图;根据有向无环图中的最大概率路径,确定句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了输入法模型的成本,提高了输入法模型的准确度。

主权项:1.一种输入法模型生成方法,其特征在于,包括:获取训练数据以及分词词库,所述分词词库中包括:大于预设数量阈值的词语;所述词语中包括:与输入法场景相关的词语;针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词;根据所述分词词库中的各个词语以及对应的二元关系词,生成前缀树;所述前缀树中的节点为词语或者二元关系词,其中,所述前缀树包括根节点,所述根节点的数量为多个,分别为所述训练数据中各个句子的第一个词语;针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,并根据所述至少一个切分结果,生成所述句子对应的有向无环图;根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果;根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型;其中,所述针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,包括:针对所述每个句子,将句子与前缀树中的各个根节点一一进行比对,确定与所述句子匹配的根节点,将匹配的根节点的词语确定为所述句子中的第一个词语;然后将所述句子中除所述第一个词语之外的部分内容与所述匹配的根节点对应的子节点进行比对,确定句子中的第二个词语,依次进行,从而得到所述句子对应的至少一个切分结果。

全文数据:输入法模型生成方法及装置技术领域本发明涉及文本处理技术领域,尤其涉及一种输入法模型生成方法及装置。背景技术目前,当用户在输入法应用中输入拼音时,输入法应用将用户输入的拼音输入N元模型,获取候选词列表。其中,生成N元模型的过程主要为,获取训练数据,将训练数据中的每个句子输入训练好的隐马尔克夫模型HMM,得到每个句子对应的分词结果;然后采用各个句子对应的分词结果,生成N元模型。上述方案中,HMM模型需要采用大量的样本数据进行训练,且样本数据还需要手动进行分词,从而提高了N元模型的生成成本,且对样本数据进行手动分词,容易存在错误,降低了训练得到的HMM模型的准确度,进而降低了N元模型的准确度。发明内容本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种输入法模型生成方法,用于解决现有技术中输入法应用中N元模型准确度差,生成成本高的问题。本发明的第二个目的在于提出一种输入法模型生成装置。本发明的第三个目的在于提出另一种输入法模型生成装置。本发明的第四个目的在于提出一种非临时性计算机可读存储介质。本发明的第五个目的在于提出一种计算机程序产品。为达上述目的,本发明第一方面实施例提出了一种输入法模型生成方法,包括:获取训练数据以及分词词库,所述分词词库中包括:大于预设数量阈值的词语;所述词语中包括:与输入法场景相关的词语;针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词;根据所述分词词库中的各个词语以及对应的二元关系词,生成前缀树;所述前缀树中的节点为词语或者二元关系词;针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,并根据所述至少一个切分结果,生成所述句子对应的有向无环图;根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果;根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型。进一步的,所述针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词,包括:针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频;获取各个句子中所述词语之后的词语,将各个句子中所述词语之后的词语,确定为所述词语对应的二元关系词。进一步的,所述根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果,包括:根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径;判断所述最大概率路径对应的概率是否大于等于预设概率阈值;若所述最大概率路径对应的概率大于等于预设概率阈值,则根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述切分结果中存在所述连续多个词语,则将所述连续多个词语进行整合,得到所述句子对应的分词结果。进一步的,所述根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语之前,还包括:获取最大概率路径对应的切分结果中单字的占比;判断所述单字的占比是否大于等于预设占比阈值;若所述单字的占比大于等于预设占比阈值,则判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述单字的占比小于预设占比阈值,则将所述最大概率路径对应的切分结果确定为分词结果。进一步的,所述根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果,还包括:若所述最大概率路径对应的概率小于预设概率阈值,则将所述句子输入训练好的语言统计模型,获取所述句子对应的分词结果。进一步的,所述根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,包括:针对各个句子对应的分词结果中的每个分词词语,获取所述分词词语在所述分词结果中的词频;根据所述分词词语查询各个句子对应的分词结果,获取所述分词词语对应的二元关系词;获取所述分词词语以及对应的二元关系词在所述分词结果中同时出现的频率;在所述频率大于预设频率阈值时,将所述分词词语以及对应的二元关系词整合为分词词语;根据各个分词词语的词频,以及对应的二元关系词的词频,生成N元模型。进一步的,所述根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型之后,还包括:获取用户输入的拼音;将所述拼音输入N元模型,获取所述拼音对应的各个词语,以及各个词语的出现概率;根据各个词语的出现概率,生成候选词列表,以便用户从候选词列表中选择词语并进行输入。本发明实施例的输入法模型生成方法,通过获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图;根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径,根据最大概率路径,确定句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了N元模型的生成成本,且提高了N元模型的准确度。为达上述目的,本发明第二方面实施例提出了一种输入法模型生成装置,包括:获取模块,用于获取训练数据以及分词词库,所述分词词库中包括:大于预设数量阈值的词语;所述词语中包括:与输入法场景相关的词语;查询模块,用于针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词;生成模块,用于根据所述分词词库中的各个词语以及对应的二元关系词,生成前缀树;所述前缀树中的节点为词语或者二元关系词;切分模块,用于针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,并根据所述至少一个切分结果,生成所述句子对应的有向无环图;确定模块,用于根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果;所述生成模块,还用于根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型。进一步的,所述查询模块具体用于,针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频;获取各个句子中所述词语之后的词语,将各个句子中所述词语之后的词语,确定为所述词语对应的二元关系词。进一步的,所述确定模块具体用于,根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径;判断所述最大概率路径对应的概率是否大于等于预设概率阈值;若所述最大概率路径对应的概率大于等于预设概率阈值,则根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述切分结果中存在所述连续多个词语,则将所述连续多个词语进行整合,得到所述句子对应的分词结果。进一步的,所述确定模块具体还用于,获取最大概率路径对应的切分结果中单字的占比;判断所述单字的占比是否大于等于预设占比阈值;若所述单字的占比大于等于预设占比阈值,则判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述单字的占比小于预设占比阈值,则将所述最大概率路径对应的切分结果确定为分词结果。进一步的,所述确定模块具体还用于,若所述最大概率路径对应的概率小于预设概率阈值,则将所述句子输入训练好的语言统计模型,获取所述句子对应的分词结果。进一步的,所述生成模块具体用于,针对各个句子对应的分词结果中的每个分词词语,获取所述分词词语在所述分词结果中的词频;根据所述分词词语查询各个句子对应的分词结果,获取所述分词词语对应的二元关系词;获取所述分词词语以及对应的二元关系词在所述分词结果中同时出现的频率;在所述频率大于预设频率阈值时,将所述分词词语以及对应的二元关系词整合为分词词语;根据各个分词词语的词频,以及对应的二元关系词的词频,生成N元模型。进一步的,所述获取模块,还用于获取用户输入的拼音;所述获取模块,还用于将所述拼音输入N元模型,获取所述拼音对应的各个词语,以及各个词语的出现概率;所述生成模块,还用于根据各个词语的出现概率,生成候选词列表,以便用户从候选词列表中选择词语并进行输入。本发明实施例的输入法模型生成装置,通过获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图;根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径,根据最大概率路径,确定句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了N元模型的生成成本,且提高了N元模型的准确度。为达上述目的,本发明第三方面实施例提出了另一种输入法模型生成装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的输入法模型生成方法。为了实现上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,当所述存储介质中的指令被处理器执行时,实现如上所述的方法。为达上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的方法。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明实施例提供的一种输入法模型生成方法的流程示意图;图2为输入法应用的使用示意图;图3为本发明实施例提供的另一种输入法模型生成方法的流程示意图;图4为本发明实施例提供的一种输入法模型生成装置的结构示意图;图5为本发明实施例提供的另一种输入法模型生成装置的结构示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。下面参考附图描述本发明实施例的输入法模型生成方法及装置。图1为本发明实施例提供的一种输入法模型生成方法的流程示意图。如图1所示,该输入法模型生成方法包括以下步骤:S101、获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语。本发明提供的输入法模型生成方法的执行主体为输入法模型生成装置,输入法模型生成装置具体可以为终端设备、服务器等硬件设备,或者硬件设备上安装的软件。其中,软件例如可以为输入法应用,硬件设备例如可以为输入法应用对应的后台服务器、或者安装有输入法应用的终端设备。本实施例中,训练数据为通过爬虫等方式从网站等采集到的大量训练语句。分词词库为预先获取的词语库,例如根据预设词典中的各词语生成的词语库等。本实施例中,上述输入法模型生成方法,是要应用于输入法应用的,因此,为了在用户输入与输入法场景相关的词语时,输入法应用向用户提供的候选词列表中能够包括合适的词语,可以在分词词库中添加与输入法场景相关的词语,以便将训练语句中与输入法场景相关的词语识别出来。其中,与输入法场景相关的词语例如“我是谁”、“在干嘛呢”等用户输入时常用的词语。其中,词语指的是词和短语的合称,包括:单词、词组及整个词汇。S102、针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词。本实施例中,输入法模型生成装置执行步骤102的过程具体可以为,针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频;获取各个句子中词语之后的词语,将各个句子中词语之后的词语,确定为词语对应的二元关系词。其中,词语的词频指的是词语在训练数据中的出现次数的占比、出现频率等。词语之后的词语,指的是紧跟在词语之后的词语。例如,在句子“我是谁”中,词语“我”之后的词语为“是谁”。S103、根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词。本实施例中,前缀树中包括根节点、子节点、子子节点等。其中,根节点的数量为多个,分别为训练数据中各个句子的第一个词语;根节点对应的子节点为,根节点词语对应的二元关系词;子节点对应的子子节点为,子节点词语对应的二元关系词,或者说是,根节点对应的三元关系词。S104、针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图。本实施例中,输入法模型生成装置针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果的过程具体可以为,针对每个句子,将句子与前缀树中的各个根节点一一进行比对,确定与句子匹配的根节点,将匹配的根节点的词语确定为句子中的第一个词语;然后将句子中除第一个词语之外的部分内容与匹配的根节点对应的子节点进行比对,确定句子中的第二个词语,依次进行,从而得到句子对应的至少一个切分结果。其中,每个切分结果对应一种切分方式。例如,以句子“我是谁”为例,该句子可以对应四个切分结果,第一个切分结果是“我”、“是”、“谁”;第二个切分结果是“我是”、“谁”;第三个切分结果是“我”、“是谁”;第四个切分结果是“我是谁”。本实施例中,输入法模型生成装置根据至少一个切分结果,生成句子对应的有向无环图的过程具体可以为,将至少一个切分结果中的第一个词语确定为起始节点,将第二个词语连接在对应的起始节点后,将第三个词语连接在对应的第二个词语后,得到有向无环图。其中,若两个第二个词语对应相同的起始节点,则一个起始节点连接两个第二个词语;若一个第二个词语对应有两个不同的起始节点,则两个起始节点连接同一个第二个词语。S105、根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径,根据最大概率路径,确定句子对应的分词结果。本实施例中,输入法模型生成装置具体可以采用动态规划算法,结合有向无环图中各个词语的词频,来计算有向无环图中各个路径的发生概率,从而获取其中的最大概率路径,将最大概率路径上的各个词语,确定为句子对应的分词结果。S106、根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型。本实施例中,输入法模型生成装置执行步骤106的过程具体可以为,针对各个句子对应的分词结果中的每个分词词语,获取分词词语在分词结果中的词频;根据分词词语查询各个句子对应的分词结果,获取分词词语对应的二元关系词;获取分词词语以及对应的二元关系词在分词结果中同时出现的频率;在频率大于预设频率阈值时,将分词词语以及对应的二元关系词整合为分词词语;根据各个分词词语的词频,以及对应的二元关系词的词频,生成N元模型。其中,将对应的同时出现频率较高的分词词语以及对应的二元关系词整合为分词词语,根据整合前分词词语的词频以及对应的二元关系词的词频,计算确定整合后分词词语的词频,进而当用户在输入法应用中输入整合后分词词语对应的拼音时,输入法应用能够及时结合N元模型将整合后分词词语添加到候选词列表中提供给用户,从而使得用户可以从候选词列表中选择到需要的词语并进行输入,提高了输入法应用的输入效率,提高了用户对输入法应用的使用体验。进一步的,在上述实施例的基础上,步骤106之后,所述的方法还可以包括以下步骤:获取用户输入的拼音;将拼音输入N元模型,获取拼音对应的各个词语,以及各个词语的出现概率;根据各个词语的出现概率,生成候选词列表,以便用户从候选词列表中选择词语并进行输入。如图2所示,为输入法应用的使用示意图。在图2中,当用户输入拼音“yiqiqub”的情况下,候选词列表中的第一个词语为“一起去吧”。其中,N元模型N-Gram是大词汇连续语音识别中常用的一种语言模型,对中文而言,我们称之为汉语语言模型CLM,ChineseLanguageModel。汉语语言模型利用上下文中相邻词间的搭配信息,可以实现语音、拼音到汉字的自动转换。本发明实施例的输入法模型生成方法,通过获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图;根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径,根据最大概率路径,确定句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了N元模型的生成成本,且提高了N元模型的准确度。图3为本发明实施例提供的另一种输入法模型生成方法的流程示意图。如图3所示,在图1所示实施例的基础上步骤105具体可以包括以下步骤:S1051、根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径。本实施例中,输入法模型生成装置具体可以采用动态规划算法,结合有向无环图中各个词语的词频,来计算有向无环图中各个路径的发生概率,从而获取其中的最大概率路径,将最大概率路径上的各个词语,确定为句子对应的分词结果。具体的,针对有向无环图中的每个路径,输入法模型生成装置可以先获取路径中的第一个词语,获取该词语的词频,确定该词语的发生概率;然后获取路径中的第二个词语,第二个词语为第一个词语的二元关系词,确定第一个词语之后跟随第二个词语的发生概率,进而依次类推,确定路径的发生概率;得到各个路径的发生概率后,发生概率最大的路径为有向无环图中的最大概率路径。S1052、判断最大概率路径对应的概率是否大于等于预设概率阈值。其中,预设概率阈值例如可以为百分之六十、百分之八十等。若最大概率路径对应的概率大于等于预设概率阈值,则表示句子中不存在未登录词,最大概率路径对应的切分结果为比较合适的切分结果;若最大概率路径对应的概率小于预设概率阈值,则表示句子中可能存在未登录词,最大概率路径对应的切分结果不太合适,还需要对句子重新进行切分。其中,未登录词指的是没有被收录在分词词表中但必须切分出来的词,包括各类专有名词、缩写词、新增词汇等。S1053、若最大概率路径对应的概率大于等于预设概率阈值,则根据最大概率路径对应的切分结果遍历用户词典,判断切分结果中是否存在与用户词典中词语匹配的连续多个词语。本实施例中,用户词典指的是包含有专业词语、专用词语的词典。其中,专用词语例如地名、建筑名等。分词词库中的词语一般为常用的词语,专用词语和专业词语较少,结合分词词库容易将句子中的专业词语或者专用词语切分为多个单字。因此,需要采用步骤1053将切分结果中的连续多个单字整合为专业词语或者专用词语。进一步的,本实施例中,将专业词语或者专用词语切分为多个单字的情况,一般会导致切分结果中单字数量占比较高,因此,为了进一步提高输入法模型的生成效率,在最大概率路径对应的概率大于等于预设概率阈值之后,输入法模型生成装置可以先执行以下步骤:获取最大概率路径对应的切分结果中单字的占比,若单字占比大于等于预设占比阈值,则根据最大概率路径对应的切分结果遍历用户词典,判断切分结果中是否存在与用户词典中词语匹配的连续多个词语;若单字占比小于预设占比阈值,则直接将最大概率路径对应的切分结果确定为分词结果。另外,若最大概率路径对应的概率小于预设概率阈值,则可以将句子输入训练好的语言统计模型,获取句子对应的分词结果。其中,语言统计模型可以为HMM模型HiddenMarkovModel,该模型可以采用步骤1051至步骤1054确定得到的句子以及对应的分词结果进行训练,从而避免手动对样本数据进行分词标注,进而采用分词标注结果对HMM模型进行训练,从而减少了HMM模型的训练成本,提高了HMM模型的训练准确度。S1054、若切分结果中存在连续多个词语,则将连续多个词语进行整合,得到句子对应的分词结果。另外,若切分结果中不存在与用户词典中词语匹配的连续多个词语,则直接将最大概率路径对应的切分结果确定为分词结果。本发明实施例的输入法模型生成方法,通过获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图;根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径;判断最大概率路径对应的概率是否大于等于预设概率阈值;若最大概率路径对应的概率大于等于预设概率阈值,则根据最大概率路径对应的切分结果遍历用户词典,判断切分结果中是否存在与用户词典中词语匹配的连续多个词语;若切分结果中存在连续多个词语,则将连续多个词语进行整合,得到句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了N元模型的生成成本,且提高了N元模型的准确度。图4为本发明实施例提供的一种输入法模型生成装置的结构示意图。如图4所示,包括:获取模块41、查询模块42、生成模块43、切分模块44和确定模块45。其中,获取模块41,用于获取训练数据以及分词词库,所述分词词库中包括:大于预设数量阈值的词语;所述词语中包括:与输入法场景相关的词语;查询模块42,用于针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词;生成模块43,用于根据所述分词词库中的各个词语以及对应的二元关系词,生成前缀树;所述前缀树中的节点为词语或者二元关系词;切分模块44,用于针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,并根据所述至少一个切分结果,生成所述句子对应的有向无环图;确定模块45,用于根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果;所述生成模块43,还用于根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型。本发明提供的输入法模型生成装置具体可以为终端设备、服务器等硬件设备,或者硬件设备上安装的软件。其中,软件例如可以为输入法应用,硬件设备例如可以为输入法应用对应的后台服务器、或者安装有输入法应用的终端设备。本实施例中,训练数据为通过爬虫等方式从网站等采集到的大量训练语句。分词词库为预先获取的词语库,例如根据预设词典中的各词语生成的词语库等。本实施例中,上述输入法模型生成方法,是要应用于输入法应用的,因此,为了在用户输入与输入法场景相关的词语时,输入法应用向用户提供的候选词列表中能够包括合适的词语,可以在分词词库中添加与输入法场景相关的词语,以便将训练语句中与输入法场景相关的词语识别出来。其中,与输入法场景相关的词语例如“我是谁”、“在干嘛呢”等用户输入时常用的词语。其中,词语指的是词和短语的合称,包括:单词、词组及整个词汇。本实施例中,所述查询模块42具体用于,针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频;获取各个句子中所述词语之后的词语,将各个句子中所述词语之后的词语,确定为所述词语对应的二元关系词。其中,词语的词频指的是词语在训练数据中的出现次数的占比、出现频率等。词语之后的词语,指的是紧跟在词语之后的词语。例如,在句子“我是谁”中,词语“我”之后的词语为“是谁”。本实施例中,前缀树中包括根节点、子节点、子子节点等。其中,根节点的数量为多个,分别为训练数据中各个句子的第一个词语;根节点对应的子节点为,根节点词语对应的二元关系词;子节点对应的子子节点为,子节点词语对应的二元关系词,或者说是,根节点对应的三元关系词。本实施例中,切分模块44针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果的过程具体可以为,针对每个句子,将句子与前缀树中的各个根节点一一进行比对,确定与句子匹配的根节点,将匹配的根节点的词语确定为句子中的第一个词语;然后将句子中除第一个词语之外的部分内容与匹配的根节点对应的子节点进行比对,确定句子中的第二个词语,依次进行,从而得到句子对应的至少一个切分结果。其中,每个切分结果对应一种切分方式。例如,以句子“我是谁”为例,该句子可以对应四个切分结果,第一个切分结果是“我”、“是”、“谁”;第二个切分结果是“我是”、“谁”;第三个切分结果是“我”、“是谁”;第四个切分结果是“我是谁”。本实施例中,切分模块44根据至少一个切分结果,生成句子对应的有向无环图的过程具体可以为,将至少一个切分结果中的第一个词语确定为起始节点,将第二个词语连接在对应的起始节点后,将第三个词语连接在对应的第二个词语后,得到有向无环图。其中,若两个第二个词语对应相同的起始节点,则一个起始节点连接两个第二个词语;若一个第二个词语对应有两个不同的起始节点,则两个起始节点连接同一个第二个词语。本实施例中,生成模块43具体可以用于,针对各个句子对应的分词结果中的每个分词词语,获取分词词语在分词结果中的词频;根据分词词语查询各个句子对应的分词结果,获取分词词语对应的二元关系词;获取分词词语以及对应的二元关系词在分词结果中同时出现的频率;在频率大于预设频率阈值时,将分词词语以及对应的二元关系词整合为分词词语;根据各个分词词语的词频,以及对应的二元关系词的词频,生成N元模型。其中,将对应的同时出现频率较高的分词词语以及对应的二元关系词整合为分词词语,根据整合前分词词语的词频以及对应的二元关系词的词频,计算确定整合后分词词语的词频,进而当用户在输入法应用中输入整合后分词词语对应的拼音时,输入法应用能够及时结合N元模型将整合后分词词语添加到候选词列表中提供给用户,从而使得用户可以从候选词列表中选择到需要的词语并进行输入,提高了输入法应用的输入效率,提高了用户对输入法应用的使用体验。进一步的,在上述实施例的基础上,所述获取模块41,还用于获取用户输入的拼音;所述获取模块41,还用于将所述拼音输入N元模型,获取所述拼音对应的各个词语,以及各个词语的出现概率;所述生成模块43,还用于根据各个词语的出现概率,生成候选词列表,以便用户从候选词列表中选择词语并进行输入。本发明实施例的输入法模型生成装置,通过获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图;根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径,根据最大概率路径,确定句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了N元模型的生成成本,且提高了N元模型的准确度。进一步的,在上述实施例的基础上,所述确定模块45具体可以用于,根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径;判断所述最大概率路径对应的概率是否大于等于预设概率阈值;若所述最大概率路径对应的概率大于等于预设概率阈值,则根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述切分结果中存在所述连续多个词语,则将所述连续多个词语进行整合,得到所述句子对应的分词结果。本实施例中,输入法模型生成装置具体可以采用动态规划算法,结合有向无环图中各个词语的词频,来计算有向无环图中各个路径的发生概率,从而获取其中的最大概率路径,将最大概率路径上的各个词语,确定为句子对应的分词结果。具体的,针对有向无环图中的每个路径,输入法模型生成装置可以先获取路径中的第一个词语,获取该词语的词频,确定该词语的发生概率;然后获取路径中的第二个词语,第二个词语为第一个词语的二元关系词,确定第一个词语之后跟随第二个词语的发生概率,进而依次类推,确定路径的发生概率;得到各个路径的发生概率后,发生概率最大的路径为有向无环图中的最大概率路径。本实施例中,预设概率阈值例如可以为百分之六十、百分之八十等。若最大概率路径对应的概率大于等于预设概率阈值,则表示句子中不存在未登录词,最大概率路径对应的切分结果为比较合适的切分结果;若最大概率路径对应的概率小于预设概率阈值,则表示句子中可能存在未登录词,最大概率路径对应的切分结果不太合适,还需要对句子重新进行切分。其中,未登录词指的是没有被收录在分词词表中但必须切分出来的词,包括各类专有名词、缩写词、新增词汇等。本实施例中,用户词典指的是包含有专业词语、专用词语的词典。其中,专用词语例如地名、建筑名等。分词词库中的词语一般为常用的词语,专用词语和专业词语较少,结合分词词库容易将句子中的专业词语或者专用词语切分为多个单字。因此,需要将切分结果中的连续多个单字整合为专业词语或者专用词语。进一步的,本实施例中,将专业词语或者专用词语切分为多个单字的情况,一般会导致切分结果中单字数量占比较高,因此,为了进一步提高输入法模型的生成效率,在最大概率路径对应的概率大于等于预设概率阈值之后,输入法模型生成装置可以先执行以下步骤:获取最大概率路径对应的切分结果中单字的占比,若单字占比大于等于预设占比阈值,则根据最大概率路径对应的切分结果遍历用户词典,判断切分结果中是否存在与用户词典中词语匹配的连续多个词语;若单字占比小于预设占比阈值,则直接将最大概率路径对应的切分结果确定为分词结果。另外,若最大概率路径对应的概率小于预设概率阈值,则可以将句子输入训练好的语言统计模型,获取句子对应的分词结果。其中,语言统计模型可以为HMM模型HiddenMarkovModel,该模型可以采用确定模块45确定得到的句子以及对应的分词结果进行训练,从而避免手动对样本数据进行分词标注,进而采用分词标注结果对HMM模型进行训练,从而减少了HMM模型的训练成本,提高了HMM模型的训练准确度。另外,若切分结果中不存在与用户词典中词语匹配的连续多个词语,则直接将最大概率路径对应的切分结果确定为分词结果。本发明实施例的输入法模型生成装置,通过获取训练数据以及分词词库,分词词库中包括:大于预设数量阈值的词语;词语中包括:与输入法场景相关的词语;针对分词词库中的每个词语,查询训练数据中的各个句子,获取词语的词频以及词语对应的二元关系词;根据分词词库中的各个词语以及对应的二元关系词,生成前缀树;前缀树中的节点为词语或者二元关系词;针对训练数据中的每个句子,采用前缀树对句子进行切分,得到至少一个切分结果,并根据至少一个切分结果,生成句子对应的有向无环图;根据有向无环图中各个词语的词频,确定有向无环图中的最大概率路径;判断最大概率路径对应的概率是否大于等于预设概率阈值;若最大概率路径对应的概率大于等于预设概率阈值,则根据最大概率路径对应的切分结果遍历用户词典,判断切分结果中是否存在与用户词典中词语匹配的连续多个词语;若切分结果中存在连续多个词语,则将连续多个词语进行整合,得到句子对应的分词结果;根据训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,从而不需要采用HMM模型,不需要手动标注HMM模型的样本数据,降低了N元模型的生成成本,且提高了N元模型的准确度。图5为本发明实施例提供的另一种输入法模型生成装置的结构示意图。该输入法模型生成装置包括:存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。处理器1002执行所述程序时实现上述实施例中提供的输入法模型生成方法。进一步地,输入法模型生成装置还包括:通信接口1003,用于存储器1001和处理器1002之间的通信。存储器1001,用于存放可在处理器1002上运行的计算机程序。存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器non-volatilememory,例如至少一个磁盘存储器。处理器1002,用于执行所述程序时实现上述实施例所述的输入法模型生成方法。如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构IndustryStandardArchitecture,简称为ISA总线、外部设备互连PeripheralComponent,简称为PCI总线或扩展工业标准体系结构ExtendedIndustryStandardArchitecture,简称为EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。处理器1002可能是一个中央处理器CentralProcessingUnit,简称为CPU,或者是特定集成电路ApplicationSpecificIntegratedCircuit,简称为ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路。本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上所述的输入法模型生成方法。本实施例还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,如上所述的输入法模型生成方法。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。在流程图中表示或在此以其他方式描述的逻辑和或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例非穷尽性列表包括以下:具有一个或多个布线的电连接部电子装置,便携式计算机盘盒磁装置,随机存取存储器RAM,只读存储器ROM,可擦除可编辑只读存储器EPROM或闪速存储器,光纤装置,以及便携式光盘只读存储器CDROM。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列PGA,现场可编程门阵列FPGA等。本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

权利要求:1.一种输入法模型生成方法,其特征在于,包括:获取训练数据以及分词词库,所述分词词库中包括:大于预设数量阈值的词语;所述词语中包括:与输入法场景相关的词语;针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词;根据所述分词词库中的各个词语以及对应的二元关系词,生成前缀树;所述前缀树中的节点为词语或者二元关系词;针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,并根据所述至少一个切分结果,生成所述句子对应的有向无环图;根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果;根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型。2.根据权利要求1所述的方法,其特征在于,所述针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词,包括:针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频;获取各个句子中所述词语之后的词语,将各个句子中所述词语之后的词语,确定为所述词语对应的二元关系词。3.根据权利要求1所述的方法,其特征在于,所述根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果,包括:根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径;判断所述最大概率路径对应的概率是否大于等于预设概率阈值;若所述最大概率路径对应的概率大于等于预设概率阈值,则根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述切分结果中存在所述连续多个词语,则将所述连续多个词语进行整合,得到所述句子对应的分词结果。4.根据权利要求3所述的方法,其特征在于,所述根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语之前,还包括:获取最大概率路径对应的切分结果中单字的占比;判断所述单字的占比是否大于等于预设占比阈值;若所述单字的占比大于等于预设占比阈值,则判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述单字的占比小于预设占比阈值,则将所述最大概率路径对应的切分结果确定为分词结果。5.根据权利要求3所述的方法,其特征在于,所述根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果,还包括:若所述最大概率路径对应的概率小于预设概率阈值,则将所述句子输入训练好的语言统计模型,获取所述句子对应的分词结果。6.根据权利要求1所述的方法,其特征在于,所述根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型,包括:针对各个句子对应的分词结果中的每个分词词语,获取所述分词词语在所述分词结果中的词频;根据所述分词词语查询各个句子对应的分词结果,获取所述分词词语对应的二元关系词;获取所述分词词语以及对应的二元关系词在所述分词结果中同时出现的频率;在所述频率大于预设频率阈值时,将所述分词词语以及对应的二元关系词整合为分词词语;根据各个分词词语的词频,以及对应的二元关系词的词频,生成N元模型。7.根据权利要求1所述的方法,其特征在于,所述根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型之后,还包括:获取用户输入的拼音;将所述拼音输入N元模型,获取所述拼音对应的各个词语,以及各个词语的出现概率;根据各个词语的出现概率,生成候选词列表,以便用户从候选词列表中选择词语并进行输入。8.一种输入法模型生成装置,其特征在于,包括:获取模块,用于获取训练数据以及分词词库,所述分词词库中包括:大于预设数量阈值的词语;所述词语中包括:与输入法场景相关的词语;查询模块,用于针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频以及所述词语对应的二元关系词;生成模块,用于根据所述分词词库中的各个词语以及对应的二元关系词,生成前缀树;所述前缀树中的节点为词语或者二元关系词;切分模块,用于针对所述训练数据中的每个句子,采用所述前缀树对所述句子进行切分,得到至少一个切分结果,并根据所述至少一个切分结果,生成所述句子对应的有向无环图;确定模块,用于根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径,根据所述最大概率路径,确定所述句子对应的分词结果;所述生成模块,还用于根据所述训练数据中各个句子对应的分词结果,生成输入法应用中的N元模型。9.根据权利要求8所述的装置,其特征在于,所述查询模块具体用于,针对所述分词词库中的每个词语,查询训练数据中的各个句子,获取所述词语的词频;获取各个句子中所述词语之后的词语,将各个句子中所述词语之后的词语,确定为所述词语对应的二元关系词。10.根据权利要求8所述的装置,其特征在于,所述确定模块具体用于,根据所述有向无环图中各个词语的词频,确定所述有向无环图中的最大概率路径;判断所述最大概率路径对应的概率是否大于等于预设概率阈值;若所述最大概率路径对应的概率大于等于预设概率阈值,则根据所述最大概率路径对应的切分结果遍历用户词典,判断所述切分结果中是否存在与用户词典中词语匹配的连续多个词语;若所述切分结果中存在所述连续多个词语,则将所述连续多个词语进行整合,得到所述句子对应的分词结果。

百度查询: 北京金山安全软件有限公司 输入法模型生成方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。