发明内容
本发明的目的是提供一种中文分场景库更新方法,用以解决现有场景库更新时不能带入场景信息、且更新方式单一的问题。
相应的,本发明实施例还提供一种中文分词场景库更新系统,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种中文分词场景库更新方法,所述场景库包括至少一个主题词典,所述中文分词场景库更新方法包括:
在语句的正确分词结果中,选择一个分词;
基于所述正确分词结果,构造所述分词的特征;
针对所述场景库的每个主题词典,计算所述特征的最大熵模型得分;
比较所述最大熵模型得分中的最大值与第一预定阈值,如果所述最大值大于所述第一预定阈值,将所述分词添加到所述最大值对应的主题词典中。
优选地,通过以下方式基于所述正确分词结果构造所述分词的特征:
所述正确分词结果包括L个分词,依次为z1至zL,其中第i个分词zi的特征包括:
zi-2,zi-1,zi+1,zi+2,zizi+1,zi+1zi+2,zi-1zi,zi-2zi-1,zi-1zi+1。
优选地,所述中文分词场景库更新方法还包括:
在所述场景库中建立热点词库;
选择与所述场景库的应用场景相关联的至少一个语料,将所述至少一个语料中出现次数大于第二预定阈值的分词作为热点分词;
判断所述热点分词是否存在于所述场景库中;
将不存在于所述场景库中的热点分词添加到所述热点词库中。
优选地,所述场景库为二进制格式的文件。
优选地,所述中文分词场景库更新方法还包括:
建立备用文本文件;
通过手动方式将与所述场景库的主题词典相关联的分词添加到所述备用文本文件中。
本发明实施例还公开一种中文分词场景库更新系统,所述场景库包括至少一个主题词典,所述中文分词场景库更新系统包括:
分词选择模块,用于在语句的正确分词结果中,选择一个分词;
分词特征构造模块,用于基于所述正确分词结果,构造所述分词的特征;
计算模块,用于针对所述场景库的每个主题词典,计算所述特征的最大熵模型得分;
主题词典更新模块,比较所述最大熵模型得分中的最大值与第一预定阈值,如果所述最大值大于所述第一预定阈值,将所述分词添加到所述最大值对应的主题词典中。
优选地,所述分词特征构造模块通过以下方式基于所述正确分词结果构造所述分词的特征:
所述正确分词结果包括L个分词,依次为z1至zL,其中第i个分词zi的特征包括:
zi-2,zi-1,zi+1,zi+2,zizi+1,zi+1zi+2,zi-1zi,zi-2zi-1,zi-1zi+1。
优选地,所述中文分词场景库更新系统还包括:
热点词库建立模块,用于在所述场景库中建立热点词库;
热点分词选择模块,用于选择与所述场景库的应用场景相关联的至少一个语料,将所述至少一个语料中出现次数大于第二预定阈值的分词作为热点分词;
判断模块,用于判断所述热点分词是否存在于所述场景库中;
热点分词添加模块,用于将不存在于所述场景库中的热点分词添加到所述热点词库中。
优选地,所述场景库为二进制格式的文件。
优选地,所述中文分词场景库更新系统还包括:
备用文本文件建立模块,用于建立备用文本文件;
手动添加模块,用于通过手动方式将与所述场景库的主题词典相关联的分词添加到所述备用文本文件中。
与现有技术相比,本发明实施例包括以下优点:
根据应用场景构建场景库,场景库包括若干个主题词典,每个主题词典涉及一个与应用场景相关的主题,用于存储与该主题相关联的分词。构造待更新分词的特征,针对主题词典计算特征的最大熵模型得分,并基于该得分将分词 添加到与其相关的主题词典中。通过这种方式,带入应用场景的信息,可以避免在中文分词过程中使用场景库时可能出现的分词歧义。此外,根据实施例的方法在实际应用过程中,可以实时或者离线完成场景库的更新,克服了现有技术更新方式单一的缺陷。
在场景库中建立热点词库,根据预先选择的语料确定热点分词,并将热点分词添加到场景库中,从而进一步扩充场景库,使场景库更适用于特定的应用场景。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
众所周知,英文是以词为单位的,词和词之间靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述完整的意思。中文分词将汉字序列切分成词序列,其是中文自然语言处理的基础。分词模块是用于执行中文分词的模块。目前常用的中文分词模块主要有LTP分词模块、CSW中文智能分词模块、ICTCLAS分词模块等等。大多数分词模块均包括预先建立的场景库,用于存储与特定应用场景相关的正确的中文分词。
在本发明的示例性实施例中,建立了与应用场景相关的场景库,该场景库 包括至少一个主题词典,主题词典用于存储与该主题相关的分词。例如,针对儿童闲聊场景,建立包括12个主题词典的场景库,这12个主题词典的名称如下:诗人、诗歌、歌曲、歌手、关系、音乐风格、语言、热点词、故事、全国城市名和省名、全国公交站和地铁站名、时间天气信息,分别用于存储与这12个主题相关的分词。
例如,诗人主题词典用于存储与诗人相关的分词,例如“李白”、“杜甫”等;歌手主题词典用于存储与歌手相关的分词,例如“周杰伦”、“张学友”等;关系主题字典用于存储人称代词,例如“爸爸”、“妈妈”、“你”、“我”、“他”等;语言主题字典用于存储与语种相关的分词,例如“英语”、“英文”、“土家语”、“英国语”等。
预先建立的场景库是基于有限的语料建立的,其可能是不完整的,当在场景库的使用过程中出现与场景库所适用的应用场景相关的新分词时,期待能够将新分词添加到场景库现有的主题词典中,或者添加新的主题词典,以不断充实场景库的内容。
为此,本发明的一方面提出一种中文分词场景库更新方法,其中,场景库包括至少一个主题词典。图1示出了根据示例性实施例的中文分词场景库更新方法的流程图,其具体包括以下步骤:
步骤101:在语句的正确分词结果中,选择一个分词
语句可以是任意的,例如其可以选自与应用场景相关的某个语料,如果希望在执行中文分词的过程中进行实时的场景库更新,那么语句可以是待分词的语句。
对于选定的语句,可以通过现有的分词模块获得语句的正确分词结果,也可以通过特定的分词方法获得正确分词结果,或者,还可以通过人工方式获得正确分词结果。
在本步骤中,在语句的正确分词结果中,选择一个分词。
例如对于语句“请唱首韩语儿歌”,通过现有分词模块对其进行分词,获得 正确分词结果如下:
请/唱/首/韩语/儿歌
在正确分词结果中选择一个分词“韩语”。然后,在接下来的步骤中,针对所选择的分词“韩语”,判断是否将其更新到场景库中,以及更新到场景库的哪一个主题词典中。
步骤102:基于正确分词结果,构造分词的特征;
按照以下方式,基于正确分词结果,构造分词的特征:
语句的正确分词结果包括L个分词,依次为z1至zL,其中第i个分词zi的特征包括:
zi-2,zi-1,zi+1,zi+2,zizi+1,zi+1zi+2,zi-1zi,zi-2zi-1,zi-1zi+1。
例如,对于在步骤101中所选择的分词“韩语”,由于正确的分词结果是:
请/唱/首/韩语/儿歌
因此,分词“韩语”的特征包括:
唱、首、儿歌、唱首、韩语儿歌、首韩语、首儿歌
步骤103:针对场景库的每个主题词典,计算特征的最大熵模型得分
如果场景库共包括N个主题词典,依次为C1、C2……CN,针对其中的每一个主题词典,计算在步骤102中构造的特征的最大熵模型得分,依次记为S1、S2……SN。
最大熵模型是一种机器学习方法,在自然语言处理的许多领域(如词性标注、中文分词、句子边界识别、浅层句法分析及文本分类等)都有比较好的应用效果。根据最大熵原则,当根据不完整的信息作为依据进行推断时,应该由满足分布限制条件的具有最大熵的概率分布推得。或者说,对随机事件的所有相容的预测中,熵最大的预测出现的概率占绝对优势。
在示例性实施例中,利用最大熵模型计算所构造的特征的最大熵模型得分,可以评价在给定的最大熵模型下,这些特征出现的概率。
为了使最大熵模型能够正确反映特征出现在场景库的某个主题词典中的概 率,在使用最大熵模型之前,优选地要对最大熵模型进行训练。在实际应用中,可以根据本方法可能应用的场景以及所涉及到的不同主题,选择适当的样本数据对最大熵模型进行训练。例如,当本方法将应用于儿童闲聊场景时,可以选择与诗人、诗歌、歌曲、歌手、关系、音乐风格、语言、热点词、故事等主题相关的样本数据。样本数据可以是从日常场景中获取的语句。经过训练之后,最大熵模型得分可以正确地反映特征出现在场景库的某个主题词典中的概率。建立和训练最大熵模型的方法属于本领域的现有技术,在此不再赘述。
例如,在示例性实施例中,场景库包括12个主题词典,这12个主题词典的名称分别是:诗人、诗歌、歌曲、歌手、关系、音乐风格、语言、热点词、故事、全国城市名和省名、全国公交站和地铁站名、时间天气信息。
针对这12个主题词典中的每一个,计算在步骤102中构造的特征的最大熵模型得分。将在步骤102中构造的特征:唱、首、儿歌、唱首、韩语儿歌、首韩语、首儿歌,作为最大熵模型的输入,可以获得该组特征的最大熵模型得分,如下所示:在语言主题词典中的得分是1,在歌曲主题词典中的得分是2.28275e-08,在其他10个主题词典中的得分远小于2.28275e-08。
得分显示,特征所属的分词“韩语”最有可能添加到语言主题词典中。
步骤104:比较最大熵模型得分中的最大值与预定阈值,如果最大值大于预定阈值,将分词添加到最大值对应的主题词典中
在步骤103中,针对场景库的每个主题词典C1、C2……CN,计算特征的最大熵模型得分,从而获得一组最大熵模型得分S1、S2……SN。在这些得分中,如果针对第j个主题词典Cj计算得到的最大熵模型得分Sj的值最大,而且该最大值Sj大于预定阈值,就将分词写入最大值Sj对应的主题词典Cj中。
例如,在以上步骤103中,计算得到了特征针对每个主题词典的最大熵模型得分,其中在语言主题词典中的得分是1,为最大值。在该例中,预定阈值设为0.9。由于最大值大于预定阈值,因此,将分词“韩语”添加到最大值对应的主题词典——语言主题词典中。
由于“韩语”被添加到语言主题词典中,因此,当其作为一个分词时,就表示一种语言,出现在语言的场景下;反之,如果“韩语”并不是出现在语言的场景下,就不能将其作为一个分词,应该被切分成单个的字。因此,将“韩语”添加到语言主题词典中就带上了语言的场景信息。类似的,当一个分词被写入歌手主题词典中时,就表示这个分词只有在歌手的场景下才能作为分词,而在其他场景下则需要进行切分,因此,这个分词就带上了歌手的场景信息。
通过循环执行以上步骤101至104,可以基于语句的正确分词结果中的每个分词,对场景库进行更新。
此外,可以在中文分词过程中执行根据示例性实施例的中文分词场景库更新方法,从而实现场景库的实时更新。例如,在对一个待分词语句进行正确分词后,获得正确分词结果。然后执行根据示例性实施例的中文分词场景库更新方法,从正确分词结果中选择一个分词,构造该分词的特征,针对场景库的每个主题词典计算特征的最大熵模型得分,判断是否将该分词添加到场景库的某个主题词典中,并进行相应的添加。循环执行本方法,可以基于正确分词结果中的每个分词,对场景库进行更新。
或者,也可以离线执行根据示例性实施例的中文分词场景库更新方法,从而实现场景库的离线批量更新。例如,在使用场景库之前,针对已经进行正确分词的一批语料,执行根据示例性实施例的中文分词场景库更新方法,从而可以将一批语料中所有与场景库所包括的主题词典相关联的分词批量写入各主题词典中。
在本发明的一种优选实施例中,根据示例性实施例的中文分词场景库更新方法还包括以下步骤:
步骤201:在场景库中建立热点词库
除了主题词典之外,在场景库中建立单独的热点词库,用于存储热点词。例如,在示例性实施例中,场景库中除了包括12个主题词典外,还包括一个单独的热点词库。
步骤202:选择与场景库的应用场景相关联的至少一个语料,将至少一个语料中出现次数大于预定阈值的分词作为热点分词
选择与场景库的应用场景相关联的一个或多个语料,将语料中出现次数大于预定阈值的分词作为热点分词。例如,如果场景库应用于儿童闲聊场景,那么选择儿童闲聊日志语料,找到其中出现次数大于阈值的分词,例如“牛奶”,作为热点分词。
步骤203:判断热点分词是否存在于场景库中
通过搜索等方式判断在步骤202中所确定的热点分词是否已经存在于场景库中。
例如,通过搜索场景库的各个主题词典,判断在步骤202中确定的热点分词“牛奶”不在场景库中。
步骤204:将不存在于场景库中的热点分词添加到热点词库中
如果在步骤203中判断热点分词不存在于场景库中,那么将该热点分词添加到热点词库中,否则,如果在步骤203中判断该热点分词已经存在于场景库中,那么不进行处理。
例如,在本步骤中,将热点分词“牛奶”添加到热点词库中。
通过以上步骤201至204,进一步将与特定应用场景相关联的热点分词添加到场景库中,从而对场景库进行了更新,使场景库更适用于特定的应用场景。
以上步骤201至204所述的场景库的热点词库的更新,优选地以离线方式进行。即在使用场景库之前,针对已经进行正确分词的一批语料,执行以上步骤201至204,从而可以将一批语料中所包含的热点分词批量写入场景库的热点词库中。
在本发明的一种优选实施例中,为了便于场景库的更新,场景库可采用二进制格式的文件。对于二进制格式的文件,在更新场景库时,可首先检查待添加分词是否已经存在于文本文件中,如果不存在,采用追加的方式更新场景库,以保证在添加新分词时,不会把已有的分词删除;如果存在,不进行任何操作。
在本发明的一种优选实施例中,根据示例性实施例的中文分词场景库更新方法还包括以下步骤:
建立备用文本文件;
通过手动方式将与场景库的主题词典相关联的分词添加到备用文本文件中。
为了进一步扩充场景库,可以建立备用文本文件。然后,人工选择一批与场景库的主题词典相关联的分词,通过手动方式将这些分词添加到备用文本文件中。在使用场景库之前,首先判断备用文本文件是否经过修改,如果经过修改,则读取备用文本文件,并以二进制格式将备用文本文件的内容写入场景库相应的主题词典中。在写入时,对于已经存在于场景库中的分词不再进行操作,对于不存在于场景库中的分词,将其写入场景库相应的主题词典中。作为优选方案,可以在读取备用文本文件之前,对备用文本文件进行去重处理,删除其中重复的分词。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参考图2,示出了根据示例性实施例的中文分词场景库更新系统的结构框图,其中场景库包括至少一个主题词典,所述中文分词场景库更新系统包括:
分词选择模块1101,用于在语句的正确分词结果中,选择一个分词;
分词特征构造模块1102,用于基于正确分词结果,构造分词的特征;
计算模块1103,用于针对场景库的每个主题词典,计算特征的最大熵模型得分;
主题词典更新模块1104,比较最大熵模型得分中的最大值与第一预定阈值,如果最大值大于第一预定阈值,将分词添加到最大值对应的主题词典中。
在本发明的一种优选实施例中,分词特征构造模块通过以下方式基于正确分词结果构造分词的特征:
正确分词结果包括L个分词,依次为z1至zL,其中第i个分词zi的特征包括:
zi-2,zi-1,zi+1,zi+2,zizi+1,zi+1zi+2,zi-1zi,zi-2zi-1,zi-1zi+1。
在本发明的一种优选实施例中,中文分词场景库更新系统还包括:
热点词库建立模块,用于在场景库中建立热点词库;
热点分词选择模块,用于选择与场景库的应用场景相关联的至少一个语料,将至少一个语料中出现次数大于第二预定阈值的分词作为热点分词;
判断模块,用于判断热点分词是否存在于场景库中;
热点分词添加模块,用于将不存在于场景库中的热点分词添加到热点词库中。
在本发明的一种优选实施例中,场景库为二进制格式的文件。
在本发明的一种优选实施例中,中文分词场景库更新系统还包括:
备用文本文件建立模块,用于建立备用文本文件;
手动添加模块,用于通过手动方式将与场景库的主题词典相关联的分词添加到备用文本文件中。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌 入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图1个流程或多个流程和/或方框图1个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图1个流程或多个流程和/或方框图1个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图1个流程或多个流程和/或方框图1个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种中文分词场景库更新方法和装置进行了详细介 绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。