一种基于词向量模型的隐式特征识别方法
技术领域
本发明涉及数据挖掘领域,具体涉及一种基于词向量模型的隐式特征识别方法。
背景技术
目前绝大多数的研究主要关注在显式评价特征的识别,而对隐式评价特征的研究却很少,特别是在中文语言环境下。隐式特征识别由Hu和Liu在《Mining and summarizingcustomer reviews》一文中提出。目前主要有以下两种方法:第一种方法利用词共现计算特征词-观点词词组的权值,从而获得规则集,然后再利用规则集识别隐式特征。第二种方法寻求隐式特征的线索,通过建立线索和特征之间的映射关系来识别隐式特征。隐式特征线索主要有以下两种:第一种是传统方法,利用词频、TF-IDF、PMI、词频×PMI、t-test、χ2test等方法获得和特征相关的信息。第二种是基于主题模型的方法,采用LDA,半监督LDA等方法,从语义的角度出发,获取特征相关的信息。然后利用分类模型进行分类,最后根据分类结果识别隐式特征。
Zhen Hai在《Implicit Feature Identification via Co-occurrenceAssociation Rule Mining》一文中利用显式特征词与观点词之间的共现关系形成观点词与特征词的强规则集,从而识别隐式特征。Soujanya Poria在《A rule-based approach toaspect extraction from product reviews》一文中根据近义词和句子依存语法树获取显式特征和隐式特征的识别线索,然后通过人工方式建立隐式特征识别线索和特征类别之间的映射关系,最后通过句子中的类别识别器识别出该分句中的隐式特征。Lingwei Zeng在《A Classification-Based Approach for Implicit Feature Identification》一文中提出基于分类方法的隐式特征识别方法,首先利用句法规则识别出显式特征分句中的特征词-观点词词对,然后利用主题特征分类方法将特征词-观点词词对进行分类。最后,利用隐式评论分句中的观点词识别所属类别,所属类别的主题即是隐式评论分句中的隐式特征。Wei Wang等人在《Implicit feature identification via hybrid association rulemining》一文中提出一种分层的细粒度特征识别方法,首先使用PMI、词频×PMI、t-test、χ2test等方法从显式特征分句中抽取出特征词、隐式特征线索和特征线索表示,然后结合词组、句法结构和主题模型,进一步筛选出特征词和隐式特征线索之间的搭配关系,最后使用上述搭配规则来识别隐式分句中的隐式特征。Hua Xu等人在《Implicit featureidentification in Chinese reviews using explicit topic mining model》一文中提出基于显式主题模型的隐式特征识别方法,将无监督的LDA模型加入先验知识变为半监督的LDA,获得隐式特征的线索和特性线索的表示,最后利用SVM分类器进行隐式特征的识别。
上述方法中,Zhen Hai和Soujanya Poria提出的基于规则的方法,准确率受限于规则的数量和质量。此外,对于新的领域,映射规则需要重新进行人工标注。Lingwei Zeng等人的方法仅利用观点词来识别特征词,而语句中其它词都被其忽略了。Wei Wang等人提出的方法无法表达出语义的信息。Hua Xu等人对Wei Wang的方法进行改进,利用LDA主题模型表示隐式特征的线索,从而表达出一定的语义信息。
发明内容
针对现有技术的不足,本发明提出了一种基于词向量模型的隐式特征识别方法。
一种基于词向量模型的隐式特征识别方法,包括如下步骤:
S1,获取训练语料库,并对训练语料库进行预处理,然后构建相应的情感词词典和属性词词典;
S2,针对预处理后的训练语料库,使用词向量模型从所述训练语料库所包含的所有词中选择频率大于预设的频率阈值的词形成总词典,并求取总词典中各个词的词向量形成相应的词向量矩阵,词向量矩阵中每一行对应为总词典中一个词的词向量;
S3,根据所述词向量矩阵设定所述词向量模型中输入层到映射层以及映射层到输出层的参数矩阵,即得到训练后的词向量模型;
S4,利用训练后的词向量模型对待分析语料库中的各个隐式特征分句中的属性词进行识别。
本发明中对训练语料库进行预处理包括对训练语料库中的各条语句的进行分割、中文分词(包括词性标注)、停用词过滤和无标点语句的删除等。
本发明采用通过双向迭代方法构建情感词词典和属性词词典,具体参见公开号为CN104699766A的中国专利申请“一种融合词语关联关系和上下文语境推断的隐式属性挖掘方法”中公开的构建情感词词典和属性词词典的方法。
本发明采用现有的词向量模型即可,无特殊要求,考虑到识别的准确性和识别速度,可对词向量模型的参数进行调整,所述的参数主要包括得到的词向量的维度以及选择构建总词典中词的频率阈值。
作为优选,所述步骤S2中词向量的维度为50~300。进一步优选,所述步骤S2中词向量的维度为200。
步骤S2频率阈值的设定直接关系到总词典中词的数量,频率阈值越低,总词典中词越多,计算量越大。本发明中所述步骤S2中预设的频率阈值为0~10,作为优选,所述的阈值为5,既能够保证识别的准确率也能够保证识别的速度。
现有的通过训练词向量模型得到的输入层到映射层以及映射层到输出层的参数矩阵,对于本发明所要解决的问题不起作用。作为优选,所述的步骤S3中设定:
输入层到映射层的参数矩阵为总词典对应的词向量矩阵;
映射层到输出层的参数矩阵为属性词词典所对应的词向量矩阵,属性词词典所对应的词向量矩阵是通过从总词典所对应的词向量矩阵中抽取所有属性词的词向量而组成的。
根据本发明中属性词词典和总词典的构建方法,可以看出,本发明中属性词词典一定包含于总词典,即总词典一定包含属性词词典中的所有属性词。
所述步骤S4中利用训练后的词向量模型对待分析语料库中的各个隐式特征分句的属性词进行识别,包括如下步骤:
S401,识别待分析语料库中的每条语句中各个分句的种类,所述种类为显式特征分句和隐式特征分句;
S402,针对各个隐式特征分句,进行如下操作:
(a)获取该隐式特征分句中每个词的词向量,并根据该隐式特征分句所有词的词向量利用输入层到映射层的计算公式计算该隐式特征分句的映射向量;
(b)以属性词词典中各个属性词作为候选属性词,采用映射层到输出层的计算公式计算各个候选属性词相对于该隐式特征分句的概率,并输出概率最大的候选属性词作为该隐式特征分句的属性词。
针对任意一个隐式特征分句,若该隐式特征分句的前一条分句为显式特征分句,则在操作(a)中计算隐式特征分句的映射向量时,将前一条显式特征分句中的属性词添加至该隐式特征分句中作为一个词。
在一条语句(即商品评价语句)中,上、下两个分句(即前、后两条)之间具有较强的联系,评价对象通常相同或者相近。本发明中除窗口内(本条分句中)的词以外,通过引入该隐式特征分句的前一条显式特征分句中的属性词,综合考虑到上下文背景信息,能够有效提高识别的准确性。
作为优选,所述操作(a)中输入层到映射层的计算公式如下:
其中,context
j表示隐式特征分句j,w
n表示context
j中第n个词,
表示隐式特征分句context
j的映射向量,
表示隐式特征分句context
j中词w
n的词向量,N表示隐式特征分句context
j中所包含词的个数。
所述操作(b)中映射层到输出层的计算公式如下:
其中,feature
i表示第i个候选属性词,
表示第i个候选属性词的词向量,p(feature
i|context
j)表示候选属性词feature
i相对于该隐式特征分句context
j的概率。
隐式特征分句context
j中词w
n的词向量通过查询输入层到映射层的参数矩阵获得。第i个候选属性词的词向量
通过查询映射层到输出层的参数矩阵获得。
未作特殊说明,本发明的基于词向量模型的隐式特征识别方法是指识别隐式特征分句的评价特征,进而得到表示该评价特征的属性词。
与现有技术相比,本发明具有如下优点:
(1)从理解句子的语义出发,用词向量表示词的语义信息,利用词向量模型获取隐式特征分句中的隐式评价特征;
(2)利用上下文语境,进一步提高隐式特征识别的准确率。
附图说明
图1为实施例1的中基于词向量模型的隐式特征识别方法的流程图;
图2为实施例1利用训练好的词向量模型识别隐式特征分句的流程示意图;
图3为实施例2中利用训练好的词向量模型识别隐式特征分句的流程示意图;
图4为实施例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表示隐式特征分句中所含词的个数,
为隐式特征分句中词w
n的词向量。
因此,该条隐式特征分句的映射向量为:
(b)以属性词词典中各个属性词作为候选属性词,采用映射层到输出层的计算公式计算各个候选属性词相对于该隐式特征分句的概率,并输出概率最大的候选属性词作为该隐式特征分句的属性词。
针对隐式特征分句contextj,第i个候选属性词featurei的概率值大小p(featurei|contextj)根据如下公式计算:
其中,第i个候选属性词feature
i的
是从映射层到输出层的参数矩阵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:
其中,v
new_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的方法计算得到该隐式特征分句的映射向量为:
属性词“快递”的概率值为:
其中,featurei为“快递”。
属性词“手机”的概率值为:
其中,featurei为“手机”。
因此,隐式评论分句“w速度n挺d快a,w”所评价的特征为属性词“手机”。
本实施例基于具体语境因素修正隐式特征的识别方法可以采用如图4所示的流程进行,针对当前待识别的隐式特征分句,首先计算得到该隐式特征分句的映射向量,根据候选属性词的词向量与映射向量利用映射层到输出层的公式计算此候选属性词的概率值,根据是否存在具体语境关系对映射向量进行更新:
若不存在具体语境关系,则选择概率值最大的候选属性词作为此隐式特征分句的评价特征(即属性词);
若存在具体语境关系,则根据候选属性词的词向量和更新后的映射向量利用公式计算该候选属性词的概率值,并根据更新后的概率值,选择概率值最大的候选属性词作为此隐式特征分句的评价特征(即属性词)。
本实施例中若该隐式特征分句的前一条分句为显式评论分句,则认为该隐式特征评价分句存在具体语境关系;否则,认为不存在具体语境关系。
需要说明的是,具体语境关系仅针对同一条评论(即评论语句)中的各条分句之间的关系而言,来自同一条评价的不同分句时按照原评价中的顺序依次进行识别的。因此,对于每条评价,其中第一条分句若为隐式特征分句,则不需要考虑其具体语境关系。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。