微博舆情 之 自然语言处理

这篇主要讲一下如何将微博转化成特征向量。

一、自然语言处理

1、简介

先从自然语言说起吧,自然语言包括自然语言理解自然语言生成,前者是要使计算机能够理解自然语言文本的意义,而后者是要让计算机以自然语言文本来表达给定的意图。

但是,完成这些是非常困难的,困难之处在于自然语言文本和对话的各个层次上广泛存在各种各样的歧义性或多义性。同时,自然语言的形式与意义之间多对多的关系也增加了一定的难度,也就是说,一个单词可能有多个意义,反过来,一个意义也可以由很多个单词来表示。

因此,自然语言处理的任务就是把带有潜在歧义的自然语言输入转化成某种无歧义的计算机内部表示。

2、语料库

自然语言处理数据的基础就是语料库

3、处理工具

  1. Fudan NLP
    FudanNLP主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机器学习算法和数据集。本工具包及其包含数据集使用LGPL3.0许可证。开发语言为Java。
  2. 语言技术平台 LTP
    语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口,可视化工具,并且能够以网络服务(Web Service)的形式进行使用。

二、我们采用的技术

在这一部分,我们主要要对每条微博构建一个向量空间模型,来用数学方法来表示文档,由于权值的计算需要利用语料库,因此我们首先构造语料库,之后进行分词特征值计算,最终构建出向量空间模型。

主要包含的操作有:

  • 构建微博语料库
    • 分词、去除停用词
    • 构建倒排索引
  • 对新微博处理
    • 分词、去除停用词
    • 特征值计算,得到每个单词的权重比例
    • 构建向量空间模型

1、构建微博语料库

语料库主要存放根据明确特征区分的真实语句,由于微博140字的限制,很难直接利用当前的语料库进行处理,因此我们自己构建了语料库。

主要方法是通过关注了10个不同类别的微博账号,将他们发布的微博作为语料库的内容,从而得到不同类别的语料库。

2、分词、构建倒排索引

分词我们用的是Ansj,它是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。

倒排索引(inverted index)是一种索引方法,用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它源于搜索引擎中查询与某个词相关的文档,如果对每个查询都搜索一遍所有的文档,将会很耗费时间,因此我们采用对每个词项维护一个相关文档的信息。也就是说,索引包含词项词典(记录所有词项)和倒排记录表(记录所有与之相关的文档信息)。

3、特征值计算

特征值计算来源于文本分类中特征选择的需求。特征选择的目的在于减少文本的特征向量维数,去除冗余特征,保留具有区分能力的特征。

其基本方式就是构造一个评价函数,对特征集的每个特征进行评估,也就是计算出他的特征值,之后根据值的大小进行排序,选取预定数目的最佳特征作为特征子集。

在这里,由于我们没有研究出最优的特征选择方法,因此,我们将6中特征值计算方法进行融合,得到一个最终的数值,作为单词的特征值。

我们采用的特征值计算方法有:

  • 文本频数(DF)
    • 介绍:DF是最简单的特征提取方法,其函数值就是训练集(语料库)中包含此特征的文本数。
    • 优点:计算复杂度低,随着训练集规模呈线性增加,易于实现,能适用于样本数巨大的语料库。
    • 缺点:没有考虑特征与类之间的关系,当某些出现频率较低的特征集中在某一类别时,该特征也可能包含了重要的类别区分信息。
    • 计算方法:DF(t,c) = lg(DF_t) / lg(N_c), 其中DF_t是特征t在类别c中出现的次数,N_c是类别c中的文档总数。
  • 互信息(MI)
    • 介绍:MI是描述两个随机变量之间关联程度的一种度量,在这里用于度量某个特征词和类别之间的统计独立关系。
    • 优点:MI认为与类别相关性越高的特征词越重要,从而提取互信息值较高的特征词,思路简单。
    • 缺点:互信息值受词条的边缘概率影响非常大,稀有词比常用词得分还要高,导致评估函数倾向选择稀有特征。
    • 计算方式:MI(t, c_j) = log( P(t|c_j) / P(t) ), 其中P(t/c_j)表示特征t在c_j中出现的概率,P(t)表示特征t出现的概率。他们的值可以根据词频来估计,也可以基于文档频来估计。
  • 信息增益(IG)
    • 介绍:考虑某一特征词在文本中出现与否的信息熵的差。
    • 优点:
    • 缺点:考虑某个特征词不出现的贡献远小于带来的干扰,并且它只能考察特征对整个系统的贡献,而不能具体到某个类别。
  • 卡方检验(CHI)
    • 介绍:基于特征词t和文本类别c之间符合卡方分布这一假设,计算特征词条t和类别c的依赖程度。卡方统计值越高,与该类的相关程度越高。
      • 优点:
      • 缺点:考虑了特征和类别的负相关。如果特征词和文本分类不遵循卡方分布,则它会倾向于选择低频特征词。
  • 文本证据权(WET)
    • 介绍: 在某个特征出现的情况下,类别出现的条件概率和原类别出现的概率之间的差别。
    • 特点:倾向于选择与类别强相关的特征词,增加了类别间的区分度。
  • 期望交叉熵(ECE)
    • 在出现了某个特征的前提下,文本类别的概率分布和原来文本之间的概率分布之间的距离。值越大,说明特征词对于文本类别分布的影响越大。

4、向量空间模型

在文本分类领域,最常用的文本表示模型是向量空间模型(Vector Space Model, VSM),其基本思想是将文本d看作是向量空间中的一个n维向量(W(t1), W(t2), … , W(tn)),其中t1, t2, …, tn 为表示文本的n个特征,W为相应的权值(通过特征值计算得出)。

因此,在构建完VSM模型后,每个微博都以一个很多维的向量来表示了。

你可能感兴趣的:(项目总结)