发明内容
针对现有技术的不足,本发明提出了一种基于词向量模型的隐式 特征识别方法。
一种基于词向量模型的隐式特征识别方法,包括如下步骤:
S1,获取训练语料库,并对训练语料库进行预处理,然后构建相 应的情感词词典和属性词词典;
S2,针对预处理后的训练语料库,使用词向量模型从所述训练语 料库所包含的所有词中选择频率大于预设的频率阈值的词形成总词 典,并求取总词典中各个词的词向量形成相应的词向量矩阵,词向量 矩阵中每一行对应为总词典中一个词的词向量;
S3,根据所述词向量矩阵设定所述词向量模型中输入层到映射层 以及映射层到输出层的参数矩阵,即得到训练后的词向量模型;
S4,利用训练后的词向量模型对待分析语料库中的各个隐式特征 分句中的属性词进行识别。
本发明中对训练语料库进行预处理包括对训练语料库中的各条 语句的进行分割、中文分词(包括词性标注)、停用词过滤和无标点 语句的删除等。
本发明采用通过双向迭代方法构建情感词词典和属性词词典,具 体参见公开号为CN104699766A的中国专利申请“一种融合词语关 联关系和上下文语境推断的隐式属性挖掘方法”中公开的构建情感词 词典和属性词词典的方法。
本发明采用现有的词向量模型即可,无特殊要求,考虑到识别的 准确性和识别速度,可对词向量模型的参数进行调整,所述的参数主 要包括得到的词向量的维度以及选择构建总词典中词的频率阈值。
作为优选,所述步骤S2中词向量的维度为50~300。进一步优选, 所述步骤S2中词向量的维度为200。
步骤S2频率阈值的设定直接关系到总词典中词的数量,频率阈 值越低,总词典中词越多,计算量越大。本发明中所述步骤S2中预 设的频率阈值为0~10,作为优选,所述的阈值为5,既能够保证识别 的准确率也能够保证识别的速度。
现有的通过训练词向量模型得到的输入层到映射层以及映射层 到输出层的参数矩阵,对于本发明所要解决的问题不起作用。作为优 选,所述的步骤S3中设定:
输入层到映射层的参数矩阵为总词典对应的词向量矩阵;
映射层到输出层的参数矩阵为属性词词典所对应的词向量矩阵, 属性词词典所对应的词向量矩阵是通过从总词典所对应的词向量矩 阵中抽取所有属性词的词向量而组成的。
根据本发明中属性词词典和总词典的构建方法,可以看出,本发 明中属性词词典一定包含于总词典,即总词典一定包含属性词词典中 的所有属性词。
所述步骤S4中利用训练后的词向量模型对待分析语料库中的各 个隐式特征分句的属性词进行识别,包括如下步骤:
S401,识别待分析语料库中的每条语句中各个分句的种类,所述 种类为显式特征分句和隐式特征分句;
S402,针对各个隐式特征分句,进行如下操作:
(a)获取该隐式特征分句中每一个词的词向量,并根据该隐式 特征分句所有词的词向量利用输入层到映射层的计算公式计算该隐 式特征分句的映射向量;
(b)以属性词词典中各个属性词作为候选属性词,采用映射层 到输出层的计算公式计算各个候选属性词相对于该隐式特征分句的 概率,并输出概率最大的候选属性词作为该隐式特征分句的属性词。
针对任意一个隐式特征分句,若该隐式特征分句的前一条分句为 显式特征分句,则在操作(a)中计算隐式特征分句的映射向量时, 将前一条显式特征分句中的属性词添加至该隐式特征分句中作为一 个词。
在一条语句(即商品评价语句)中,上、下两个分句(即前、后 两条)之间具有较强的联系,评价对象通常相同或者相近。本发明中 除窗口内(本条分句中)的词以外,通过引入该隐式特征分句的前一 条显式特征分句中的属性词,综合考虑到上下文背景信息,能够有效 提高识别的准确性。
作为优选,所述操作(a)中输入层到映射层的计算公式如下:
其中,contextj表示隐式特征分句j,wn表示contextj中第n个词,表示隐式特征分句contextj的映射向量,表示隐式 特征分句contextj中词wn的词向量,N表示隐式特征分句contextj中所包 含词的个数。
所述操作(b)中映射层到输出层的计算公式如下:
其中,featurei表示第i个候选属性词,表示第i个候选属性词的 词向量,p(featurei|contextj)表示候选属性词featurei相对于该隐式特征分句 contextj的概率。
隐式特征分句contextj中词wn的词向量通过查询输入层到映射层 的参数矩阵获得。第i个候选属性词的词向量通过查询映射层 到输出层的参数矩阵获得。
未作特殊说明,本发明的基于词向量模型的隐式特征识别方法是 指识别隐式特征分句的评价特征,进而得到表示该评价特征的属性 词。
与现有技术相比,本发明具有如下优点:
(1)从理解句子的语义出发,用词向量表示词的语义信息,利 用词向量模型获取隐式特征分句中的隐式评价特征;
(2)利用上下文语境,进一步提高隐式特征识别的准确率。
实施例1
本发明的基于词向量模型的隐式特征识别方法主要用于对产品 评论语句中的隐式特征进行识别。本实施例中以淘宝网上抓取的手机 类产品评论为例进行说明。
如图1所示,本实施例一种基于词向量模型的隐式特征识别方法 包括以下步骤:
(1)从网站(本实施例中为淘宝网)上抓取手机类产品的评论 数据,形成训练语料库S,并对训练语料库S进行预处理。
对训练语料库S进行预处理,包括评论语句的分割、中文分词(包 括词性标注)、停用词过滤和无标点语句的删除。预处理后的评论语 句,如下所示:
非常/d满意/v。/w首先/c说/v一下/m手机/n本身/r,/w和 /c描述/v完全/d一致/a,/w特别/d漂亮/a。/w而且/c我/r用/v 了/u几/m天/q了/y,/w完美/a运行/v,/w一体化/v的/u机型 /n太/d完美/a了/y。/w接着/c是/v客服/n的/u态度/n也/d特 别/d好/a,/w这/r几/m天/q我/r缠/v着/u小/a葵花/n帮/v我 /r解决/v了/u不少/m问题/n,/w全部/m都/d耐心/a解决/v了 /y,/w非常/d感谢/v!/w卖家/n是/v真心实意/d做/v买卖/v的 /u好/a店家/n,/w非常/d推荐/v!/w#####/l
(2)构建属性词词典和情感词词典。
利用知网“情感分析用词语集”和大连理工大学的“情感词汇本体 库”,根据公开号为CN104699766A的中国专利申请“一种融合词语 关联关系和上下文语境推断的隐式属性挖掘方法”中公开的构建情感 词词典和属性词词典的方法进行构建即可。
本实施例中得到的属性词词典如表1所示,情感词词典如表2所 示(表中仅列举出一部分词语)。
表1
表2
(3)针对预处理后的训练语料库S,利用词向量模型获得词向 量矩阵,并获得所有词的词典。针对预处理后的训练语料库S,使用 现有的词向量模型,从所有词中选择频率大于预设的频率阈值(该阈 值取值范围为0~10,本实施例中优选为5)的词形成总词典,并求取 总词典中各个词的词向量,形成相应的词向量矩阵Wpre-training;总词典 的词向量矩阵Wpre-training中的每一行对应总词典中一个词的词向量。
本发明对采用的词向量模型的种类无特殊要求,本实施例中以 Wang2vec词向量模型进行说明。使用时设定词向量模型的参数为:
./wang2vec-train newtrain04.txt-output WCSG_HS_200vectors.bin -size200cbow 0window 5-negative 0-hs 1-sample 1e-3-threads 12 -binary 0,
即设定词向量的维度为200,频率阈值为5。表3是所有词中部 分词的词向量,这些词向量是采用wang2vec词向量模型中的 Skip-gram模型训练得来的。每一个词向量的维数是200维,本实施 例中所使用的训练语料库中一共有4808902个词,其中包含8966个 不同的词。
需要说明的是,依据本实施例的方法所形成的属性词词典和总词 典中,属性词词典中所有的属性词一定包含于总词典中。
表3
(4)确定词向量模型中输入层到映射层以及映射层到输出层的参 数矩阵:
以总词典对应的词向量矩阵Wpre-training作为输入层到映射层的参数 矩阵Wtinput,即:
Wtinput=Wpre-training,
映射层到输出层的参数矩阵Wtoutput为属性词词典对应的词向量矩阵, 其中属性词词典对应的词向量矩阵从总词典对应的词向量矩阵中抽 取属性词得到。因此,满足关系:
Wtoutput∈Wpre-training,
(5)从淘宝网待分析语料库D,利用训练后的词向量模型对待分 析语料库中的各个隐式特征分句中的属性词进行识别。具体包括如下 步骤:
(5-1)对于待分析语料库D进行预处理;
Wang2vec词向量模型多用于识别英文文本。中文词与词之间不 像英文有空格进行分隔,因此需要进行中文分词等预处理后才能做为 Wang2vec词向量模型的输入,该预处理过程同训练语料库的预处理 过程相同。
本实施例中,待分析语料库D中的评论语句的预处理结果如下 所示:
“打电话不是很清楚,听不清楚对方讲什么,充电时候很不稳定, 有时候能充,有时候又没有反应,电板是胶水粘,这个手机留下只是 经典。”,经过预处理后,该评论语句“打电话v不d是v很d清 楚a,w听v不d清楚a对方n讲v什么r,w充电v 时候n很d不d稳定a,w有时候d能v充v,w有时 候d又d没有d反应n,w电板n是v胶水n粘v,w
这个r手机n留下v只d是v经典n。w”。
需要说明的是,待分析语料库D和语料库S中的评论数据必须是 针对同一类产品的,但待分析语料库D并不包含在语料库S中。
(5-2)利用属性词词典与情感词词典识别待分析语料库D中各 个分句的种类(分为显式特征分句和隐式特征分句),确定其中的隐 式特征分句。
如果分句中同时存在属性词和情感词,则该分句为显式特征分 句;如果分句中只出现情感词但未出现属性词,则该分句为隐式特征 分句。
例如在评论文本“打电话v不d是v很d清楚a,w听v 不d清楚a对方n讲v什么r,w充电v时候n很d不d 稳定a,w有时候d能v充v,w有时候d又d没有d反 应n,w电板n是v胶水n粘v,w这个r手机n留 下v只d是v经典n。w”中的评论分句“打电话v不d是v 很d清楚a,”只有情感词“清楚”而没有属性词,该分句为隐式 评论分句;评论分句“这个r手机n留下v只d是v经典n。w”中既有属性词“手机”又有情感词“经典”,因此该评论分句为显式 评论分句。
(5-3)利用训练后的词向量模型对待分析语料库中的各个隐式 特征分句的属性词进行识别。
接下来以隐式特征分句“听v不d清楚a对方n讲v什么r,w”为例对识别过程进行说明,具体操作步骤如下:
(a)利用输入层到映射层的计算公式求得该隐式特征分句的映 射向量:
首先从总词典的词向量矩阵Wpre-training(本实施例中也可以从输入 层到映射层的参数矩阵Wtinput)中获得该条隐式特征分句中每一个词 的词向量为:
v(w=听)=(0.241067,0.029889,0.020333,0.305697, -0.056357,…,0.052516,-0.133202,0.166165,0.064073,-0.351698);
v(w=不)=(0.113345,-0.038910,0.100371,0.283253, -0.225735,…,-0.010415,0.023498,-0.238827,-0.096632,0.034032);
v(w=清楚)=(0.042608,-0.212741,0.210381,-0.080965, -0.039553,…,0.173411,-0.111144,0.025723,-0.164995,-0.381238);
v(w=对方)=(0.057858,-0.235255,0.050064,0.207307, 0.133006,…,0.119904,-0.198412,-0.007530,-0.140475,-0.368424);
v(w=讲)=(0.004480,0.015231,-0.109283,0.137551, -0.221616,…,0.102045,0.122215,-0.148329,-0.079995,-0.085733);
v(w=什么)=(0.026026,-0.218523,0.078030,-0.000907, 0.020270,…,0.043603,0.272648,0.259609,0.278224,0.119059).
利用输入层到映射层的计算公式求得该隐式特征分句的映射向 量
其中,N表示隐式特征分句中所含词的个数,为隐式特征分 句中词wn的词向量。
因此,该条隐式特征分句的映射向量为:
(b)以属性词词典中各个属性词作为候选属性词,采用映射层 到输出层的计算公式计算各个候选属性词相对于该隐式特征分句的 概率,并输出概率最大的候选属性词作为该隐式特征分句的属性词。
针对隐式特征分句contextj,第i个候选属性词featurei的概率值大小 p(featurei|contextj)根据如下公式计算:
其中,第i个候选属性词featurei的是从映射层到输出层的 参数矩阵Wtoutput中获得的。
以计算属性词“声音”和“手机”的概率值为例,“声音”和“手 机”的词向量是从映射层到输出层的参数矩阵Wtoutput中获得的,以 属性词“声音”和“手机”为两个属性词为例,即feature(声音), feature(手机),计算属性词“声音”与“手机”的概率值。首先分别得到 声音和手机这两个属性词的词向量v(声音)和v(手机):
v(声音)=(0.364089,-0.268690,-0.181220,…,-0.013760,-0.119827, -0.443987);
v(手机)=(0.033810,-0.131537,0.104522,…,0.027271,0.044614, -0.169922)。
属性词“声音”的概率值为:
其中,featurei为声音。
属性词“手机”的概率值为:
其中,featurei为手机。
假设属性词词典中仅手机和声音两个属性词,比较属性词“声音” 和“手机”的概率大小,得到该隐式特征分句(“听v不d清楚a对 方n讲v什么r,w”)的属性词为“声音”。
实施例2
为提高识别的准确性,本实施例提出了基于具体语境修正识别隐 式特征的方法,具体实现过程与实施例1相同,所不同的是,步骤(5-3) 中,针对任意一个隐式特征分句,若该隐式特征分句的前一条分句为 显式特征分句,则在操作(a)中计算该隐式特征分句的映射向量时, 将前一条显式特征分句中的属性词添加至该隐式特征分句中作为其 中的一个词。
识别时,逐条进行,针对每一条语句中的各个分句依次进行识别, 具体如图3所示,假设评论分句中依次包括如下分句,分别为显式特 征分句i、隐式特征分句i+1、……、显式特征分句n,其中显式特征 分句i对应于显式特征i(即显式特征分句i对应于属性词i),隐式特 征分句i+1包括词w1、w2、……、wk。对隐式特征分句i+1进行识别 时,本方法将显式特征分句i所对应的显式评价特征i和隐式特征分 句i+1中所有的词(w1、w2、……、wk)做为Wang2vec词向量模型 的输入,输出层的输出即为该隐式特征分句i+1的识别结果。
本实施例的识别方法中,除窗口内(本条分句中)的词以外,引 入了具体语境因素,即某一分句与其它分句之间的关系。对商品进行 评价时,通常前一条分句的评价对象和本分句评价对象相同或者相近 (即同一条评论语句中的前后两条分句的评价对象相同或相近)。具 体语境是指在一条评论中,某一分句与其前后两条分句之间的关系。
下面以评论语句“快递n很d给力a,w速度n挺d快 a,w手机n也d就那样a,w这个r价钱n还d算v可 以a。w”中的隐式评论分句“w速度n挺d快a,w”为例, 该分句与其前一条分句存在上下文语境关系,其前一条评论分句是显 式特征分句,所评价的特征词是“快递”。
采用本实施例中的方法计算得到的映射向量为vnew_projection:
其中,vnew_projection为利用本实施例方法计算得到的映射向量, 为前一条分句中属性词的词向量。
本实施例中,前一条分句的属性词为“快递”,查询属性词词典 (映射层到输出层的参数矩阵)得到“快递”的词向量为:v(快递) =(0.035964,0.212057,-0.200310,…,0.158480,0.128526,-0.014478)。
将隐式特征分句中各个词的词向量和“快递”的词向量分别代入 到公式中计算得到映射向量:
vnew_projection=(0.048138,-0.188428,-0.523776,…,0.317431,0.377492,-0.374025)。
进一步地,以属性词“快递”与“手机”为例,继续计算得到属 性词“快递”的概率值为:
其中,featurei为“快递”。
属性词“手机”的概率值为:
其中,featurei为“手机”。
根据计算结果可以看出,属性词“快递”的概率值大于属性词 “手机”的概率值。因此,利用本发明专利提出的方法,识别出隐式 评论分句“w速度n挺d快a,w”所评价的特征为属性词“快 递”。
为便于对比,下面采用实施例1的方法计算得到该隐式特征分句 的映射向量为:
0.158951,0.248966,-0.359547)
属性词“快递”的概率值为:
其中,featurei为“快递”。
属性词“手机”的概率值为:
其中,featurei为“手机”。
因此,隐式评论分句“w速度n挺d快a,w”所评价的特 征为属性词“手机”。
本实施例基于具体语境因素修正隐式特征的识别方法可以采用 如图4所示的流程进行,针对当前待识别的隐式特征分句,首先计算 得到该隐式特征分句的映射向量,根据候选属性词的词向量与映射向 量利用映射层到输出层的公式计算此候选属性词的概率值,根据是否 存在具体语境关系对映射向量进行更新:
若不存在具体语境关系,则选择概率值最大的候选属性词作为此 隐式特征分句的评价特征(即属性词);
若存在具体语境关系,则根据候选属性词的词向量和更新后的映 射向量利用公式计算该候选属性词的概率值,并根据更新后的概率 值,选择概率值最大的候选属性词作为此隐式特征分句的评价特征 (即属性词)。
本实施例中若该隐式特征分句的前一条分句为显式评论分句,则 认为该隐式特征评价分句存在具体语境关系;否则,认为不存在具体 语境关系。
需要说明的是,具体语境关系仅针对同一条评论(即评论语句) 中的各条分句之间的关系而言,来自同一条评价的不同分句时按照原 评价中的顺序依次进行识别的。因此,对于每条评价,其中第一条分 句若为隐式特征分句,则不需要考虑其具体语境关系。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不 脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于 本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些 改动和变型在内。