CN111695359B - 生成词向量的方法、装置、计算机存储介质和电子设备 - Google Patents
生成词向量的方法、装置、计算机存储介质和电子设备 Download PDFInfo
- Publication number
- CN111695359B CN111695359B CN202010536927.2A CN202010536927A CN111695359B CN 111695359 B CN111695359 B CN 111695359B CN 202010536927 A CN202010536927 A CN 202010536927A CN 111695359 B CN111695359 B CN 111695359B
- Authority
- CN
- China
- Prior art keywords
- text unit
- target
- text
- word vector
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种生成词向量的方法、装置、计算机存储介质和电子设备,通过序列模式挖掘获得训练语料集中包含目标文本单元、且支持度不小于支持度阈值的目标序列模式,对每一语句,若语句中目标文本单元的上下文窗口包含满足长度条件的目标序列模式,则为该目标文本单元配置语义标签,得到携带语义标签的目标文本单元,对应相同目标序列模式的目标文本单元携带相同语义标签,对应不同目标序列模式的目标文本单元携带不同语义标签,然后通过训练词向量模型得到每种语义标签的词向量。本方案挖掘出可以反映目标文本单元不同语境的目标序列模式,由此为不同语境的目标文本单元配置不同的语义标签,从而获得表示目标文本单元的不同语义的多个词向量。
Description
技术领域
本发明涉及自然语言处理技术领域,特别涉及一种生成词向量的方法、装置、计算机存储介质和电子设备。
背景技术
自然语言处理是人工智能领域中的一个重要方向,该方向通常涉及情感分析,智能问答系统和机器翻译等任务。而计算机程序无法直接处理自然语言中的字或词,为了使计算机理解自然语言,一个必要的环节就是用对应的词向量表示自然语言包含的每个字或词,以便后续通过处理词向量实现以上任务。
现有技术一般是直接利用一个语料集合(其中包含多个句子)对现有的词向量(Word2Vec)模型进行训练,从而获得语料集合中的字或词对应的词向量。但是,自然语言中存在多义词,即一个词在不同语境下可以表示不同语义,而现有的方法对一个词只能生成唯一的词向量,无法反映多义词的不同语义,导致后续基于词向量实现的任务准确性较差。
发明内容
基于上述现有技术的缺点,本申请提供一种生成词向量的方法、装置、计算机存储介质和电子设备,以针对多义词的不同语义提供对应的词向量。
本申请第一方面提供一种生成词向量的方法,包括:
获得包括多个语句的训练语料集,并对所述训练语料集进行序列模式挖掘,得到目标序列模式;其中,每一个所述语句均包括至少一个预先指定的目标文本单元,所述目标序列模式指代包含所述目标文本单元、且支持度大于或等于预设的支持度阈值的序列;所述序列由至少一个文本单元组成;每个所述文本单元均包含至少一个连续的文字;
针对所述训练语料集的每一个所述语句,若检测出所述语句的目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式,为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元;其中,对应的满足预设长度条件的所述目标序列模式相同的两个所述目标文本单元携带的语义标签相同,对应的满足预设长度条件的所述目标序列模式不同的两个所述目标文本单元携带的语义标签不同;
用添加语义标签后的训练语料集训练词向量模型,并从训练后的词向量模型中获得所述训练语料集的每一个所述文本单元的词向量;其中,所述目标文本单元对应有多个词向量,且每一个所述词向量唯一对应于一种所述语义标签;所述词向量用于对包含所述目标文本单元的文本进行自然语言处理。
可选的,所述对所述训练语料集进行序列模式挖掘,得到目标序列模式,包括:
从所述训练语料集中删除每一个支持度小于所述支持度阈值的文本单元,得到过滤后的训练语料集;
将所述过滤后的训练语料集中每一个支持度大于或等于所述支持度阈值的文本单元,均确定为1级序列模式,并将序列级别N设定为2;
获得每一个N-1级序列模式对应的投影语料集;其中,所述N-1级序列模式对应的投影语料集,包括从所述过滤后的训练语料集的每一个语句中截取得到的所述N-1级序列模式的后缀;
将每一个在对应的所述投影语料集中的支持度大于或等于所述支持度阈值的文本单元和所述投影语料集对应的N-1级序列模式组合为N级序列模式,并使N递增1后返回执行所述获得每一个N-1级序列模式对应的投影语料集,直至不存在在对应的投影语料集中的支持度大于或等于所述支持度阈值的文本单元为止;
从获得的每一级的序列模式中筛选得到所述目标序列模式。
可选的,所述用添加语义标签后的训练语料集训练词向量模型,包括:
生成待训练的词向量模型和每一个所述文本单元的编码;其中,所述词向量模型包括每一个所述文本单元对应的初始词向量和多个参数向量;携带的所述语义标签相同的两个所述目标文本单元的编码相同,携带的所述语义标签不相同的两个所述目标文本单元的编码不同;
对所述添加语义标签后的训练语料集中的每一个所述文本单元执行下述训练过程:
从所述词向量模型中获得所述文本单元的上下文窗口内的其他文本单元的词向量;其中,所述其他文本单元指代所述上下文窗口内除所述文本单元以外的每一个文本单元;
若所述文本单元不是携带语义标签的目标文本单元,对所述上下文窗口内的其他文本单元的词向量进行累加计算,得到计算结果;
若所述文本单元是携带语义标签的目标文本单元,为所述上下文窗口内的其他文本单元设置对应的权重;其中,属于所述上下文窗口包含的满足所述长度条件的目标序列模式的文本单元的权重,大于不属于所述上下文窗口包含的满足所述长度条件的目标序列模式的文本单元的权重;
计算得到所述上下文窗口内的每一个其他文本单元的词向量与自身的权重的乘积,并将计算得到的所有乘积进行累加,得到计算结果;
根据所述计算结果,所述词向量模型的参数向量和所述文本单元的编码,计算所述词向量模型的损失;
若所述词向量模型的损失不满足收敛条件,基于所述词向量模型的损失更新所述上下文窗口内其他文本单元的词向量和所述词向量模型的参数向量,并返回执行所述获得所述文本单元的上下文窗口内的其他文本单元的词向量,直至所述词向量模型的损失满足收敛条件为止;其中,满足收敛条件的词向量模型中所述文本单元的词向量,作为所述文本单元的词向量。
可选的,所述为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元,包括:
若所述训练语料集中不存在携带语义标签的目标文本单元,为所述语句的所述目标文本单元随机配置一个语义标签,得到一个携带语义标签的目标文本单元;
若所述训练语料集中存在携带语义标签的目标文本单元,并且每一个所述携带语义标签的目标文本单元对应的上下文窗口包含的目标序列模式均与所述语句的所述目标文本单元对应的上下文窗口包含的目标序列模式不相同,为所述语句的所述目标文本单元配置一个与每一个已配置的语义标签均不相同的语义标签,得到一个携带语义标签的目标文本单元;
若所述训练语料集中存在满足,对应的上下文窗口包含的目标序列模式和所述语句的所述目标文本单元对应的上下文窗口包含的目标序列模式相同,条件的携带语义标签的目标文本单元,为所述语句的所述目标文本单元配置与满足所述条件的携带语义标签的目标文本单元相同的语义标签,得到一个携带语义标签的目标文本单元。
可选的,所述支持度阈值根据下述公式确定:
Min_sup=A×N;
其中,Min_sup表示所述支持度阈值,A表示预设的最小支持率,N表示所述训练语料集包含的语句的总数。
可选的,所述自然语言处理包括对语句的情感分析;其中,对包含所述目标文本单元的语句进行自然语言处理的过程,包括:
获得包含所述目标文本单元的待处理语句;
针对所述待处理语句,若检测出所述待处理语句的所述目标文本单元的上下文窗口包含满足所述长度条件的所述目标序列模式,选择和所述待处理语句的所述目标文本单元对应于相同的满足所述长度条件的所述目标序列模式的携带语义标签的目标文本单元,并将所述语义标签对应的词向量确定为所述待处理语句的所述目标文本单元的词向量;
组合所述待处理语句的每一个文本单元的词向量,得到所述待处理语句的词向量表示,并利用预先构建的情感分析模型处理所述待处理语句的词向量表示,从而确定所述待处理语句的情感标签。
可选的,所述获得包括多个语句的训练语料集,包括:
获得初始文本集合;其中,所述初始文本集合包括至少一个文本;
针对每一个所述文本,检测得到所述文本中的每一个语句分隔符,并将每两个相邻的语句分隔符之间的文本作为一个待过滤语句;
将每一个所述待过滤语句包含的数字、字母和特殊符号删除,得到对应的过滤后的语句,并从所有所述过滤后的语句中筛选得到所述训练语料集。
可选的,所述检测所述语句的所述目标文本单元的上下文窗口是否包含满足预设长度条件的所述目标序列模式的方式,包括:
获得所述语句的所述目标文本单元的上下文窗口内的最长目标序列模式;其中,所述最长目标序列模式,指代包含的文本单元的数量最多的目标序列模式;
判断所述最长目标序列模式包含的文本单元的数量,是否大于预设的长度阈值;
其中:若所述最长目标序列模式包含的文本单元的数量大于所述长度阈值,则检测出所述目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式。
可选的,所述对所述训练语料集进行序列模式挖掘,得到目标序列模式之后,还包括:
针对所述目标序列模式中的每两个所述目标序列模式,检测是否满足一个所述目标序列模式包含另一个所述目标序列模式条件;
若检测出满足一个所述目标序列模式包含另一个所述目标序列模式条件,则删除被包含的目标序列模式。
本申请第二方面提供一种生成词向量的装置,包括:
获得单元,用于获得包括多个语句的训练语料集;其中,每一个所述语句均至少一个预先指定的目标文本单元;
挖掘单元,用于对所述训练语料集进行序列模式挖掘,得到目标序列模式;其中,所述目标序列模式指代包含所述目标文本单元、且支持度大于预设的支持度阈值的序列;所述序列由至少一个文本单元组成;每个所述文本单元均包含至少一个连续的文字;
配置单元,用于针对所述训练语料集的每一个所述语句,若检测出所述语句的目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式,为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元;其中,对应的满足预设长度条件的所述目标序列模式相同的两个所述目标文本单元携带的语义标签相同,对应的满足预设长度条件的所述目标序列模式不同的两个所述目标文本单元携带的语义标签不同;
训练单元,用添加语义标签后的训练语料集训练词向量模型,并从训练后的词向量模型中获得所述训练语料集的每一个所述文本单元的词向量;其中,所述目标文本单元对应有多个词向量,且每一个所述词向量唯一对应于一种所述语义标签;所述词向量用于对包含所述目标文本单元的文本进行自然语言处理。
本申请第三方面提供一种计算机存储介质,用于存储程序,所述程序被执行时,用于实现本申请第一方面任意一项所提供的生成词向量的方法。
本申请第四方面提供一种电子设备,包括存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现本申请第一方面任意一项所提供的生成词向量的方法。
本申请提供一种生成词向量的方法、装置、计算机存储介质和电子设备,包括,对训练语料集进行序列模式挖掘,获得包含目标文本单元、且支持度大于或等于支持度阈值的目标序列模式,对每一包含目标文本单元的语句,若语句中目标文本单元的上下文窗口包含满足长度条件的目标序列模式,则为其配置语义标签,得到携带语义标签的目标文本单元,对应的目标序列模式相同的目标文本单元携带相同语义标签,对应的目标序列模式不同的目标文本单元携带不同的语义标签,用添加语义标签后的训练语料集训练词向量模型得到每种语义标签的词向量。词汇的语义由本方案挖掘出可以反映目标文本单元不同应用语境的目标序列模式,基于此为不同应用语境的目标文本单元配置不同的语义标签,最后通过训练词向量模型获得每种应用语境下的语义标签所对应的词向量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种生成词向量的方法的流程图;
图2为本申请另一实施例提供的一种对训练语料集进行序列模式挖掘的方法的流程图;
图3为本申请实施例提供的两种词向量模型的架构示意图;
图4为本申请实施例提供的一种哈夫曼树的结构示意图;
图5为本申请又一实施例提供的一种利用添加标签后的训练语料集训练词向量模型的方法的流程图;
图6为本申请实施例提供的一种生成词向量的装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
自然语言指代人们日常使用的语言,例如,英语,汉语,俄语等等都属于自然语言的一种。自然语言处理(Nature Language processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。自然语言处理是一门与语言学的研究有着密切的联系,融语言学、计算机科学、数学于一体的科学,其主要研究通过自然语言进行有效的人机交互的方法和相关理论。也就是说,通过自然语言处理方面的相关技术,计算机可以直接识别用户通过语音或文本的形式提供的自然语言,并作出对应的响应,例如执行特定操作,根据用户的意图给出自然语言形式的应答等。具体的,自然语言处理所涉及的技术包括但不限于语义理解、机器翻译、机器问答、知识图谱、情感分析等技术,其中语义理解还可以用于构建搜索引擎的词条。
本申请主要以针对汉语的自然语言处理为例进行说明,但是本申请任一实施例所提供的方法既适用于对汉语的自然语言处理,也可以适用于对其他语种的自然语言处理。
为了实现上述这些自然语言处理相关的技术,一个必不可少的环节就是将用户提供的自然语言形式的语句分解成多个文本单元,然后将每一个文本单元均转换为对应的词向量,从而将用户输入的语句转换成一个由若干个词向量组成的词向量序列,然后计算机才能通过分析这个词向量序列对用户输入的语句进行自然语言处理。
本申请中,用文本单元指代语句中单个的字或者词,例如,语句“张三乘高铁前往A市”,其中包含的文本单元依次为“张三”,“乘”,“高铁”,“前往”,“A市”。在实际应用中,可以预先建立一个词汇表,其中记录有多个常见的文本单元,每个文本单元可以是单个文字,例如“大”,“小”,可以是由两个及以上的字组成的词,例如“空间”,“存储”,“有备无患”,还可以是由两个及以上的词组成的词组,例如“电脑游戏”。
在此基础上,用户输入了一个语句之后,计算机可以逐一将用户输入的语句的每个文字和词汇表中的文本单元进行比对,从而识别出语句中每一个已记录的文本单元,若通过上述比对后,语句中还剩余若干个与词汇表中任意一个文本单元均不一致的文字,则可以将每一个剩余的字单独作为一个文本单元。
在自然语言中,常常会出现同一个文本单元在不同的语境下表示不同的语义的情况。例如,“大海”一词在某些语境可以指代通常所说的海洋,而在另一些语境下可以指代某些以“大海”作为标题的文艺作品,如流行乐曲,诗歌等。
而目前获得文本单元对应的词向量的方法一般是,直接利用一个包含多个语句的训练语料集训练得到一个词向量模型,训练完成的词向量模型中包含这个训练语料集的每一个文本单元唯一对应的词向量,这种方法无法针对同一个文本单元的不同语义生成不同的词向量。这就导致后续基于词向量进行的情感分析,机器问答等自然语言处理技术的准确度较低。
结合上述例子,若某个训练语料集中多次出现了上述文本单元“大海”,但是在这个训练语料集中,在某些语句中“大海”的语义为前一种,即表示海洋,而在另一些语句中“大海”的语义为后一种,即表示特定文艺作品,现有的这种获得词向量的方法会生成唯一的一个用于表示“大海”这一文本单元的词向量,而无法区分不同语义的“大海”。
在后续基于词向量进行自然语言处理时,若不同的用户分别提供了两个不同的语句,两个语句均包含文本单元“大海”,但是第一个语句的“大海”表示海洋,而第二个语句的“大海”指代文艺作品。这种情况下,两个语句中的“大海”被转换为同一个词向量,会导致后续对词向量的分析结果趋于一致。对应的,计算机根据分析结果做出的响应也会趋于一致。
例如,根据用户提供的语句进行搜索时,针对这两个语句的搜索结果可能会趋于一致。显然,上述例子中的两个语句的搜索结果应该涉及完全不同的两个方向,因此,若两个语句的搜索结果趋于一致,则其中必然存在至少一个语句,其对应的搜索结果与该语句所表达的用户的意图不匹配,这就说明,计算机针对该语句的自然语言处理的准确度较低,未能准确理解该语句的所表达的语义。
类似的例子还有文本单元“苹果”,在特定的语境中,“苹果”一词可以表示一种水果,在另外的一些语境中,“苹果”也可以指代以这个词作为企业名称的企业以及该企业所生产的电子设备。
为了解决现有方法生成的词向量无法对文本单元的不同语义进行区分的问题,本申请第一个实施例提供一种生成词向量的方法,请参考图1,该方法可以包括以下步骤:
S101、获得包括多个语句的训练语料集,并对训练语料集进行序列模式挖掘,得到目标序列模式。
其中,目标序列模式指代包含预先指定的目标文本单元、且支持度大于预设的支持度阈值的序列。每一个序列由至少一个文本单元组成。
训练语料集中的每一个语句均包括至少一个目标文本单元。
上述训练语料集可以通过以下方式获得:
首先获得包括至少一个文本的初始文本集合,初始文本集合中的文本,可以是一些访问量较大的网站或论坛上的用户发言,也可以是报刊杂志中的文章,还可以是一些书籍中节选的部分段落。
获得初始文本集合之后,针对每一个文本,检测得到文本中的每一个语句分隔符,然后基于语句分隔符将每一个文本均拆分为多个待过滤语句。
具体的,在汉语的应用环境中,语句分隔符可以包括句号,感叹号,问号等用于表示一句话结束的标点符号。在检测得到文本中的每一个语句分隔符之后,针对每一个文本,可以将文本的开头到文本的第一个语句分隔符之间的文字作为第一个待过滤语句,然后将第一个语句分隔符和第二个语句分隔符之间的文字作为第二个待过滤语句,以此类推,划分完整个文本。
划分得到多个待过滤语句之后,可以进一步从每一个待过滤语句中过滤掉数字、字母和特殊符号,也就是从待过滤语句中删除数字、字母和特殊符号(包括但不限于一个语句中的标点符号,如逗号,冒号,书名号等),得到对应的过滤后的语句。对每一个待过滤语句均进行过滤后,在从获得的所有过滤后的语句中筛选出包含至少一个目标文本单元的语句,然后就可以将这些语句组成步骤S101所述的训练语料集。
需要说明的是,上述过滤字母,是指,在汉语的应用环境中,删除待过滤语句中不属于汉字的其他文字,例如英语的字母,日语的假名等。在将本申请提供的方法应用于其他语种时,上述过滤字母可以替换为,过滤掉不属于当前语种的文字,例如,应用英语时,对待过滤语句的过滤就可以变更为过滤掉数字、特殊符号和其他语言的文字(例如汉字)。
目标文本单元指代由管理员指定的需要利用本申请提供的方法检测是否存在多种语义并对每一种语义均生成对应的词向量的文本单元。例如,假设一个训练语料集的多个语句中均出现了“苹果”,管理员认为在这个训练语料集中“苹果”可能有不同的语义,则可以指定“苹果”作为目标文本单元。
序列模式挖掘是数据挖掘技术的一种。序列模式挖掘主要用于,处理包括多个样本、且每一个样本均由多个元素顺序排列而成的样本集合。对这样的样本集合,可以定义如下几个概念:
序列,若干个(一个或多个)元素顺序排列组成一个序列。一个序列所包含的元素的数量,可以记为这个序列的长度,例如,包含5个元素的序列,其长度为5。
序列的支持度,对于一个序列,样本集合中包含这个序列的样本的总数,记为这个序列的支持度。
需要说明的是,某个样本包含一个序列,是指,这个样本包含这个序列的每一个元素,并且这些元素在这个样本中的先后顺序和在序列中的先后顺序一致。例如,若用英文字母表示元素,假设一个序列是“ABC”,一个样本是“ADBCE”,可以认为样本“ADBCE”包含序列“ABC”。
对样本集合进行序列模式挖掘得到的结果就是这个样本集合的若干个序列模式。序列模式(也可以称为频繁序列)指代这个样本集合中,支持度大于或等于预设的支持度阈值的那些序列。支持度阈值是根据最小支持率和样本集合包含的总样本数计算得到的一个实数,结合前述例子,假设最小支持率为20%,样本集合包含的总样本数为100,则这个样本集合的支持度阈值等于100乘以20%,即支持度阈值为20,这个样本集合中的每一个支持度大于或等于20的序列都可以记为这个样本集合的序列模式。
也就是说,支持度阈值可以根据公式:Min_sup=A×N计算得到。
其中,Min_sup表示支持度阈值,A表示预设的最小支持率,N表示样本集合中包含的总样本数。具体到本申请中,N就等于训练语料集中包含的语句的总数。
具体到本申请中,训练语料集就相当于进行序列模式挖掘的样本集合,每一个语句可以当做由若干文本单元顺序排列的样本,文本单元就是样本包含的元素。训练语料集的序列模式,就是由至少一个文本单元组成,且在训练语料集中支持度大于或等于支持度阈值的序列,进一步的,若一个序列模式包含目标文本单元,则这个序列模式就是训练语料集的一个目标序列模式。
可以理解的,一个文本单元可以理解为一个长度为1的序列。因此,对于任意一个文本单元,可以将训练语料集中,包含这个文本单元的语句的数量,作为这个文本单元的支持度。
因此,步骤S101挖掘得到的目标序列模式,就是训练语料集中满足以下条件的序列:
一个目标序列模式包含的若干个文本单元中有且仅有一个目标文本单元;在训练语料集中,包含目标序列模式模式的语句在训练语料集包含的所有语句中所占的比例大于或等于预设的支持度阈值。
S102、对训练语料集的每一个语句的目标文本单元的上下文窗口进行检测,得到每一个语句中满足语义识别条件的目标文本单元。
步骤S102所述的语义识别条件,指代,在一个语句中,目标文本单元的上下文窗口包含满足长度条件的目标序列模式。一般的,长度条件可以是,目标序列模式的长度大于或等于预设的长度阈值。
设定语义识别条件的原因在于,本申请提供的方法主要通过在具体语句中应用目标文本单元的语境来区分不同语句中目标文本单元的语义是否相同,进而基于识别结果训练出不同语义所对应的词向量。
而对于任意一个指定的目标文本单元,只有包含这个目标文本单元的序列在一个包含大量语句的集合中有较高的支持度(即该序列属于目标序列模式),且这个目标序列模式具有一定的长度(即满足长度条件),才能认为在这个目标序列模式中目标文本单元具有特定的语义,然后才能通过对应的目标序列模式区分这个目标文本单元和其他目标文本单元的语义是否相同,而对于不满足语义识别条件的目标文本单元则无法通过目标文本单元所在的序列进行语义的区分,因此本申请不对这些目标文本单元配置语义标签。
进一步的,若一个语句中目标文本单元出现多次,那么对于每一个目标文本单元都可以确定一个对应的上下文窗口,只要其中有至少一个上下文窗口包含长度大于或等于长度阈值的目标序列模式,则该语句就是满足语义识别条件的语句。
上下文窗口是自然语言处理领域一个常用的概念。预先设定窗口宽度N,N为正整数,对于一个语句中的任意一个文本单元,这个文本单元自身,位于这个文本单元之前的N个其他文本单元,以及位于这个文本单元之后的N个其他文本单元,共同组成这个文本单元的上下文窗口。其中,若这个文本单元之前或之后的其他文本单元的数量不足N个,则以文本单元所在语句的边界作为该文本单元的上下文窗口的边界。
下面举一个例子以供参考:
目标文本单元为“苹果”,挖掘得到的一个目标序列模式“苹果公司发布最新版本的手机”,设定上下文窗口的窗口宽度N等于7,长度阈值设定为5,假设训练语料集中的一个语句是“一周前苹果公司发布的最新版本的手机的价格为5000元”,针对该语句中的目标文本单元“苹果”,按设定的窗口宽度截取得到的上下文窗口为“一周前苹果公司发布的最新版本的手机”,这个上下文窗口包含的文本单元依次是“一周”,“前”,“苹果”,“公司”,“发布”,“的”,“最新”,“版本”,“的”,“手机”,可见上下文窗口包含“苹果”,“苹果”之后的7个文本单元,以及位于“苹果”之前且属于该语句的所有文本单元。
可以发现,这个上下文窗口包含前述目标序列模式“苹果公司发布最新版本的手机”,并且,这个目标序列模式长度为7,大于设定的长度阈值,因此可以确定语句“一周前苹果公司发布的最新版本的手机的价格为5000元”为满足语义识别条件的语句。
S103、为每一个满足语义识别条件的目标文本单元配置语义标签,得到携带语义标签的目标文本单元。
需要说明的是,若一个语句中出现两个及以上的目标文本单元,则执行步骤S103,需要针对其中的每一个目标文本单元判断该目标文本单元的上下文窗口是否包含满足长度条件的目标序列模式,对于任意一个目标文本单元,若只要这个目标文本单元的上下文窗口包含满足长度条件的目标序列模式,就为这个目标文本单元配置语义标签。
配置语义标签时,对于任意两个目标文本单元,若第一个目标文本单元的上下文窗口包含的满足长度条件的目标序列模式和第二个目标文本单元的上下文窗口包含的满足长度条件的目标序列模式相同,则为这两个目标文本单元配置相同的语义标签,以表明这两个目标文本单元具有相同的语义。
若第一个目标文本单元的上下文窗口包含的满足长度条件的目标序列模式和第二个目标文本单元的上下文窗口包含的满足长度条件的目标序列模式不相同,则为这两个目标文本单元配置不相同的语义标签,以表明这两个目标文本单元的语义不相同。
可选的,可以用数字或字母作为语义标签,不同的语义标签用不同的数字或字母进行区分。
结合步骤S102所提供的例子,目标文本单元为“苹果”,挖掘得到的两个满足长度条件的目标序列模式分别是“苹果公司发布最新版本的手机”和“苹果产量多水分充足”,设定上下文窗口的窗口宽度N等于7。
训练语料集中存在以下四个语句:
“苹果公司发布的最新版本的手机的价格是5000元”;
“苹果公司刚发布的最新版本的手机很好用”;
“最近一个月苹果产量多水分充足”;
“某省份的苹果的产量多水分也充足”。
通过步骤S102的检测可以发现上述四个语句中的目标文本单元“苹果”均满足语义识别条件,其中,第一个语句和第二个语句中的“苹果”对应的目标序列模式(即上下文窗口包含的目标序列模式)相同,均为“苹果公司发布最新版本的手机”,第三个语句和第四个语句中的“苹果”对应的目标序列模式相同“苹果产量多水分充足”,并且,第一个语句和第二个语句对应的目标序列模式,与第三个和第四个语句对应的目标序列模式不同。
因此,对上述四个语句执行步骤S103时,为第一个语句和第二个语句的“苹果”配置相同的语义标签,为第三个语句的“苹果”配置与第一个语句的“苹果”不相同的语义标签,为第四个语句的“苹果”配置与第三个语句的“苹果”相同的语义标签。
具体的,可以用数字作为语义标签,通过不同的数字区分不同语义标签,由此,对上述四个语句配置语义标签之后的结果可以是:
“苹果1公司发布的最新版本的手机的价格是5000元”;
“苹果1公司刚发布的最新版本的手机很好用”;
“最近一个月苹果2产量多水分充足”;
“某省份的苹果2的产量多水分也充足”。
其中的1和2就表示两种不同的语义标签。
S104、用添加语义标签后的训练语料集训练词向量模型,并从训练后的词向量模型中获得训练语料集的每一个文本单元的词向量。
可选的,可以直接用训练语料集训练得到词向量模型,也可以对训练语料集进行扩充,额外增加一些不包含目标文本单元的语句,得到扩充后的语料集,然后用扩充后的语料集训练得到词向量模型。
训练后的词向量模型包括训练语料集的每一个文本单元的词向量,并且,目标文本单元对应有多个词向量,且每一个词向量唯一对应于一种语义标签。
结合步骤S103的例子,目标文本单元“苹果”会对应有两个不同的词向量,其中一个词向量和“苹果”的语义标签1对应,另一个词向量和“苹果”的语义标签2对应。
需要说明的是,为了获得目标文本单元的每一个语义标签唯一对应的词向量,在训练词向量模型时,应当将目标文本单元和目标文本单元所携带的语义标签作为一个整体进行训练。
具体的,在利用语料集训练一个词向量模型之前,需要对这个语料集的每一个文本单元配置一个唯一的编码,也就是说每两个相同的文本单元具有相同编码,每两个不同的文本单元,其对应的编码也不相同,在词向量模型训练过程中需要用文本单元的编码计算词向量模型的损失,以便根据词向量模型的损失调节词向量模型包含的参数。训练完成后就可以从词向量模型中获得每一个编码对应的唯一的词向量,而每一个编码又唯一对应于一个文本单元,因此,通过这种方式就可以获得每一个单元唯一对应的词向量。
而在本申请中,为了获得每一种语义标签唯一对应的词向量,在为目标文本单元配置编码时,需要根据携带的语义标签配置不同的编码,即,携带不同的语义标签的目标文本单元用不同的编码表示,携带相同语义标签的目标文本单元用相同的编码表示,若训练语料集中存在由于不满足语义识别条件而未配置语义标签的目标文本单元,则这种目标文本单元也需要配置与其他携带语义标签的目标文本单元均不相同的编码。
结合步骤S103所述的例子,设定编码时,对第一个和第二个语句的“苹果1”设定第一编码,对第三个和第四个语句的“苹果2”设定第二编码,第一编码和第二编码不同。
通过这种方式,就可以确保训练完成的词向量模型包括每一种语义标签唯一对应的词向量。
一般的,对于具有多种不同的语义的词(或者字),在日常的语言交流中人们会通过这个词所应用的语境识别这个词的语义。例如,对于语句“某市的苹果产量很高且水分充足”,可以识别出其中的“苹果”指代一种水果,对于语句“苹果公司发布的最新版本的手机很好用”,可以识别出其中的“苹果”是某企业的名称。
进一步的,一个词(或者字)的所应用的语境,又可以用包含这个词的、且具有一定长度的序列模式来表示。换言之,对于通过序列模式挖掘得到的训练语料集的多个目标序列模式,若其中的一个目标序列模式满足长度条件,就可以认为在这个目标序列模式中目标文本单元具有与这个目标序列模式相关联的语义。
相对的,若存在两个及以上不相同的目标序列模式均满足长度条件,则每一个满足长度条件的目标序列模式的目标文本单元也都具有和所属的目标序列模式相关联的语义,并且,不同的目标序列模式关联的语义不相同。
综上所述,本方案通过检测训练语料集中满足长度条件的目标序列模式,对训练语料集中应用于不同语境的目标文本单元进行区分,在此基础上为应用于不同语境的目标文本单元配置不同的语义标签,使得训练词向量模型时,词向量模型能够通过不同的语义标签发现应用于不同语境下的目标文本单元具有不同的语义,从而获得多个用于表示目标文本单元的不同语义的词向量,进而提高后续对包含目标文本单元的自然语言进行处理时的准确程度。
可选的,在前述实施例中,对训练语料集进行序列模式挖掘得到目标序列模式之后,可以通过下述方法对获得的目标序列模式进行子序列模式过滤:
针对获得的每两个目标序列模式,检测这两个目标序列模式是否满足一个目标序列模式包含另一个目标序列模式的条件,若这两个目标序列模式满足一个目标序列模式包含另一个目标序列模式的条件,则删除这两个目标序列模式中被包含的目标序列模式。
对于任意两个目标序列模式(分别记为A和B),若A所包含的每一个文本单元均能够在B中找到,则认为目标序列模式B包含目标序列模式A,这种情况下目标序列模式B可以称为目标序列模式A的超序列模式,目标序列模式A可以称为目标序列模式B的子序列模式,按照上述方法,这种情况应该删除这两个目标序列模式中的子序列模式,即目标序列模式A。
经过序列模式挖掘会获得大量的目标序列模式,在配置语义标签时需要将目标序列模式和语句中目标文本单元的上下文窗口进行比对。通过删除目标序列模式中被其他目标序列模式包含的子序列模式,可以减少后续对语句中目标文本单元的上下文窗口进行检测时所需的时间。
可选的,针对每一个语句,检测该语句的目标文本单元的上下文窗口是否满足语义识别条件之前,对于上下文窗口的每一个文本单元,若这个文本单元不属于任意一个长度大于或等于2的序列模式,则可以删除这个文本单元,从而避免在检测时引入噪音。
可选的,检测一个语句中的目标文本单元是否满足语义识别条件的方法可以是:
首先基于预设的窗口宽度确定该语句中的目标文本单元的上下文窗口。然后将这个上下文窗口所包含的文本和挖掘得到的各个目标序列模式进行比对,从而确定这个上下文窗口是否包含目标序列模式,若包含目标序列模式则获得这个上下文窗口包含的最长目标序列模式。
获得这个上下文窗口的最长目标序列模式之后,判断这个上下文窗口的最长目标序列模式的长度是否大于预设的长度阈值,若这个上下窗口的最长目标序列模式的长度大于长度阈值,则确定这个上下文窗口中的目标文本单元满足语义识别条件。
请参考图2,对训练语料集进行序列模式挖掘的过程,可以包括以下步骤:
S201、从训练语料集中删除每一个支持度小于支持度阈值的文本单元,得到过滤后的训练语料集。
为了方便理解,下面结合一个具体的例子进行说明。假设训练语料集由如下表1中的四个语句组成,其中目标文本单元为“苹果”:
表1
苹果公司发布的最新版本的电脑销量很高 |
苹果公司刚发布的这款最新版本的手机受用户欢迎 |
最近苹果产量多水分充足销量很高 |
山东苹果的产量多水分也充足 |
设定的最小支持率为1/3,对应的支持度阈值就等于训练语料集中的语句数量4乘以最小支持率,即4/3,也就是说,对于任意一个序列,若上述四个语句中有两个及以上的语句包含该序列,则这个序列就是这个训练语料集的一个序列模式,反之则不是序列模式。
执行步骤S201时,针对上述训练语料集中的每一个文本单元,统计训练语料集中包含这个文本单元的语句的数量,若数量为1,则删除该文本单元,反之则保留该文本单元。
通过步骤S201的过滤,得到的过滤后的训练语料集如下表2所示:
表2
苹果公司发布最新版本的电脑销量很高 |
苹果公司发布的最新版本的手机 |
苹果产量多水分充足销量很高 |
苹果的产量多水分充足 |
S202、将过滤后的训练语料集中每一个支持度大于或等于支持度阈值的文本单元,均确定为1级序列模式,并将序列级别N设定为2。
本实施例中,一个序列模式的级别,等于这个序列模式的长度。换言之,若一个序列模式是N级序列模式,则这个序列模式就包含N个文本单元。
通过步骤S201的过滤,可以确保过滤后的训练语料集中的每一个文本单元的支持度均大于或等于支持度阈值,因此,过滤后的训练语料集中的每一个文本单元均可以认为是训练语料集的一个1级序列模式。
S203、获得每一个N-1级序列模式对应的投影语料集。
对于任意一个序列模式,从过滤后的训练语料集中找出每一个包含这个序列模式的语句,然后针对每一个包含这个序列模式的语句,提取出该语句中位于这个序列模式的最后一个文本单元之后的文本作为这个序列模式的一个后缀,组合这个序列模式的每一个后缀,就得到这个序列模式的投影语料集。
例如,1级序列模式“公司”的投影语料集包括:“发布最新版本的电脑销量很高”和“发布的最新版本的手机”两个后缀。
2级序列模式“苹果公司”的投影语料集包括“发布最新版本的电脑销量很高”和“发布的最新版本的手机”两个后缀。
2级序列模式“苹果发布”的投影语料集包括“最新版本的电脑销量很高”和“的最新版本的手机”两个后缀。
4级序列模式“苹果产量多水分”的投影语料集包括“充足销量很高”和“充足”两个后缀。
可以理解的,在本实施例中,首次执行步骤S203时,N等于2,此时执行步骤S203获得的是过滤后的训练语料集中的每一个1级序列模式的投影语料集。之后,由于执行步骤S206使得N递增1,第二次执行步骤S203时,N等于3,步骤S203获得的是过滤后的训练语料集中的每一个2级序列模式的投影语料集,第三次执行时则变为3级序列模式的投影语料集,以此类推。
S204、判断每一个投影语料集是否存在支持度大于或等于支持度阈值的文本单元。
具体的,若存在至少一个投影语料集,满足该投影语料集中存在至少一个支持度大于或等于支持度阈值的文本单元的条件,则执行步骤S205,若获得的每一个投影语料集均不满足上述条件,执行步骤S207。
对于任意一个投影语料集,若这个投影语料集为空集,也就是说对应的序列模式在过滤后的训练语料集中没有后缀,或者说这个投影语料集包含的后缀的数量小于支持度阈值,则可以直接确定这个投影语料集中不存在支持度大于或等于支持度阈值的文本单元。
需要说明的是,步骤S204中判断的支持度,是指文本单元在对应的投影语料集中的支持度,也就是说,对于一个投影语料集,其中的某个文本单元的支持度,等于在这个投影语料集中包含这个文本单元的后缀的数量。
结合前述例子,对于2级序列模式“苹果公司”的投影语料集,该投影语料集的两个后缀均包括文本单元“发布”,因此“发布”在2级序列模式“苹果公司”的投影语料集中支持度为2,大于或等于支持度阈值。
而对于文本单元“销量”,2级序列模式“苹果公司”的投影语料集中只有一个后缀,即“发布最新版本的电脑销量很高”包括这个文本单元,因此“销量”在2级序列模式“苹果公司”的投影语料集中的支持度为1,小于支持度阈值。
因此,步骤S204的执行过程是,针对步骤S203获得的每一个N-1级序列模式的投影语料集,检测这个投影语料集中的每一个文本单元,判断这个投影语料集中包含这个文本单元的后缀的数量是否大于或等于支持度阈值,若这个投影语料集中包含这个文本单元的后缀的数量大于或等于支持度阈值,则确定该文本单元在这个投影语料集中的支持度大于或等于支持度阈值。
S205、将投影语料集中支持度大于或等于支持度阈值的文本单元和对应的N-1级序列模式组合,得到N级序列模式。
需要说明的是,步骤S205会对所有满足条件的文本单元执行。
结合前述例子,当N等于2时,对于1级序列模式“公司”,其投影语料集“发布最新版本的苹果手机销量很高”和“发布的最新版本的手机”中“发布”的支持度大于支持度阈值,因此可以组合“公司”和“发布”得到一个2级序列模式“公司发布”,此外,“最新”,“版本”等文本单元在1级序列模式“公司”的投影语料集中的支持度也大于支持度阈值,因此可以分别组合得到2级序列模式“公司最新”,“公司版本”等,而“销量”在1级序列模式“公司”的投影语料集中的支持度小于支持度阈值,因此不能和“公司”组合。
类似的,N等于3时,对于2级序列模式“苹果公司”,可以将“苹果公司”和“发布”组合得到3级序列模式“苹果公司发布”,而“销量”则不能与“苹果公司”组成3级序列模式。
S206、使N递增1。
步骤S206可以理解为,读取N当前的数值,将该数值加1,然后将得到的结果赋值给N,例如,若执行步骤S206之前N的值为3,则执行步骤S206之后N的值为4。
步骤S206执行完毕之后,返回执行步骤S203。
S207、从获得的每一级的序列模式中筛选得到目标序列模式。
通过筛选后可以获得每一级别的目标序列模式,1级目标序列模式只有“苹果”,2级目标序列模式则包括“苹果公司”,“苹果发布”,“苹果产量”,“苹果水分”……等。
类似的,3级目标序列模式包括“苹果公司发布”,“苹果产量多”……等。
5级目标序列模式包括“苹果产量多水分充足”,“苹果公司发布最新版本”等。
可以理解的,筛选得到的各个级别的目标序列模式包括但不限于上述目标序列模式,此处不一一列举。
本实施例提供的序列模式挖掘的方法可以通过递归的方式执行。
可以理解的,图2对应的实施例仅仅是一种可选的实现序列模式挖掘的算法,在具体应用时,还可以使用现有的其他序列模式挖掘算法实现本申请图1对应的实施例中的步骤S101,其他序列模式挖掘算法的实现此处不再详述。
在图2对应的实施例中,获得2级以及2级以上的序列模式时,不需要对过滤后的训练语料集中的每一个语句进行检测,而只需要检测对应的投影语料集中的后缀即可,可以发现,投影语料集包含的后缀的数量小于过滤后的训练语料集中语句的数量,因此,采用图2对应的实施例所提供的方法进行序列模式挖掘,可以提高序列模式挖掘的速度。
针对表1所示的训练语料集进行如上述实施例所述的序列模式挖掘之后,可以按前述图1对应的实施例中的步骤对表1中的每个语句中的目标文本单元,即“苹果”进行检测。
设定上下文窗口的宽度为7,长度阈值为5。对第一个语句“苹果公司发布的最新版本的电脑销量很高”进行检测,其中的“苹果”的上下文窗口为“苹果公司发布最新版本的电脑销量”,这个上下文窗口包含长度等于长度阈值5的目标序列模式“苹果公司发布最新版本”,因此对其中的“苹果”配置语义标签,用数字表示语义标签,对训练语料集中的第一个语句配置语义标签时,可以任意配置一个语义标签,此处可以为第一个语句“苹果公司发布最新版本的电脑销量很高”的“苹果”配置语义标签1,从而得到“苹果1公司发布的最新版本的电脑销量很高”。
针对第二个语句“苹果公司刚发布的这款最新版本的手机受用户欢迎”,重复上述检测过程,发现这个语句中“苹果”的上下文窗口包含的长度等于长度阈值的目标序列模式和第一个语句中的“苹果”对应的目标序列模式一致,均为“苹果公司发布最新版本”,因此,为第二个语句的“苹果”配置与第一个语句的“苹果”相同的语义标签,得到“苹果1公司刚发布的这款最新版本的手机受用户欢迎”。
针对第三个语句“最近苹果产量多水分充足销量很高”进行检测,其中的“苹果”的上下文窗口包含的长度等于长度阈值的目标序列模式为前述5级目标序列模式“苹果产量多水分充足”,所以需要为第三个语句的“苹果”配置语义标签。并且,可以发现这个目标序列模式和在前两个语句的上下文窗口中发现的目标序列模式不同,因此,为第三个语句的“苹果”配置的语义标签应当和前两个语句的语义标签不同,例如,可以将第三个语句的“苹果”的语义标签配置为2,得到“最近苹果2产量多水分充足销量很高”。
对于第四个语句“山东苹果的产量多水分也充足”重复上述过程,可以确定应当为其中的“苹果”配置语义标签2,得到“山东苹果2的产量多水分也充足”。
对表1的训练语料集添加标记后得到的训练语料集如表3所示:
表3
苹果1公司发布的最新版本的电脑销量很高 |
苹果1公司刚发布的这款最新版本的手机受用户欢迎 |
最近苹果2产量多水分充足销量很高 |
山东苹果2的产量多水分也充足 |
词向量模型是一类现有的神经网络模型,其主要包括输入层(input layer),投影层(projection layer)和输出层(output layer)三层结构,根据输入层允许输入的文本单元的数量和输出层输出的词向量的数量,词向量模型又可以具体分为连续性词袋模型(Continuous Bag-of-Words Model,简称为CBOW模型),和连续性跳字模型(ContinuousSkip-gram Model,简称为Skip-gram)两种类型。
两种类型的词向量模型的结构如图3所示。其中,两种模型的输入层均包括训练语料集中每一个文本单元的词向量,也就是说,对于一个词向量模型,文本单元的词向量是这个词向量模型的参数的一部分,在初始化词向量模型时,需要为每一个文本单元设定一个初始词向量,然后在后续训练过程中不断的更新输入层的词向量。
训练CBOW模型时,逐一读取训练语料集的每一个语句中的每一文本单元作为中心文本单元,从输入层输入中心文本单元的上下文窗口内其他文本单元的编码,然后输入层根据输入的每一个编码确定对应的文本单元的词向量,并将确定的多个词向量传输至投影层,投影层对这些词向量进行运算得到一个运算结果X,将运算结果X传输至输出层,然后输出层会根据X,中心文本单元的编码,以及输出层包含的多个预设的参数向量计算得到这个中心文本单元对应的词向量模型损失,此时,若当前这个中心文本单元对应的词向量模型损失满足收敛条件,则继续从训练语料集中读取下一个文本单元作为中心文本单元,然后对这个新的中心文本单元重复上述过程,若当前这个中心文本单元对应的词向量模型损失不满足收敛条件,则依据当前这个中心文本单元对应的词向量模型损失更新输出层的参数向量,以及中心文本单元的上下文窗口内其他文本单元的词向量,直至当前这个中心文本单元对应的词向量模型损失满足收敛条件。
以此类推,直至针对训练语料集中的每一个文本单元,输出层输出的词向量模型损失均满足收敛条件,对CBOW模型的训练就算完成,训练完成后,可以直接从输入层获得每一个文本单元的词向量。
对Skip-gram模型的训练过程类似,区别在于,Skip-gram模型的输入层输入的是中心文本单元的词向量,输出层输出的是中心文本单元在语句中的上下文窗口内的其他文本单元所对应的词向量模型损失,对应的,在检测模型是否收敛时,需要检测上下文窗口内每一个其他文本单元对应的词向量模型是否收敛。另外,在更新Skip-gram模型时,需要更新输出层的参数向量,中心文本单元的词向量,以及投影层的计算参数。
下面介绍一种在训练词向量模型时用于对训练语料集中的文本单元编码的方法:
可以根据训练语料集中每个文本单元的出现频率,构建这个训练语料集的哈夫曼树(HuffmanTree)。基于训练语料集构建的哈夫曼树的结构可以参考图4,每一个矩形框表示一个节点,对于相互连接的两个节点,上方的节点为下方的节点的父节点,对应的,下方的节点为上方的节点的子节点。对于每一个节点,若该节点没有子节点,则该节点称为叶子节点,若该节点有一个或两个子节点,则该节点称为分支节点。图4中叶子节点的文本单元1至5用于表示每一个叶子节点对应的文本单元。若对训练语料集构造了哈夫曼树,则可以将输出层的每一个参数向量配置个哈夫曼树中对应的分支节点,如图4所示。
哈夫曼树是一种给定N个叶子节点以及每一个叶子节点对应的权值之后,根据这N个权值按一定的规则构造得到的二叉树,其中每个叶子节点的权值用于决定叶子节点在哈夫曼树中的位置,具体的构造方法可以参考相关的现有技术,此处不再赘述。
在本申请中每一个叶子节点就对应于训练语料集中的一个文本单元,或对应于携带一种语义标签的目标文本单元,叶子节点的权值就是对应的文本单元或者携带语义标签的目标文本单元在训练语料集中的出现频率。
例如,针对前述表3所示的添加语义标签后的训练语料集,其中,文本单元“公司”的出现频率为0.5,在构造的哈夫曼树中有唯一的一个对应于“公司”的叶子节点,其权值为0.5,对于携带语义标签的目标文本单元,携带的语义标签不同时应当视为不同的文本单元进行处理,在构造的哈夫曼树中,分别有两个叶子节点,一个对应于“苹果1”,另一个对应于“苹果2”,其他的文本单元则与前述“公司”一样,每种文本单元对应唯一一个叶子节点。
在构造了上述哈夫曼树的基础上,可以针对每一个分支节点,将其左侧的边标记为0,右侧的边标记为1,通过这种方式,每个叶子节点的位置就可以用从根节点(即哈夫曼树中位于顶层的节点)到这个叶子节点的路径上的各个边对应的标记进行编码,又由于叶子节点和训练语料集中的文本单元(以及携带语义标签的目标文本单元)一一对应,因此可以将叶子节点的编码作为对应文本单元和携带语义标签的目标文本单元的编码。
例如,图4最左侧的叶子节点,从根节点移动至这个叶子节点时,首先经过根节点的标记为0的边,然后经过一个分支节点的标记为0的边,才能到达该叶子节点,因此这个叶子节点的编码为00,该叶子节点对应的文本单元的编码也是00。
类似的,对于图4中文本单元2对应的叶子节点,从根节点移动至这个叶子节点,首先经过根节点的标记为0的边,然后经过一个分支节点的标记为1的边,因此文本单元2的编码为01。
进一步的,在构造训练语料集对应的哈夫曼树之后,可以进一步将输出层的各个参数向量填充至哈夫曼树的每一个分支节点中,每一个分支节点对应一个参数向量,通过这种方式,在训练词向量模型时就可以利用哈夫曼树计算词向量模型的损失。
请参考图5,下面结合前述图1对应的实施例的方法,以及前文对哈夫曼树的介绍,说明本申请提供的生成词向量的方法中,利用添加语义标签的训练语料集训练CBOW模型的过程:
S501、生成待训练的词向量模型和每一个文本单元的编码。
其中,词向量模型包括每一个文本单元对应的初始词向量和多个参数向量;携带的语义标签相同的两个目标文本单元的编码相同,携带的语义标签不相同的两个目标文本单元的编码不同。
文本单元以及携带语义标签的目标文本单元的编码可以通过前述构造哈夫曼树的方式确定,如前文所述,在构造好的哈夫曼树中,携带不同语义标签的目标文本单元对应于不同叶子节点,具体到前述表3所示的例子中,就是“苹果1”对应一个叶子节点,“苹果2”对应另一个叶子节点。
生成待训练的词向量模型,可以理解为对词向量模型进行初始化。根据前文对词向量模型的介绍,训练一个词向量模型首先需要为这个词向量模型的每个词向量和参数向量配置初始的数值,然后在后续训练过程中不断调节这些向量的数值。
可选的,在本实施例中,可以首先设定参数向量和词向量的维度,然后使用服从均匀分布的数据填充每一个参数向量和词向量的每一个维度,从而完成初始化。
S502、读取添加语义标签后的训练语料集中出现的第一个文本单元作为当前文本单元。
以前述表3中的添加语义标签的训练语料集为例,第一个文本单元为第一个语句中携带语义标签的目标文本单元“苹果1”。
S503、获得当前文本单元的上下文窗口内其他文本单元的词向量。
其他文本单元指代上下文窗口内除当前文本单元以外的每一个文本单元。
需要说明的是,执行步骤S503时,若上下文窗口中有重复的文本单元,则对应的词向量也需要重复获取。
步骤S503可以认为是由词向量模型的输入层执行的步骤。
步骤S503中其他文本单元的词向量,是指,其他文本单元当前的词向量,具体的,若其他文本单元的词向量经过更新,则步骤S503获得的是其他文本单元的最近一次更新后的词向量,若其他文本单元的词向量未经过更新,则步骤S503获得的初始化时生成的其他文本单元的初始词向量。
以前述表3中的添加语义标签的训练语料集为例,若当前文本单元为第一个语句中携带语义标签的目标文本单元“苹果1”,窗口宽度为7,则上下文窗口为“苹果1公司发布的最新版本的电脑”,步骤S503就需要获得“公司”,“发布”,“的”,“最新”,“版本”,“电脑”的词向量,其中“的”出现两次,对应的需要获得两个“的”的词向量。
S504、判断当前文本单元是否为携带语义标签的目标文本单元。
若当前文本单元不是携带语义标签的目标文本单元,执行步骤S505。
若当前文本单元是携带语义标签的目标文本单元,执行步骤S506。
S505、对上下文窗口内的其他文本单元的词向量进行累加计算,得到计算结果。
用wi表示上下文窗口中的第i个其他文本单元,i的取值为1至m,m为上下文窗口中其他文本单元的数量,用V(wi)表示文本单元wi的词向量,则步骤S505可以表示为如下公式(1),其中X表示计算结果:
S506、为上下文窗口内的其他文本单元设置对应的权重。
其中,对于上下文窗口内除当前文本单元以外的每一个文本单元,属于上下文窗口包含的满足长度条件的目标序列模式的文本单元的权重,大于不属于上下文窗口包含的满足长度条件的目标序列模式的文本单元的权重。
具体的,可以对上下文窗口内除当前文本单元以外的每一个文本单元,直接将文本单元在训练语料集中的出现频率作为该文本单元对应的权重。
S507、对上下文窗口内的其他文本单元的词向量进行加权求和,得到计算结果。
若沿用前述步骤S505的公式,并用Si表示上下文窗口中的第i个其他文本单元的权重,则步骤S506可以表示为如下公式(2):
可以理解的,不论通过步骤S505或者步骤S507进行计算,得到的计算结果都是一个与词向量具有相同维度的向量。
S508、根据计算结果,词向量模型的参数向量和当前文本单元的编码,计算得到词向量模型的损失。
结合前文对哈夫曼树的介绍,对于一个文本单元,根据这个文本单元的编码可以确定在哈夫曼树中从根节点到这个文本单元对应的叶子节点的路径,进而确定出该路径所经过的每一个分支节点,其中根节点作为路径上的第一个分支节点,后续的分支节点依据和根节点的距离的长短排序,距离最近的为第二个分支节点,距离第二近的为第三个分支节点,以此类推。。
进一步的,可以将输出层的每一个参数向量对应于哈夫曼树的一个分支节点。
基于此,对于当前文本单元所对应的叶子节点的路径上的第j个分支节点,可以用下述公式(3)计算得到这个分支节点j对当前文本单元所对应的叶子节点的分类概率P(X,Yj):
其中,X表示前述计算结果,Yj表示分支节点j对应的参数向量,dj表示当前文本单元对应的编码中的第j位,同时也是从分支节点j移动至当前文本单元对应的叶子节点时所经过的第一条边的标记,结合前述对哈夫曼树的说明,若当前文本单元对应的叶子节点在分支节点j的左侧,则dj等于0,若当前文本单元对应的叶子节点在分支节点j的右侧,则dj等于1。
函数Sigma(a)的表达式为:
计算分类概率时,只要将分支节点j的参数向量,和前述计算结果X的对应元素相乘,然后将得到的乘积相加,就可以得到向量X和Yj的数量积,根据dj的取值,若dj等于1,则将数量积代入公式(3)的上半部分,若dj等于0,则将数量积代入公式(3)的下半部分,就可以计算得到分支节点j对当前文本单元所对应的叶子节点的分类概率P(X,Yj)。
在此基础上,将当前文本单元对应的叶子节点的路径上的每一个分支节点的分类概率累乘,得到的乘积就是当前文本单元在对应的上下文窗口中的的分类输出概率P(W,con(W)),其中W表示当前文本单元,con(W)表示当前文本单元的上下文窗口。具体可以参考下述公式(4);
其中,k表示根节点到当前文本单元对应的叶子节点的路径上包括k个分支节点。
根据计算结果X计算得到当前文本单元在对应上下文窗口的分类输出概率P(W,con(W))后,以10为底数计算P(W,con(W))的对数,就可以得到当前的词向量模型的损失loss,请参考下述公式(5):
loss=log10P(W,con(W))
S509、判断词向量模型的损失是否满足收敛条件。
收敛条件可以是,词向量模型的损失小于预设的损失阈值。也可以是,本次词向量模型的损失和前一次词向量模型的损失之间的差值的绝对值小于预设的阈值。
若词向量模型的损失不满足收敛条件,执行步骤S510,若词向量模型的损失满足收敛条件,执行步骤S511。
S510、基于词向量模型的损失更新上下文窗口内其他文本单元的词向量和词向量模型的参数向量。
步骤S510执行完毕后,返回执行步骤S503。
S511、判断当前文本单元是否为训练语料集的最后一个文本单元。
若当前文本单元是训练语料集的最后一个文本单元,则训练过程结束,输出训练完成的词向量模型。
若当前文本单元不是训练语料集的最后一个文本单元,执行步骤S512。
S512、读取训练语料集中的后一个文本单元作为当前文本单元。
步骤S512执行完毕后,返回执行步骤S503。
上述后一个文本单元,是指,在训练语料集的对应的语句中,位于执行步骤S512之前的当前文本单元之后的第一个文本单元。
结合前述表3的例子,若执行步骤S512之前,当前文本单元是语句“苹果1公司发布的最新版本的电脑销量很高”中的携带语义标签的文本单元“苹果1”,那么执行步骤S512之后,当前文本单元就变更为语句“苹果1公司发布的最新版本的电脑销量很高”中的第二个文本单元“公司”。
上述实施例是针对CBOW模型的训练过程。利用添加语义标签后的训练语料集训练Skip-gram模型的过程与针对CBOW模型的训练过程基本一致,此处不再详述。
特殊的地方在于,若当前文本单元是携带语义标签的目标文本单元,则Skip-gram模型的投影层根据当前文本单元计算得到当前文本单元的上下文窗口内的其他文本单元对应的计算结果时,也可以依据本实施例的步骤S506的方法设置权重,然后将其他文本单元的计算结果更新为,原本的计算结果和对应的权重的乘积。
后续根据其他文本单元的计算结果计算词向量模型的损失的方法与本实施例的对应步骤一致,均可以通过计算分类输出概率得到,不再详述。
如前文所述,输出训练完成的词向量模型之后,可以直接从训练完成的词向量模型中读取得到每一个文本单元所对应的唯一的词向量。由于在确定编码以及初始化时,训练语料集中携带不同语义标签的目标文本被视为不同的文本单元赋予了不同的编码,因此最后输出的训练完成的词向量模型中,会包含每一种语义标签对应的唯一的词向量。基于此,在执行后续的自然语言处理任务时,就可以通过针对具有不同语义的目标文本单元使用不同的词向量,从而提高自然语言处理的准确性。
进一步的,本实施例根据各个文本单元的支持度对训练词向量模型时相关的计算过程进行加权,使得词向量模型最终生成的携带语义标签的目标文本单元的词向量时能够更倾向于表示不同语义的目标文本单元所处的语境,使得最后获得的每一种语义标签对应的词向量更准确的反映携带该语义标签的目标文本单元的语义。
本申请提供的生成词向量的方法所生成的词向量可以应用于包括但不限于情感分析,机器问答在内的多种自然处理的任务中,通过标记出在不同语句中具有不同语义的目标文本单元并生成目标文本单元的不同语义对应的词向量,本申请提供的生成词向量的方法可以有效的提高后续基于词向量实现的上述自然语言任务的准确性。
下面以本申请提供的方法在情感分析任务中的应用为例进行说明,本申请提供的方法在其他自然语言处理任务中的应用方式可以参考下述在情感分析任务中的应用方式得知,不再一一列举:
目前对用户的自然语言进行情感分析的方法主要是,首先通过人工标注的方式获得大量标注有不同情感标签的语句,然后利用这些标注有情感标签的语句对神经网络模型进行训练,训练完成后就可以得到一个情感分析模型。训练过程中需要将每个语句包含的各个文本单元转换为词向量输入待训练的神经网络模型。
也就是说,在训练情感分析模型之前,就可以先对用于训练情感分析模型的所有语句(下文用分析模型语料集指代所有这些语句的集合)执行本申请提供的生成词向量的方法,从而获得分析模型语料集的每一个文本单元的词向量,并且,若分析模型语料集存在一个或多个在不同语句中具有不同语义的文本单元,则本申请提供的方法可以对这些具有多种语义的文本单元配置不同的语义标签,并对应的生成不同语义标签。
前述图1对应的实施例所介绍的方法是针对特定的某个目标文本单元实现的方法。可以理解的,只需要将上述分析模型语料集中出现的每一个文本单元均作为目标文本单元,然后每指定一个目标文本单元,就对这个目标文本单元执行图1对应的实施例中步骤S101至步骤S103所述的过程,就可以判断出这个目标文本单元是否有多种语义(也可以认为是检测该目标文本单元是否为多义词),若有多种语义的情况下可以通过步骤S103进一步对不同语义的目标文本单元通过配置语义标签的方式进行区分。
其中,在指定分析模型语料集的某一个文本单元作为目标文本单元而执行前述步骤S101至步骤S103所述的过程时,可以从分析模型语料集中检测出每一个包含这个目标文本单元的语句,讲这些语句组合成这个目标文本单元的训练语料集,后续针对这个目标文本单元的序列模式挖掘和配置语义标签均只在这个目标文本单元所对应的这个训练语料集中进行。
通过上述方式,就可以检测出分析模型语料集中每一个具有在不同语句中具有两种及以上语义的文本单元,并以对应的语义标签进行区分。
以上过程完成之后,就可以直接利用这个已经进行多义词检测和区分的分析模型语料集通过前述步骤S104以及图5对应的实施例中的方法训练词向量模型,从而获得分析模型语料集中的每一个文本单元的词向量。其中,对于携带语义标签的文本单元,每一种语义标签均对应于唯一的词向量。
在实际应用时,只需要获得用户的语句作为待处理语句,然后将待处理语句的每一个文本单元也均转换为预先生成的对应的词向量,将这些词向量组合为待处理语句的词向量表示,然后将待处理语句的词向量表示输入训练好的情感分析模型中,就可以分析出当前输入的语句所体现的情感属于哪一种情感标签。
其中,在将文本单元转换为词向量时,可以逐一判断每一个文本单元是否为有多种可选的语义的文本单元(这类文本单元也可以简称为多义词)。
若发现待处理语句的某个文本单元(假设为文本单元A)是多义词,则可以检测待处理语句中文本单元A的上下文窗口是否包含在前面进行序列模式挖掘时获得的目标序列模式(即包含文本单元A、且在对应的训练语料集中支持度大于或等于支持度阈值的序列),若这个上下文窗口包含目标序列模式,并且目标序列模式的长度大于或等于长度阈值(不妨将这个满足条件的目标序列模式记为目标序列模式B),那么,可以从分析模型语料集中找到包含文本单元A、且文本单元A对应的上下文窗口也包含目标序列模式B的语句,然后将这个语句中文本单元A所携带的语义标签配置给待处理语句中的文本单元A,使得待处理语句中的文本单元A变为携带语义标签的文本单元A。
由此,在将待处理语句的文本单元转换为词向量时,就可以将待处理语句中的文本单元A转换为它携带的语义标签所对应的词向量。
假设用户分别提供了两个语句,其中均包含上述文本单元A,且文本单元A在第一个语句中的语义和在第二个语句中的语义不同。那么,如果采用现有的方法直接生成文本单元A对应的唯一一个词向量,就会导致情感分析模型分析第一个语句的词向量表示时和分析第二个语句的词向量表示时会认为这两个语句中的文本单元A具有相同的含义,对应的,在两个语句中文本单元A对该语句所体现的情感的影响也是相同的,这就可能导致情感分析模型将两个实际上对应于不同情感标签的语句归类到同一情感标签中,也就是降低了情感分析任务的准确性。
而通过本申请提供的方法,在将文本单元转为词向量是,第一个语句中的文本单元A和第二个语句中的文本单元A会携带不同的语义标签,转换得到的词向量也是不同语义标签对应的不同词向量。基于此,情感分析模型分析第一个语句时和分析第二个语句时,就能够发现文本单元A在第一个语句中的语义和第二个语句中的语义不相同,并由此进一步发现在两个语句中文本单元A对所在语句的情感的影响是不相同的,由此可以确保情感分析模型对第一个语句和第二个语句输出不同的情感标签,提高了情感分析任务的准确性。
结合本申请任一实施例所提供的生成词向量的方法,本申请实施例还提供一种生成词向量的装置,请参考图6,该装置包括以下单元:
获得单元601,用于获得包括多个语句的训练语料集。
其中每一个语句均至少一个预先指定的目标文本单元。
挖掘单元602,用于,并对训练语料集进行序列模式挖掘,得到目标序列模式。
其中,目标序列模式指代包含目标文本单元、且支持度大于预设的支持度阈值的序列;序列由至少一个文本单元组成;每个文本单元均包含至少一个连续的文字。
配置单元603,用于针对训练语料集的每一个语句,若检测出语句的目标文本单元的上下文窗口包含满足预设长度条件的目标序列模式,为语句的目标文本单元配置语义标签,得到携带语义标签的目标文本单元。
其中,对应的满足预设长度条件的目标序列模式相同的两个目标文本单元携带的语义标签相同,对应的满足预设长度条件的目标序列模式不同的两个目标文本单元携带的语义标签不同。
训练单元604,用添加语义标签后的训练语料集训练词向量模型,并从训练后的词向量模型中获得训练语料集的每一个文本单元的词向量。
其中,目标文本单元对应有多个词向量,且每一个词向量唯一对应于一种语义标签;词向量用于对包含目标文本单元的文本进行自然语言处理。
挖掘单元602对训练语料集进行序列模式挖掘,得到目标序列模式时,具体用于:
从训练语料集中删除每一个支持度小于支持度阈值的文本单元,得到过滤后的训练语料集;
将过滤后的训练语料集中每一个支持度大于或等于支持度阈值的文本单元,均确定为1级序列模式,并将序列级别N设定为2;
获得每一个N-1级序列模式对应的投影语料集;其中,N-1级序列模式对应的投影语料集,包括从过滤后的训练语料集的每一个语句中截取得到的N-1级序列模式的后缀;
将每一个在对应的投影语料集中的支持度大于或等于支持度阈值的文本单元和投影语料集对应的N-1级序列模式组合为N级序列模式,并使N递增1后返回执行获得每一个N-1级序列模式对应的投影语料集,直至不存在在对应的投影语料集中的支持度大于或等于支持度阈值的文本单元为止;
从获得的每一级的序列模式中筛选得到目标序列模式。
训练单元604用添加语义标签后的训练语料集训练词向量模型时,具体用于:
生成待训练的词向量模型和每一个文本单元的编码;其中,词向量模型包括每一个文本单元对应的初始词向量和多个参数向量;携带的语义标签相同的两个目标文本单元的编码相同,携带的语义标签不相同的两个目标文本单元的编码不同;
对添加语义标签后的训练语料集中的每一个文本单元执行下述训练过程:
从词向量模型中获得文本单元的上下文窗口内的其他文本单元的词向量;其中,其他文本单元指代上下文窗口内除文本单元以外的每一个文本单元;
若文本单元不是携带语义标签的目标文本单元,对上下文窗口内的其他文本单元的词向量进行累加计算,得到计算结果;
若文本单元是携带语义标签的目标文本单元,为上下文窗口内的其他文本单元设置对应的权重;其中,属于上下文窗口包含的满足长度条件的目标序列模式的文本单元的权重,大于不属于上下文窗口包含的满足长度条件的目标序列模式的文本单元的权重;
计算得到上下文窗口内的每一个其他文本单元的词向量与自身的权重的乘积,并将计算得到的所有乘积进行累加,得到计算结果
根据计算结果,词向量模型的参数向量和文本单元的编码,计算词向量模型的损失;
若词向量模型的损失不满足收敛条件,基于词向量模型的损失更新上下文窗口内其他文本单元的词向量和词向量模型的参数向量,并返回执行获得文本单元的上下文窗口内的其他文本单元的词向量,直至词向量模型的损失满足收敛条件为止;其中,满足收敛条件的词向量模型中文本单元的词向量,作为文本单元的词向量。
可选的,生成词向量的装置还可以包括用于进行自然语言处理的处理单元605,处理单元605可以实现包括对语句的情感分析在内的自然语言处理任务。
处理单元605执行情感分析任务时,具体用于:
获得包含目标文本单元的待处理语句;
针对待处理语句,若检测出待处理语句的目标文本单元的上下文窗口包含满足长度条件的目标序列模式,选择和待处理语句的目标文本单元对应于相同的满足长度条件的目标序列模式的携带语义标签的目标文本单元,并将语义标签对应的词向量确定为待处理语句的目标文本单元的词向量;
组合待处理语句的每一个文本单元的词向量,得到待处理语句的词向量表示,并利用预先构建的情感分析模型处理待处理语句的词向量表示,从而确定待处理语句的情感标签。
获得单元601获得包括多个语句的训练语料集时,具体用于:
获得初始文本集合;其中,初始文本集合包括至少一个文本;
针对每一个文本,检测得到文本中的每一个语句分隔符,并将每两个相邻的语句分隔符之间的文本作为一个待过滤语句;
将每一个待过滤语句包含的数字、字母和特殊符号删除,得到对应的过滤后的语句,并从所有过滤后的语句中筛选得到训练语料集。
配置单元603包括检测单元和执行单元,其中检测单元用于针对训练语料集的每一个语句,检测语句的目标文本单元的上下文窗口是否包含满足预设长度条件的目标序列模式。
执行单元用于针对训练语料集的每一个语句,若检测单元检测出语句的目标文本单元的上下文窗口包含满足预设长度条件的目标序列模式,为语句的目标文本单元配置语义标签,得到携带语义标签的目标文本单元。
检测单元检测语句的目标文本单元的上下文窗口是否包含满足预设长度条件的目标序列模式时,具体用于:
获得语句的目标文本单元的上下文窗口内的最长目标序列模式;其中,最长目标序列模式,指代包含的文本单元的数量最多的目标序列模式;
判断最长目标序列模式包含的文本单元的数量,是否大于预设的长度阈值;
其中:若最长目标序列模式包含的文本单元的数量大于长度阈值,则检测出目标文本单元的上下文窗口包含满足预设长度条件的目标序列模式。
可选的,挖掘单元602对训练语料集进行序列模式挖掘,得到目标序列模式之后,还用于:
针对目标序列模式中的每两个目标序列模式,检测是否满足一个目标序列模式包含另一个目标序列模式条件;
若检测出满足一个目标序列模式包含另一个目标序列模式条件,则删除被包含的目标序列模式。
本申请实施例所提供的生成词向量的装置的具体工作原理可以参考本申请任一实施例提供的生成词向量的方法中的相关步骤,此处不再详述。
本申请提供一种生成词向量的装置,包括,获得单元601获得训练语料集后,挖掘单元602对训练语料集进行序列模式挖掘,得到包含目标文本单元、且支持度大于或等于支持度阈值的目标序列模式,对每一包含目标文本单元的语句,若语句中目标文本单元的上下文窗口包含满足长度条件的目标序列模式,则为其配置语义标签,得到携带语义标签的目标文本单元,对应的目标序列模式相同的目标文本单元携带相同语义标签,对应的目标序列模式不同的目标文本单元携带不同的语义标签,用添加语义标签后的训练语料集训练词向量模型得到每种语义标签的词向量。词汇的语义由本方案挖掘出可以反映目标文本单元不同应用语境的目标序列模式,基于此为不同应用语境的目标文本单元配置不同的语义标签,最后通过训练词向量模型获得每种应用语境下的语义标签所对应的词向量。
本申请实施例还提供一种计算机存储介质,用于存储程序,程序被执行时,具体用于实现本申请任一实施例所述的生成词向量的方法。
本申请实施例还提供一种电子设备,如图7所示,该电子设备包括存储器701和处理器702.
其中,存储器701用于存储计算机程序;
处理器702用于执行上述计算机程序,具体用于实现本申请任一实施例所提供的生成词向量的方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (16)
1.一种生成词向量的方法,其特征在于,包括:
获得包括多个语句的训练语料集,并对所述训练语料集进行序列模式挖掘,得到目标序列模式;其中,每一个所述语句均包括至少一个预先指定的目标文本单元,所述目标序列模式指代包含所述目标文本单元、且支持度大于或等于预设的支持度阈值的序列,所述目标文本单元为多义词;所述序列由至少一个文本单元组成;每个所述文本单元均包含至少一个连续的文字;
针对所述训练语料集的每一个所述语句,若检测出所述语句的目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式,为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元;其中,所述目标序列模式用于反映所述目标文本单元的不同应用语境;对应的满足预设长度条件的所述目标序列模式相同的两个所述目标文本单元携带的语义标签相同,对应的满足预设长度条件的所述目标序列模式不同的两个所述目标文本单元携带的语义标签不同,使得不同应用语境的所述目标文本单元配置有不同的语义标签;
用添加语义标签后的训练语料集训练词向量模型,并从训练后的词向量模型中获得所述训练语料集的每一个所述文本单元的词向量;其中,携带的所述语义标签相同的两个所述目标文本单元的编码相同,携带的所述语义标签不相同的两个所述目标文本单元的编码不同;所述目标文本单元对应有多个词向量,且每一个所述词向量唯一对应于一种所述语义标签;所述词向量用于对包含所述目标文本单元的文本进行自然语言处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述训练语料集进行序列模式挖掘,得到目标序列模式,包括:
从所述训练语料集中删除每一个支持度小于所述支持度阈值的文本单元,得到过滤后的训练语料集;
将所述过滤后的训练语料集中每一个支持度大于或等于所述支持度阈值的文本单元,均确定为1级序列模式,并将序列级别N设定为2;
获得每一个N-1级序列模式对应的投影语料集;其中,所述N-1级序列模式对应的投影语料集,包括从所述过滤后的训练语料集的每一个语句中截取得到的所述N-1级序列模式的后缀;
将每一个在对应的所述投影语料集中的支持度大于或等于所述支持度阈值的文本单元和所述投影语料集对应的N-1级序列模式组合为N级序列模式,并使N递增1后返回执行所述获得每一个N-1级序列模式对应的投影语料集,直至不存在在对应的投影语料集中的支持度大于或等于所述支持度阈值的文本单元为止;
从获得的每一级的序列模式中筛选得到所述目标序列模式。
3.根据权利要求1所述的方法,其特征在于,所述用添加语义标签后的训练语料集训练词向量模型,包括:
生成待训练的词向量模型和每一个所述文本单元的编码;其中,所述词向量模型包括每一个所述文本单元对应的初始词向量和多个参数向量;
对所述添加语义标签后的训练语料集中的每一个所述文本单元执行下述训练过程:
从所述词向量模型中获得所述文本单元的上下文窗口内的其他文本单元的词向量;其中,所述其他文本单元指代所述上下文窗口内除所述文本单元以外的每一个文本单元;
若所述文本单元不是携带语义标签的目标文本单元,对所述上下文窗口内的其他文本单元的词向量进行累加计算,得到计算结果;
若所述文本单元是携带语义标签的目标文本单元,为所述上下文窗口内的其他文本单元设置对应的权重;其中,属于所述上下文窗口包含的满足所述长度条件的目标序列模式的文本单元的权重,大于不属于所述上下文窗口包含的满足所述长度条件的目标序列模式的文本单元的权重;
计算得到所述上下文窗口内的每一个其他文本单元的词向量与自身的权重的乘积,并将计算得到的所有乘积进行累加,得到计算结果;
根据所述计算结果,所述词向量模型的参数向量和所述文本单元的编码,计算所述词向量模型的损失;
若所述词向量模型的损失不满足收敛条件,基于所述词向量模型的损失更新所述上下文窗口内其他文本单元的词向量和所述词向量模型的参数向量,并返回执行所述获得所述文本单元的上下文窗口内的其他文本单元的词向量,直至所述词向量模型的损失满足收敛条件为止;其中,满足收敛条件的词向量模型中所述文本单元的词向量,作为所述文本单元的词向量。
4.根据权利要求1所述的方法,其特征在于,所述为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元,包括:
若所述训练语料集中不存在携带语义标签的目标文本单元,为所述语句的所述目标文本单元随机配置一个语义标签,得到一个携带语义标签的目标文本单元;
若所述训练语料集中存在携带语义标签的目标文本单元,并且每一个所述携带语义标签的目标文本单元对应的上下文窗口包含的目标序列模式均与所述语句的所述目标文本单元对应的上下文窗口包含的目标序列模式不相同,为所述语句的所述目标文本单元配置一个与每一个已配置的语义标签均不相同的语义标签,得到一个携带语义标签的目标文本单元;
若所述训练语料集中存在满足,对应的上下文窗口包含的目标序列模式和所述语句的所述目标文本单元对应的上下文窗口包含的目标序列模式相同,条件的携带语义标签的目标文本单元,为所述语句的所述目标文本单元配置与满足所述条件的携带语义标签的目标文本单元相同的语义标签,得到一个携带语义标签的目标文本单元。
5.根据权利要求1所述的方法,其特征在于,所述支持度阈值根据下述公式确定:
Min_sup=A×N;
其中,Min_sup表示所述支持度阈值,A表示预设的最小支持率,N表示所述训练语料集包含的语句的总数。
6.根据权利要求1所述的方法,其特征在于,检测所述语句的所述目标文本单元的上下文窗口是否包含满足预设长度条件的所述目标序列模式的方式,包括:
获得所述语句的所述目标文本单元的上下文窗口内的最长目标序列模式;其中,所述最长目标序列模式,指代包含的文本单元的数量最多的目标序列模式;
判断所述最长目标序列模式包含的文本单元的数量,是否大于预设的长度阈值;
其中:若所述最长目标序列模式包含的文本单元的数量大于所述长度阈值,则检测出所述目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述对所述训练语料集进行序列模式挖掘,得到目标序列模式之后,还包括:
针对所述目标序列模式中的每两个所述目标序列模式,检测是否满足一个所述目标序列模式包含另一个所述目标序列模式条件;
若检测出满足一个所述目标序列模式包含另一个所述目标序列模式条件,则删除被包含的目标序列模式。
8.一种生成词向量的装置,其特征在于,包括:
获得单元,用于获得包括多个语句的训练语料集;其中,每一个所述语句均至少一个预先指定的目标文本单元;
挖掘单元,用于对所述训练语料集进行序列模式挖掘,得到目标序列模式;其中,所述目标序列模式指代包含所述目标文本单元、且支持度大于预设的支持度阈值的序列,所述目标文本单元为多义词;所述序列由至少一个文本单元组成;每个所述文本单元均包含至少一个连续的文字;
配置单元,用于针对所述训练语料集的每一个所述语句,若检测出所述语句的目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式,为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元;其中,所述目标序列模式用于反映所述目标文本单元的不同应用语境;对应的满足预设长度条件的所述目标序列模式相同的两个所述目标文本单元携带的语义标签相同,对应的满足预设长度条件的所述目标序列模式不同的两个所述目标文本单元携带的语义标签不同,使得不同应用语境的所述目标文本单元配置有不同的语义标签;
训练单元,用添加语义标签后的训练语料集训练词向量模型,并从训练后的词向量模型中获得所述训练语料集的每一个所述文本单元的词向量;其中,携带的所述语义标签相同的两个所述目标文本单元的编码相同,携带的所述语义标签不相同的两个所述目标文本单元的编码不同;所述目标文本单元对应有多个词向量,且每一个所述词向量唯一对应于一种所述语义标签;所述词向量用于对包含所述目标文本单元的文本进行自然语言处理。
9.根据权利要求8所述的装置,其特征在于,所述挖掘单元对训练语料集进行序列模式挖掘,得到目标序列模式时,具体用于:
从所述训练语料集中删除每一个支持度小于所述支持度阈值的文本单元,得到过滤后的训练语料集;
将所述过滤后的训练语料集中每一个支持度大于或等于所述支持度阈值的文本单元,均确定为1级序列模式,并将序列级别N设定为2;
获得每一个N-1级序列模式对应的投影语料集;其中,所述N-1级序列模式对应的投影语料集,包括从所述过滤后的训练语料集的每一个语句中截取得到的所述N-1级序列模式的后缀;
将每一个在对应的所述投影语料集中的支持度大于或等于所述支持度阈值的文本单元和所述投影语料集对应的N-1级序列模式组合为N级序列模式,并使N递增1后返回执行所述获得每一个N-1级序列模式对应的投影语料集,直至不存在在对应的投影语料集中的支持度大于或等于所述支持度阈值的文本单元为止;
从获得的每一级的序列模式中筛选得到所述目标序列模式。
10.根据权利要求8所述的装置,其特征在于,所述训练单元用添加语义标签后的训练语料集训练词向量模型时,具体用于:
生成待训练的词向量模型和每一个所述文本单元的编码;其中,所述词向量模型包括每一个所述文本单元对应的初始词向量和多个参数向量;
对所述添加语义标签后的训练语料集中的每一个所述文本单元执行下述训练过程:
从所述词向量模型中获得所述文本单元的上下文窗口内的其他文本单元的词向量;其中,所述其他文本单元指代所述上下文窗口内除所述文本单元以外的每一个文本单元;
若所述文本单元不是携带语义标签的目标文本单元,对所述上下文窗口内的其他文本单元的词向量进行累加计算,得到计算结果;
若所述文本单元是携带语义标签的目标文本单元,为所述上下文窗口内的其他文本单元设置对应的权重;其中,属于所述上下文窗口包含的满足所述长度条件的目标序列模式的文本单元的权重,大于不属于所述上下文窗口包含的满足所述长度条件的目标序列模式的文本单元的权重;
计算得到所述上下文窗口内的每一个其他文本单元的词向量与自身的权重的乘积,并将计算得到的所有乘积进行累加,得到计算结果;
根据所述计算结果,所述词向量模型的参数向量和所述文本单元的编码,计算所述词向量模型的损失;
若所述词向量模型的损失不满足收敛条件,基于所述词向量模型的损失更新所述上下文窗口内其他文本单元的词向量和所述词向量模型的参数向量,并返回执行所述获得所述文本单元的上下文窗口内的其他文本单元的词向量,直至所述词向量模型的损失满足收敛条件为止;其中,满足收敛条件的词向量模型中所述文本单元的词向量,作为所述文本单元的词向量。
11.根据权利要求8所述的装置,其特征在于,所述配置单元为所述语句的所述目标文本单元配置语义标签,得到携带语义标签的目标文本单元时,具体用于:
若所述训练语料集中不存在携带语义标签的目标文本单元,为所述语句的所述目标文本单元随机配置一个语义标签,得到一个携带语义标签的目标文本单元;
若所述训练语料集中存在携带语义标签的目标文本单元,并且每一个所述携带语义标签的目标文本单元对应的上下文窗口包含的目标序列模式均与所述语句的所述目标文本单元对应的上下文窗口包含的目标序列模式不相同,为所述语句的所述目标文本单元配置一个与每一个已配置的语义标签均不相同的语义标签,得到一个携带语义标签的目标文本单元;
若所述训练语料集中存在满足,对应的上下文窗口包含的目标序列模式和所述语句的所述目标文本单元对应的上下文窗口包含的目标序列模式相同,条件的携带语义标签的目标文本单元,为所述语句的所述目标文本单元配置与满足所述条件的携带语义标签的目标文本单元相同的语义标签,得到一个携带语义标签的目标文本单元。
12.根据权利要求8所述的装置,其特征在于,所述支持度阈值根据下述公式确定:
Min_sup=A×N;
其中,Min_sup表示所述支持度阈值,A表示预设的最小支持率,N表示所述训练语料集包含的语句的总数。
13.根据权利要求8所述的装置,其特征在于,所述配置单元包括检测单元,所述检测单元检测所述语句的所述目标文本单元的上下文窗口是否包含满足预设长度条件的所述目标序列模式时,具体用于:
获得所述语句的所述目标文本单元的上下文窗口内的最长目标序列模式;其中,所述最长目标序列模式,指代包含的文本单元的数量最多的目标序列模式;
判断所述最长目标序列模式包含的文本单元的数量,是否大于预设的长度阈值;
其中:若所述最长目标序列模式包含的文本单元的数量大于所述长度阈值,则检测出所述目标文本单元的上下文窗口包含满足预设长度条件的所述目标序列模式。
14.根据权利要求8至13任意一项所述的装置,其特征在于,所述挖掘单元对所述训练语料集进行序列模式挖掘,得到目标序列模式之后,还用于:
针对所述目标序列模式中的每两个所述目标序列模式,检测是否满足一个所述目标序列模式包含另一个所述目标序列模式条件;
若检测出满足一个所述目标序列模式包含另一个所述目标序列模式条件,则删除被包含的目标序列模式。
15.一种计算机存储介质,其特征在于,用于存储程序,所述程序被处理器执行时,用于实现如权利要求1至7任意一项所述的生成词向量的方法。
16.一种电子设备,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如权利要求1至7任意一项所述的生成词向量的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010536927.2A CN111695359B (zh) | 2020-06-12 | 2020-06-12 | 生成词向量的方法、装置、计算机存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010536927.2A CN111695359B (zh) | 2020-06-12 | 2020-06-12 | 生成词向量的方法、装置、计算机存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111695359A CN111695359A (zh) | 2020-09-22 |
CN111695359B true CN111695359B (zh) | 2023-10-03 |
Family
ID=72480818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010536927.2A Active CN111695359B (zh) | 2020-06-12 | 2020-06-12 | 生成词向量的方法、装置、计算机存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111695359B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113554107A (zh) * | 2021-07-28 | 2021-10-26 | 工银科技有限公司 | 语料集的生成方法、装置、设备、存储介质和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491531A (zh) * | 2017-08-18 | 2017-12-19 | 华南师范大学 | 基于集成学习框架的中文网络评论情感分类方法 |
CN110717017A (zh) * | 2019-10-17 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 一种处理语料的方法 |
CN110852110A (zh) * | 2018-07-25 | 2020-02-28 | 富士通株式会社 | 目标语句提取方法、问题生成方法以及信息处理设备 |
CN111143569A (zh) * | 2019-12-31 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280061B (zh) * | 2018-01-17 | 2021-10-26 | 北京百度网讯科技有限公司 | 基于歧义实体词的文本处理方法和装置 |
-
2020
- 2020-06-12 CN CN202010536927.2A patent/CN111695359B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491531A (zh) * | 2017-08-18 | 2017-12-19 | 华南师范大学 | 基于集成学习框架的中文网络评论情感分类方法 |
CN110852110A (zh) * | 2018-07-25 | 2020-02-28 | 富士通株式会社 | 目标语句提取方法、问题生成方法以及信息处理设备 |
CN110717017A (zh) * | 2019-10-17 | 2020-01-21 | 腾讯科技(深圳)有限公司 | 一种处理语料的方法 |
CN111143569A (zh) * | 2019-12-31 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111695359A (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162749B (zh) | 信息提取方法、装置、计算机设备及计算机可读存储介质 | |
CN108073677B (zh) | 一种基于人工智能的多级文本多标签分类方法及系统 | |
CN107085581B (zh) | 短文本分类方法和装置 | |
CN104933183B (zh) | 一种融合词向量模型和朴素贝叶斯的查询词改写方法 | |
CN111695358B (zh) | 生成词向量的方法、装置、计算机存储介质和电子设备 | |
CN110851596A (zh) | 文本分类方法、装置及计算机可读存储介质 | |
US20200364299A1 (en) | Systems and methods for unsupervised autoregressive text compression | |
WO2017090051A1 (en) | A method for text classification and feature selection using class vectors and the system thereof | |
WO2021051518A1 (zh) | 基于神经网络模型的文本数据分类方法、装置及存储介质 | |
CN107229610A (zh) | 一种情感数据的分析方法及装置 | |
CN112395385B (zh) | 基于人工智能的文本生成方法、装置、计算机设备及介质 | |
CN113076739A (zh) | 一种实现跨领域的中文文本纠错方法和系统 | |
WO2021139107A1 (zh) | 情感智能识别方法、装置、电子设备及存储介质 | |
CN113095080B (zh) | 基于主题的语义识别方法、装置、电子设备和存储介质 | |
CN113704416B (zh) | 词义消歧方法、装置、电子设备及计算机可读存储介质 | |
CN110413773A (zh) | 智能文本分类方法、装置及计算机可读存储介质 | |
CN109993216B (zh) | 一种基于k最近邻knn的文本分类方法及其设备 | |
CN112860896A (zh) | 语料泛化方法及用于工业领域的人机对话情感分析方法 | |
CN112559747A (zh) | 事件分类处理方法、装置、电子设备和存储介质 | |
Thomas et al. | Sentimental analysis using recurrent neural network | |
CN113496123A (zh) | 谣言检测方法、装置、电子设备及存储介质 | |
CN115309915A (zh) | 知识图谱构建方法、装置、设备和存储介质 | |
CN109815497B (zh) | 基于句法依存的人物属性抽取方法 | |
CN111695359B (zh) | 生成词向量的方法、装置、计算机存储介质和电子设备 | |
CN109117471B (zh) | 一种词语相关度的计算方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |