精华内容
参与话题
问答
  • NLP情感分析情感分类

    万次阅读 2018-09-26 15:38:35
    情感分析情感分类 情感分析(sentiment analysis)是近年来国内外研究的热点,其任务是帮助用户快速获取、整理和分析相关评价信息,对带有情感色彩的主观性文本进行分析、处理、归纳和推理。 情感分析包含较多的...

    情感分析与情感分类

    情感分析(sentiment analysis)是近年来国内外研究的热点,其任务是帮助用户快速获取、整理和分析相关评价信息,对带有情感色彩的主观性文本进行分析、处理、归纳和推理。

    情感分析包含较多的任务,如情感分类(sentiment classification)、观点抽取(opinion extraction)、观点问答观点摘要等。因此很难简单地将其划归为某一个领域,往往从不同的角度将其划归到不同的方向。如果单纯地判别文本的倾向性,可以将其看作是一个分类任务;如果要从观点句中抽取相关的要素(观点持有者、观点评价对象等),则是一个信息抽取任务;而如果要从海量文本中找到对某一事物的观点,则可以看作是一个检索任务。

    随着互联网技术的迅速发展和普及,对网络内容管理、监控和有害(或垃圾)信息过滤的需求越来越大,网络信息的主观倾向性分类受到越来越多的关注。这种分类与传统的文本分类不同,传统的文本分类所关注的是文本的客观内容(objective),而倾向性分类所研究的对象是文本的“主观因素”,即作者所表达出来的主观倾向性,分类的结果是对于一个特定的文本要得到它是否支持某种观点的信息。这种独特的文本分类任务又称为情感分类

    情感分类

    情感分类是指根据文本所表达的含义和情感信息将文本划分成褒扬的或贬义的两种或几种类型,是对文本作者倾向性和观点、态度的划分,因此有时也称倾向性分析(opinion analysis)。

    情感分类作为一种特殊的分类问题,既有一般模式分类的共性问题,也有其特殊性,如情感信息表达的隐蔽性、多义性和极性不明显等。

    针对这些问题人们做了大量研究,提出了很多分类方法。这些方法可以按机器学习方法归类,也可以按情感文本的特点划分。

    1.按机器学习方法分类

    根据机器学习方法所使用训练样本的标注情况,情感文本分类可以大致分为有监督学习方法、半监督学习方法和无监督学习方法三类。

    有监督学习方法:基于有监督学习的情感分类方法使用机器学习方法用于训练大量标注样本。
    2002首次将有监督的学习方法应用到情感分类中,文献中分别比较了多种分类算法以及各种特征和特征权值选择策略在基于监督学习的情感分类中的效果。2004将主观句摘要引入情感分类中;2010分析了极性转移对情感分类的影响;2011使用基于特征空间及分类算法的集成学习方法有效地提高了情感分类的性能。

    半监督学习方法:基于半监督学习的情感分类方法是通过在少量标注样本上训练,并在大量未标注样本上进行学习的方式构建分类模型。
    2009将多种机器学习方法(例如:聚类方法、集成学习等)融入基于半监督学习的情感分类中;面对情感分类中汉语标注语料匮乏的问题,2009采用协同学习方法使用标注的英文语料和无标注的中文语料实现了高性能的中文情感分类。2010将情感文本的表达分为个人的和非个人的两种视图,应用协同学习进行情感分类的半监督学习。

    无监督学习方法:基于无监督学习的情感分类方法是指仅使用非标注样本进行情感分类建模。
    以往的大部分研究工作都是通过情感分类标注的种子词集来实现无监督分类,2002通过计算文本中候选单词与种子情感词之间的点互信息来计算文本的情感倾向性,选择“excellent”和“poor”作为种子词,在得到每个单词与种子词之间的点互信息后,根据SO-PMI计算每个词的情感倾向性,并通过词语计数的方式计算文本的整体情感倾向性。2006通过基于HowNet的语义分析抽取单词的情感信息。2009根据样本空间中文档与单词的共现关系,基于潜在狄利克雷分布(latent Dirichlet allocation,LDA)的浅层语义分析方法获取未标注样本的标签。

    2.按研究问题分类

    根据情感文本分类中侧重关注的问题,可以将情感分类研究划分为领域相关性研究和数据不平衡问题研究两类。

    领域相关性研究:情感分类是一个领域相关(domain-specific)的问题,当训练集和测试集属于不同的领域时,基于监督学习的情感分类方法通常会表现出较差的效果。因此,领域适应性(domain adaptation)研究成为一个重要课题,其目的就是尽量使情感分类器在跨领域学习时保持一定的分类性能。

    2005针对领域适应中的特征选择、分类器融合和训练集的组合等问题做了详细分析。2007提出了一种基于结构共现学习(structural correspondence learning,SCL)的情感分类领域适应方法,在跨领域情感分类中取得了较好的性能。2010利用基于图模型的Graph-Ranking算法处理中文情感分类中的领域适应问题。2011将集成学习方法应用于“多领域”情感分类,让多个领域的资源互相帮助,从而使整体的情感分类性能获得提升。

    数据不平衡问题研究:情感分类往往牵涉样本的正负类别分布不平衡的问题。

    Li et al.(2011b)对实际情况中的样本不平衡问题做了深入分析。假设在情感分类中有N个样本的训练数据,其中包含N+个正类样本和N-个负类样本。目前大多数研究总是假设正类样本数和负类样本数是平衡的,即N+=N-,但实际情况并非如此,更一般的情况是训练数据中一类样本要远远多于另一类样本。

    针对不平衡数据的有监督情感分类问题,Li et al.(2011c)提出了一种基于中心向量的不平衡情感分类方法。
    该方法包括以下几个步骤对不平衡数据的标注样本进行训练:
    ①将“多类”里面的所有训练样本进行聚类;
    ②在各个聚类里面进行内部层次采样,获得同“少类”相同规模的样本;
    ③使用这些采样样本并结合整个类的中心向量构建的新向量进行训练学习。该方法借鉴中心向量充分利用“多类”里面所有样本的分类信息,获得了比其他传统采样方法或者代价敏感方法更优的分类性能。

    针对不平衡数据的半监督情感分类问题,Li et al.(2011b)提出了一种基于协同学习的半监督学习方法。
    该方法有如下两个特点:
    ①使用欠采样技术对训练样本进行平衡采样,用于构建多个欠采样分类器,利用多个分类器对非标注样本进行标注;
    ②采用动态特征子空间的方式,即每次迭代重新生产特征子空间,增加多分类器之间的差异性,进一步提升协同学习的性能。
    实验结果表明,该方法在处理情感分类的数据不平衡问题上,能够利用非标注样本提高分类性能。另外,该工作的一个贡献是首次提出了一种针对不平衡数据分类的半监督学习方法。

    针对不平衡数据的情感分类中的主动学习问题,Li et al.(2012b)提出了一种集成确定性和不确定性样本选择策略的方法,用于主动选择不平衡数据中信息量大的样本以提高分类性能。其中,确定性和不确定性分布由两个分开的特征子空间进行控制,不确定性用于选择信息量大的样本,确定性用于选择尽量平衡的数据。此外,对于确定性判断出来的“多类”非标注样本进行自动标注,进一步降低样本的标注规模。实验证明,在同样的标注情况下该方法能够大幅度提高不平衡数据的分类性能。

     

    展开全文
  • 情感分析

    千次阅读 2016-07-26 10:20:27
    情感分析 情感分析的新方法 知乎-深度学习在情感分析中的应用的研究现状
    展开全文
  • Keras + LSTM + 词向量 情感分类/情感分析实验

    万次阅读 多人点赞 2017-03-10 23:26:40
    利用LSTM + word2vec词向量进行文本情感分类/情感分析实验,吸收了网上的资源和代码并尝试转化为自己的东西~实验环境 win7 64位系统 Anaconda 4.3.0 , Python 2.7 version Pycharm开发环境 python包:keras,gensim...

    背景简介

    本人是深度学习入门的菜菜菜鸟一枚…
    利用LSTM + word2vec词向量进行文本情感分类/情感分析实验,吸收了网上的资源和代码并尝试转化为自己的东西~

    实验环境

    • win7 64位系统
    • Anaconda 4.3.0 , Python 2.7 version
    • Pycharm开发环境
    • python包:keras,gensim,numpy等

    实验数据

    本文的实验数据是来自网上的中文标注语料,涉及书籍、酒店、计算机、牛奶、手机、热水器六个方面的购物评论数据,具体介绍参见该文:购物评论情感分析

    数据处理

    上面提到的数据在网上见到的次数比较多,原始格式是两个excel文件,如图:
    两个excel

    对,就是这两个…估计来到本文的小伙伴也见过。一些代码就是直接从这两个excel里读取数据、分词、处理…不过我表示自己习惯从txt文本里获取数据,因此本人将数据合并、去重(原数据里有不少重复的评论)、分词(用的是哈工大LTP分词)之后存为一份txt文本,保留的数据情况如下:

    正面评价个数:8680个
    负面评价个数:8000个

    文本如图所示:
    这里写图片描述

    然后人工生成一份【语料类别】文本,用1表示正面评价,用0表示负面评价,与评论数据一一对应。

    生成词语的索引字典、词向量字典

    利用上述文本语料生成词语的索引字典和词向量字典。
    注意:当Word2vec词频阈值设置为5时,词频小于5的词语将不会生成索引,也不会生成词向量数据。

    工具:gensim里的Word2vec,Dictionary

    代码

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    功能:利用大语料生成词语的索引字典、词向量,然后保存为pkl文件
    时间:2017年3月8日 13:19:40
    """
    
    import pickle
    import logging
    import tkFileDialog
    
    import numpy as np
    np.random.seed(1337)  # For Reproducibility
    
    from Functions.TextSta import TextSta
    from gensim.models.word2vec import Word2Vec
    from gensim.corpora.dictionary import Dictionary
    
    # 创建词语字典,并返回word2vec模型中词语的索引,词向量
    def create_dictionaries(p_model):
        gensim_dict = Dictionary()
        gensim_dict.doc2bow(p_model.vocab.keys(), allow_update=True)
        w2indx = {v: k + 1 for k, v in gensim_dict.items()}  # 词语的索引,从1开始编号
        w2vec = {word: model[word] for word in w2indx.keys()}  # 词语的词向量
        return w2indx, w2vec
    
    # 主程序
    logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
    
    print u"请选择大语料的分词文本..."
    T = TextSta(tkFileDialog.askopenfilename(title=u"选择文件"))
    sentences = T.sen()    # 获取句子列表,每个句子又是词汇的列表
    
    print u'训练Word2vec模型(可尝试修改参数)...'
    model = Word2Vec(sentences,
                     size=100,  # 词向量维度
                     min_count=5,  # 词频阈值
                     window=5)  # 窗口大小
    
    model_name = raw_input(u"请输入保存的模型文件名...\n").decode("utf-8")
    model.save(model_name + u'.model')  # 保存模型
    
    # 索引字典、词向量字典
    index_dict, word_vectors= create_dictionaries(model)
    
    # 存储为pkl文件
    pkl_name = raw_input(u"请输入保存的pkl文件名...\n").decode("utf-8")
    output = open(pkl_name + u".pkl", 'wb')
    pickle.dump(index_dict, output)  # 索引字典
    pickle.dump(word_vectors, output)  # 词向量字典
    output.close()
    
    if __name__ == "__main__":
        pass

    其中,

    T = TextSta(tkFileDialog.askopenfilename(title=u"选择文件"))
    sentences = T.sen()    # 获取句子列表,每个句子又是词汇的列表

    TextSta是我自己写的一个类,读取语料文本后,sentences = T.sen()将文本里的每一行生成一个列表,每个列表又是词汇的列表。(这个类原来是用作句子分类的,每行是一个句子;这里每行其实是一个评论若干个句子…我就不改代码变量名了…)

    TextSta类部分代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    功能:一个类,执行文本转换
    输入:分词文本
    输出:句子列表,全文的词汇列表,TF,DF
    时间:2016年5月17日 19:08:34
    """
    
    import codecs
    import re
    import tkFileDialog
    
    
    class TextSta:
        # 定义基本属性,分词文本的全路径
        filename = ""
    
        # 定义构造方法
        def __init__(self, path):    # 参数path,赋给filename
            self.filename = path
    
        def sen(self):    # 获取句子列表
            f1 = codecs.open(self.filename, "r", encoding="utf-8")
            print u"已经打开文本:", self.filename
    
            # 获得句子列表,其中每个句子又是词汇的列表
            sentences_list = []
            for line in f1:
                single_sen_list = line.strip().split(" ")
                while "" in single_sen_list:
                    single_sen_list.remove("")
                sentences_list.append(single_sen_list)
            print u"句子总数:", len(sentences_list)
    
            f1.close()
            return sentences_list
    
    if __name__ == "__main__": 
        pass

    总之,sentences的格式如下:

    [[我, 是, 2月, …], [#, 蒙牛, 百, …], …]

    所有的评论文本存为一个列表,每个评论文本又是词汇的列表。
    sentences列表的长度就是文本的行数:len(sentences) = 16680

    利用Keras + LSTM进行文本分类

    工具:Keras深度学习库

    代码:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    功能:利用词向量+LSTM进行文本分类
    时间:2017年3月10日 21:18:34
    """
    
    import numpy as np
    
    np.random.seed(1337)  # For Reproducibility
    
    import pickle
    from keras.preprocessing import sequence
    from keras.models import Sequential
    from keras.layers.embeddings import Embedding
    from keras.layers.recurrent import LSTM
    from keras.layers.core import Dense, Dropout, Activation
    
    from sklearn.cross_validation import train_test_split
    
    from Functions import GetLineList
    from Functions.TextSta import TextSta
    
    # 参数设置
    vocab_dim = 100  # 向量维度
    maxlen = 140  # 文本保留的最大长度
    batch_size = 32
    n_epoch = 5
    input_length = 140
    
    
    def text_to_index_array(p_new_dic, p_sen):  # 文本转为索引数字模式
        new_sentences = []
        for sen in p_sen:
            new_sen = []
            for word in sen:
                try:
                    new_sen.append(p_new_dic[word])  # 单词转索引数字
                except:
                    new_sen.append(0)  # 索引字典里没有的词转为数字0
            new_sentences.append(new_sen)
    
        return np.array(new_sentences)
    
    
    # 定义网络结构
    def train_lstm(p_n_symbols, p_embedding_weights, p_X_train, p_y_train, p_X_test, p_y_test):
        print u'创建模型...'
        model = Sequential()
        model.add(Embedding(output_dim=vocab_dim,
                            input_dim=p_n_symbols,
                            mask_zero=True,
                            weights=[p_embedding_weights],
                            input_length=input_length))
    
        model.add(LSTM(output_dim=50,
                       activation='sigmoid',
                       inner_activation='hard_sigmoid'))
        model.add(Dropout(0.5))
        model.add(Dense(1))
        model.add(Activation('sigmoid'))
    
        print u'编译模型...'
        model.compile(loss='binary_crossentropy',
                      optimizer='adam',
                      metrics=['accuracy'])
    
        print u"训练..."
        model.fit(p_X_train, p_y_train, batch_size=batch_size, nb_epoch=n_epoch,
                  validation_data=(p_X_test, p_y_test))
    
        print u"评估..."
        score, acc = model.evaluate(p_X_test, p_y_test, batch_size=batch_size)
        print 'Test score:', score
        print 'Test accuracy:', acc
    
    
    # 读取大语料文本
    f = open(u"评价语料索引及词向量.pkl", 'rb')  # 预先训练好的
    index_dict = pickle.load(f)  # 索引字典,{单词: 索引数字}
    word_vectors = pickle.load(f)  # 词向量, {单词: 词向量(100维长的数组)}
    new_dic = index_dict
    
    print u"Setting up Arrays for Keras Embedding Layer..."
    n_symbols = len(index_dict) + 1  # 索引数字的个数,因为有的词语索引为0,所以+1
    embedding_weights = np.zeros((n_symbols, 100))  # 创建一个n_symbols * 100的0矩阵
    for w, index in index_dict.items():  # 从索引为1的词语开始,用词向量填充矩阵
        embedding_weights[index, :] = word_vectors[w]  # 词向量矩阵,第一行是0向量(没有索引为0的词语,未被填充)
    
    # 读取语料分词文本,转为句子列表(句子为词汇的列表)
    print u"请选择语料的分词文本..."
    T1 = TextSta(u"评价语料_分词后.txt")
    allsentences = T1.sen()
    
    # 读取语料类别标签
    print u"请选择语料的类别文本...(用0,1分别表示消极、积极情感)"
    labels = GetLineList.main()
    
    # 划分训练集和测试集,此时都是list列表
    X_train_l, X_test_l, y_train_l, y_test_l = train_test_split(allsentences, labels, test_size=0.2)
    
    # 转为数字索引形式
    X_train = text_to_index_array(new_dic, X_train_l)
    X_test = text_to_index_array(new_dic, X_test_l)
    print u"训练集shape: ", X_train.shape
    print u"测试集shape: ", X_test.shape
    
    y_train = np.array(y_train_l)  # 转numpy数组
    y_test = np.array(y_test_l)
    
    # 将句子截取相同的长度maxlen,不够的补0
    print('Pad sequences (samples x time)')
    X_train = sequence.pad_sequences(X_train, maxlen=maxlen)
    X_test = sequence.pad_sequences(X_test, maxlen=maxlen)
    print('X_train shape:', X_train.shape)
    print('X_test shape:', X_test.shape)
    
    train_lstm(n_symbols, embedding_weights, X_train, y_train, X_test, y_test)
    
    if __name__ == "__main__":
        pass
    

    其中,

    from Functions import GetLineList

    GetLineList是自定义模块,用于获取文本的类别(存为列表),代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    功能:文本转列表,常用于读取词典(停用词,特征词等)
    使用:给定一个文本,将文本按行转换为列表,每行对应列表里的一个元素
    时间:2016年5月15日 22:45:23
    """
    
    import codecs
    import tkFileDialog
    
    
    def main():
        # 打开文件
        file_path = tkFileDialog.askopenfilename(title=u"选择文件")
        f1 = codecs.open(file_path, "r", encoding="utf-8")
        print u"已经打开文本:", file_path
    
        # 转为列表
        line_list = []
        for line in f1:
            line_list.append(line.strip())
        print u"列表里的元素个数:", len(line_list)
    
        f1.close()
        return line_list
    
    if __name__ == "__main__":
        pass

    实验结果

    这里写图片描述

    参考文献:

    http://buptldy.github.io/2016/07/20/2016-07-20-sentiment%20analysis/
    https://github.com/BUPTLdy/Sentiment-Analysis

    展开全文
  • 中文文本情感分类情感分析资源大全

    万次阅读 多人点赞 2018-10-03 22:43:49
    摘要:20世纪初以来,文本的情感分析在自然语言处理领域成为了研究的热点,吸引了众多学者越来越多的关注。对于中文文本的情感倾向性研究在这样一大环境下也得到了显著的发展。本文主要是基于机器学习方法的中文文本...

    摘要:20世纪初以来,文本的情感分析在自然语言处理领域成为了研究的热点,吸引了众多学者越来越多的关注。对于中文文本的情感倾向性研究在这样一大环境下也得到了显著的发展。本文主要是基于机器学习方法的中文文本情感分类,主要包括:使用开源的Markup处理程序对XML文件进行分析处理、中科院计算所开源的中文分词处理程序ICTCLAS对文本进行分词处理、去除停用词等文本预处理,在基于向量空间模型VSM的文本表示,使用卡方统计量CHI的进行特征选择,TFIDF权值计算方法进行的特征权值计算,最后使用支持向量机SVM进行中文文本情感的分类。在实验过程中,对比了特征数量的大小对情感分类结果的影响、布尔权值、TF权值和TFIDF权值三种不同计算方法对情感分类结果的影响以及SVM分类器对于不同类型文本数据的分类效果。从整个实验结果来看,TFIDF权值计算相较于其他两种更有利于文本的情感分类。SVM分类器作为文本情感分类器对于不同类型的文本数据,其分类效果不同,但总体上取得了较好的效果。

     

    关键词:中文文本情感分类  SVM分类器  特征选择

     

    1绪论

    1.1国内外研究现状

    文本情感分类是文本分类中的一个重要分支,也称之为意见挖掘。简而言之,文本的情感分类就是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程[1]。情感分类中,按照处理文本的粒度不同,可分为词语短语级、句子级、篇章级等几个研究层次[2]。在此,对词语短语级的情感分类进行详细阐述。在情感分析中可以认为构成篇章的基本单位包括词、短语、和固定搭配,对于它们的褒贬程度的度量是判别文本情感倾向的基础。国外许多学者做了大量研究,其主要研究方法分为基于字典和基于语料库两种。

    基于语料库的词语短语级的情感判别主要是根据它们的语法特性,对大规模语料库进行信息挖掘,从而得到统计数据并对其极性做出判断。在研究早期,学者发现由某些连词连接的形容词具有相同或相反的极性,Hatzivassilolou和Mckeown[4]利用大规模语料库华尔街日报中的连接词信息来自动识别形容词的情感倾向,利用聚类算法将它们归属于褒义或贬义的类别集合。Turney和Littman[5]提出了点互信息的方法判别词的褒贬倾向。Dave等[6]从语料中抽取特征集合,通过分析此特征集合和己标记文本的关系来判定词汇的语义倾向。

    基于词典的词语短语的情感判别,主要是根据词典WordNet或HowNet中词语间的关联来判别词语的极性。sista等[7]将GI(General Inquirer)和WordNet中的褒义和贬义词作为种子词,得到一个扩展后的较大规模情感词集合,并以此作为分类特征,利用机器学习方法对文本褒贬义进行了自动分类。Faye Baron和Graeme Hirst[8]从文档中抽取倾向性强的搭配作为种子词汇,取得了较好的分类效果。相对于英语,中文的词汇、短语的情感分析研究起步较晚。中科院自动化所的王根等[9]提出了词语倾向性的极坐标方式,并采用均衡化的互信息方法计算了词语倾向性。北京理工大学的李钝博士[10]把短语归结为一个非递归的基本词汇及依存关系的集合,提出了一种基于短语中心词之间依存概率统计分析方法,并将其应用于对短语的倾向性和倾向强度的计算。

    1.2存在的问题和挑战

    情感分类的应用十分广泛,因此近年来的发展迅速,取得的不小的进步,同时我们也该看到,由于情感分类问题较复杂,不仅仅是单一的文本分类或文本挖掘任务,因而在研究过程中还存在很多问题与挑战。

    1)情感语义的机器理解问题

    人类的自然语言情感表达十分复杂,特别是网络评论的形式更加灵活多变,要使机器精确的理解文本中的情感内容,不能简单的提取词语作为特征,还必须结合语言学方面的知识,借助于文本上下文和领域相关性对情感语义进行分析处理。

    2)特征提取问题

    文本分类中一般采用词袋法表示文本的特征,然而由于情感表达中有许多诸如隐喻、反话等复杂的语言形式,且上下相关,因此简单采用词袋法提取特征并进行分析的效果极其有限,如何提取对情感分析具有更大价值的特征依然是一个有待完善的课题。

    3)领域依赖

    由于情感表达在不同的领域差别较大,所以无论是在有监督的学习方法还是无监督学习方法,情感分类都面临着领域依赖问题。

    4)语料库建设问题

    情感分类领域,许多研究者自己通过互联网获取语料,并进行人工标注,即使相同领域语料,但语料内容相差较大且标注标本不统一,造成实验结果很难进行比较。特别是在中文的情感研究领域,国内的公开语料库较少,资源匮乏。

     

    2基于机器学习的文本分类方法

    基于机器学习的情感分类问题,它的处理过程大致可以分为两个部分,一部分是学习过程,另一部分是情感分类过程。其中,学习过程包括训练过程和测试过程,训练过程中对训练集进行训练得到分类器,用其对测试集进行情感分类,将测试的结果反馈给分类器,进一步改进训练方法,生成新的分类器,最后利用最终生成的分类器对新的文本进行情感分类,其基本流程如图1所示。

    图1 基于机器学习的文本情感分类流程图

     

    2.1文本预处理

    文本的预处理是进行文本情感分类的第一步,预处理结果的好坏直接影响到今后的分析处理能否顺利进行。文本预处理的目的是从文本语料库中规范地提取出主要内容,去除与文本情感分类不相关的信息。对于中文的预处理,其主要操作包括规范编码,过滤非法字符,分词处理,去除停用词等步骤。

    1)文件规范编码处理

    从网上下载的语料库存储格式可能千差万别,对实验带来很大困扰。所以第一步一般都是对语料库进行数据格式的归一化处理。

    2)中文分词处理

    中文文本单词之间没有天然的分隔符,因此在提取特征之前,首先要对中文文本进行分词。分词处理能够将连续的汉字序列按照一定的规则重新切分为词或词组。切分好的词或词组将会作为文本的特征用于情感分类分析过程,因此能否高效、正确的对中文进行分词成为中文情感分析的重要任务。中国科学院计算技术研究所专门开发了汉语词法分析系统ICTCLAS(Institute of Computing Technology,ChineseLexical Analysis System)。ICTCLAS的主要功能包括中文分词、词性标注、新词识别、命名实体识别等功能,它的分词性能和分词精度都较高,是目前最受好评的汉语分词开源系统。

    3)停用词去除

    文本中包含许多助词、虚词等词性的单词以及在文本中经常出现的高频词汇但其本身对情感分类意义不大,这些词汇我们将它们统称为停用词。停用词表的构造一般有两种方式,人工方式或机器自动统计。停用词的存在不但会增加存储空间,而且很可能形成噪声,影响情感分类的精度,因此需要过滤文本中的停用词。

    2.2文本表示模型

    文本是一种非结构化的数据,由大量字符构成,计算机无法直接处理字符类型的数据,因此需要将普通文本的内容转变为计算机能够读懂的数据形式,即将文本进行形式化表示。本文采用向量空间模型来表示文本。

    向量空间模型(VSM)[11]是由salton等人在1975年提出的一个基于统计的文本表示模型,并成功的应用在著名的SMART系统中。向量空间模型可以形式化的表述为,对于给定的文本D=D{t1,w1;t2,w2;…tn,wn}其中ti表示第i个特征项(最小不可分割的语言单位,如字、词、短语),wi表示特征项ti所拥有的权值,n为特征项的总数。每一个文本可以表示为一个向量(w1,w2…wn),wi的计算可以使用布尔权重法,词频权重和TFIDF权重。

    向量空间模型对文本的表示效果较好,可以将文档表示成空间向量进行运算,且具有较强的可计算性和可操作性。向量空间模型是文本分类中应用最为广泛的文本形式化模型。向量空间模型的缺点也十分明显,忽略了特征的次序和位置关系,且不考虑文本的长度,不考虑语义联系,认为所有的特征项都是独立的,只考虑文本所属类别的文档中出现特征项的频率,在情感分类的应用中存在一定的局限性。

    2.3特征选择

    在对文本进行预处理并对其进行形式化表示后,得到了一个高维稀疏的特征空间,特征的数量可以达到几万维甚至是几十万维,不仅使得运算时间变长,而且会在很大程度上降低分类的准确度。特征选择(Feature Selection)就是从原始的高维特征集合中选择一小部分特征作为分类器的分类特征。特征选择过程需要通过构造好的评估函数对每个特征进行评分,然后按照评分的大小对特征向量进行降序排序,最后选择一定数量的特征作为分类特征集合。目前常用的特征选择方法有文档频率(DF)、信息增益(IG)、统计量(CHI)、期望交叉熵(ECE)和互信息(MI)等,本文采用卡方统计量来进行特征选择,并选取了不同数量的特征进行了对比测试。

    卡方统计方法[12]用来衡量特征tj和文档类别Cj之间的统计相关强度,并假设tj和Cj之间符合具有一阶自由度的X2分布。特征相对某类的X2统计值越高,则其含有的信息量越多,与该类的相关性越大。CHI的计算公式如下:

                 

    其中,tj表示特征项,Ci表示类别,N表示文本总数,A表示包含特征tj,且属于类别Ci的文档数,B表示包含特征tj,但不属于类别Ci的文档数,C表示属于类别Ci但不包含特征tj,的文档数,D表示不属于类别Ci且不包含特征tj的文档数。当有多个类别时,分别计算特征tj对每个类别的CHI,然后取最大值作为特征的CHI值。CHI特征选择方法可以在降低85%以上特征维度的情况下取得较好的分类结果。

    2.4特征加权

    特征选择过程中选择了最能代表文本内容的特征向量,但是这些特征对文本分类的影响不尽相同,因此,有必要对经过选择的特征进行加权,对表征能力强的特征赋予较大权重,对具有较弱类别区分能力的特征赋予较小的权重,这样可以有效抑制噪声。特征加权(Feature Weighting)就是对特征集合中每个特征根据其对分类的贡献程度赋予一定权值的过程。常用的特征加权方法有布尔权重,词频权重,TFIDF权重。本文分别使用了这三种权重计算方法,并对三种方法得到的分类结果进行了对比分析。

    设文本类别集合D={d1,d2,…,dn},dk∈D(k=1,2,…,n),n为文本总数;类别集合C={c1,c2,…,cm},ci∈C(i=1,2,...,m),特征集合T={t1,t2,…,tn},tj∈T(j=1,2,...,n),m为特征总数;wij表示特征tj在文本dk中的权重。

    1)布尔权重(Boolean Weighting)

    布尔权重是最简单的权重计算方法,其计算公式如下:

    若特征tj,在文本di中出现,则其权重wij为1;若特征tj在文本di中不出现,则其权重wij为0。

    2)词频权重(Term Frequency,TF)

    词频权重是指用特征在文本中的出现次数作为权重。不同类别的文本集合,特征出现的频率有较大差异,因此特征频率信息可以作为文本分类的重要参考之一。一般情况下,对于一个类别,出现频率较高的特征应该包含更多的类别信息,说明此特征对分类具有重要的意义,以词频作为参考赋予较大权重,反之应该赋予较小权重。TF权重计算公式如下:

    其中tfij表示特征tj在类别ci中出现的次数。

    词频权重相对于布尔权重,不再是均值权重,而是根据文本集合中特征出现的次数对特征进行加权,从权值函数构造来看有了一定的进步,然而词频权值对高频特征过度依赖,忽略了一些带有大量类别信息的低频特征。

    3)TFIDF权重

    将特征词频和逆文档频率相结合用于特征权重计算,在实验中取得了较好的效果,因此TFIDF也成为了最经典也是最广泛使用的一种特征权重计算方法。逆文档频率(InverseDocument Frequency,IDF)是以包含特征的文档数为参数构造特征权重函数。其核心思想是:在大多数文档中出现的特征所带有的类别信息相比于在少量文本中出现的特征较少,也就是说,若一个特征同时出现在多个文档中,它所携带的类别信息较少,它的重要程度较低。逆文档频率在计算时常采用对数形式,其计算公式如下:

    其中,ni为文本集合中包含特征tj的文本数。

    集合次品权重函数就形成了TFIDF权重,计算公式如下:

    其中,tfij表示特征tj在文本ci中出现的次数,ni为文本集合中包含特征ti的文本数。

    为了消除文本长度对特征权重的影响,要对特征的权重进行归一化处理,归一化后的TFIDF特征权重函数如下:

    2.5分类方法

    分类器是文本分类问题中的核心部分,在进行文本分类过程中常用的分类器有朴素贝叶斯分类器(NB),支持向量机(SVM),最大熵分类器(ME),K近邻分类器(KNN)等,本文中主要使用支持向量机来进行分类,用现有的LibSVM完成实际操作,并对book类别、dvd类别和music类别的训练集分别进行了测试,对比测试结果。

    支持向量机(Support Vector Machine)是Cortes和Vapnik[13]等人首先提出,它在解决小样本、非线性及高维模式识别中表现出许多优势,并能够推广应用到函数拟合等其他机器学习问题中。其基本思想是首先通过非线性变换将输入空间映射到一个高维特征空间,然后根据核函数在这个新空间中求取最优线性分类平面。将支持向量机应用于文本分类表现尤为突出,其分类的精确率和召回率都较高,且具有较好的稳定性,虽然它在大数据集上的训练收敛速度较慢,需要大量的存储资源和较高的计算能力,但其分隔面模式有效地克服了特征冗余、样本分布以及过拟合等因素的影响,具有较好的泛化能力。

    2.6评价标准

    在进行文本分类实验时,需要将文本集合划分为训练集合和测试集合,在进行划分时一般采用K折交叉验证法,将其得到的实验结果的平均值作为实验的最终结果。对结果的评价已经有了许多标准,常用的有查准率、查全率等。

    查准率是指分类器判别为ci类别的文本数与实际属于ci类别的文本数的比值,其计算公式如下:

    查全率是指实际属于ci类别的文本数与分类器判别为ci类别的文本数的比值,其计算公式如下:

    查准率和查全率分别反映分类器不同方面的性能:查准率反映分类器的准确性,查全率反映分类器的完备性。采用准确率还是召回率作为分类器的评价性能取决于实验者所侧重的目标,两个评价标准是互补的,单纯提高其中一个评价标准会导致另一个评价标准的降低。对于一个优良的分类器应该同时具备较高的查准率和查全率。

     

    3实验方法与步骤

    为了更好的理解情感分类的相关算法与步骤,结合相关论文方法与语料库进行了一系列的实验。实验过程框架图如图2所示,实验步骤如下:

    1)  将训练文本数据文件作为XML文件处理,提取评论文本数据信息;

    2)  对评论文本数据进行中文分词处理与停用词去除处理,并统计词频;

    3)  结合预处理结果、词频信息以及情感标签,使用CHI方法进行特征选择;

    4)  对评论文本进行特征权值计算并归一化权值,使用VSM模型表示文本;

    5)  结合归一化后的特征权值向量,利用支持向量机分类器进行分类器训练;

    6)  对测试文本进行情感分类的学习预测。

    图2 中文情感分类实验框架图

    结合实验框架图的基础上,针对分类过程中的各个部分,通过大量的实验进行验证。主要包括以下几个方面:

    1)  特征数量的大小对情感分类结果的影响。按照理论情况,选取全部的特

    征必然会得到最好的分类效果,但是会导致特征维数的急剧增大,从而导致“维数灾难”,以至后续的分类将会很难进行。故通过实验验证特征数量对分类效果的影响,力求做到能够在不大幅度降低分类效果的基础上,选取一个合适并且便于计算的特征数量。

    2)  布尔权值、TF权值和TFIDF权值三种不同计算方法对情感分类结果的影

    响 。从大量的论文中分析得出,TFIDF权值计算方法在情感分类中效果最好,这里通过实验对三种不同的权值计算方法进行验证。

    3)  SVM分类器对于不同类型文本数据的分类效果。不同类型的数据语料由

    于其内容以及情感变化的不同,在同时使用SVM分类器的过程中其分类效果可能不同。故采取实验的方法验证不同类型文本数据在使用SVM分类器进行情感分类的效果区别。

        最后,结合上述三个实验验证结果,对给定的测试语料进行情感分类实验。

     

    4实验结果及分析

    4.1 实验数据与程序说明

    整个实验的相关算法利用C++在Windows平台下完成,使用ICTCLAS中文分词开源程序、LibSVM以及开源的XML文件处理程序Markup完成。具体实验代码详见附件。

    实验使用的数据集分为三类,分别为book、dvd和music三类评论文本数据。三类数据集的情况如表2所示:

    表2 实验语料数据情况说明表

    4.2 特征数量的大小对情感分类影响实验

    实验对book类别训练集进行测试,分别使用预处理处理后得到的特征集合的10%,15%与20%作为选取的特征。文本的特征权值计算使用TFIDF方法,使用SVM分类器进行训练集的分类训练。在不同特征数量的情况下,训练集的最优分类率如表3所示:

    表3不同特征数量最优分类率表

     

    4.3 不同权值计算方法对情感分类结果影响实验

    实验对book类别训练集进行测试,分别使用预处理处理后得到的特征集合的10%作为选取的特征,文本的特征权值计算分别使用布尔方法、TF方法和TFIDF方法,使用SVM分类器进行训练集的分类训练。在不同权值计算方法的情况下,训练集的最优分类率如表4所示:

    表4不同权值计算方法下最优分类率表

    4.4 SVM分类器对于不同类型文本数据分类效果实验

    实验分别对book类别、dvd类别和music类别训练集进行测试,分别使用预处理处理后得到的特征集合的10%作为选取的特征,文本的特征权值计算使用TFIDF方法,使用SVM分类器进行训练集的分类训练。在不同类型数据情况下,训练集的最优分类率如表5所示:

    表5 不同文本数据使用SVM分类最优分类率表

    4.5测试文本数据分类实验

    结合上述三个实验结果,分别对book类别、dvd类别和music类别测试集进行分类实验。实验过程中使用预处理处理后得到的特征集合的10%作为选取的特征,文本的特征权值计算使用TFIDF方法,使用SVM分类器进行训练集的分类训练。三种不同文本测试数据的分类效果如表6所示:

    表6测试文本数据分类结果表

     

     

    5总结

    本文主要是对基于机器学习方法的情感文本分类做了初步的研究,

    取得了一定的研究成果,但得到的结果还有很大的提升空间,就本文而言,在许多方面还需要进一步的研究和改进。

    情感分类是一个具有挑战性的研究课题,其问题更加复杂,同一方法应用于不同语料所产生的结果存在较大差异,本文中只在3个类别的数据集上进行了实验,应将该方法应用于更多的数据集进行对比分析研究。此外,分类器的融合方法还有多种,可以进一步实验其他融合策略对于情感分类性能的影响。

    从整个实验结果来看,TFIDF权值计算相较于其他两种更有利于文本的情感分类。SVM分类器作为文本情感分类器对于不同类型的文本数据,其分类效果不同,但总体上取得了较好的效果。

    该博客收集情感分析领域中一些语料、词典等。
      如果引用到下列语料、词典等数据,出于尊重作者的学术成果,在文章中还请引用相关的文献。

    1 语料库

    1.1 谭松波-酒店评论语料-UTF-8,10000条

      现在网上大部分谭松波老师的评论语料资源的编码方式都是gb2312,本资源除了原始编码格式,还具有UTF-8编码格式。 本资源还包含将所有语料分成pos.txt和neg.txt两个文件,每个文件中的一行代表原始数据的一个txt文件,即一篇评论。
      下载地址为:谭松波-酒店评论语料-UTF-8,10000条

    1.2 SemEval-2014 Task 4数据集

    SemEval-2014 Task 4数据集主要用于细粒度情感分析,包含Laptop和Restaurant两个领域,每个领域的数据集都分为训练数据、验证数据(从训练数据分离出来)和测试数据,非常适用于有监督的机器学习算法或者深度学习算法,如LSTM等。文件格式为.xml,其数据统计如下:
    这里写图片描述
    下载地址为: SemEval-2014 Task 4数据集

    1.3 Citysearch corpus

    该语料库为餐馆评论数据,收集自Citysearch New York网站,可用于细粒度的情感分析任务中,即aspect extraction任务当中。在本资源中,分为原始数据和处理后数据两部分,其统计如下:
    这里写图片描述
    其中,训练数据不包含标注信息;测试数据中包含标注信息,标注类别为预先定义的6个aspect类型,依次为Food、Staff、Ambience、Price、Anecdotes和Miscellaneous,可用于验证模型的有效性;在处理后数据文件夹中,还包含对应的词嵌入模型。
    下载地址:Citysearch corpus

    1.4 BeerAdvocate

    该语料为啤酒评论数据,共150W条评论,可用于细粒度的情感分析任务当中,即aspect extraction任务当中。
    由于资源大小的限制,本资源分为原始数据和处理后的数据。在原始数据当中,包含1000条带标注信息的评论,共9245条句子,标注类别为Feel、Look、Smell、Taste和Overall五种Aspect类别;在处理后数据当中,包含相应的词嵌入模型。
    原始数据下载地址:BeerAdvocate–Source
    处理后数据下载地址:BeerAdvocate–Preprocess

    1.5 NLPCC2014评估任务2_基于深度学习的情感分类

    该语料共包含中文和英文两种语言,主要是商品评论,评论篇幅都比较短,可以被应用于篇章级或者句子级的情感分析任务。数据集被分为训练数据、测试数据、带标签的测试数据三个文件,共有正向和负向两种极性。
    下载地址:NLPCC2014评估任务2_基于深度学习的情感分类

    1.6 NLPCC2013评估任务_中文微博观点要素抽取

    该语料主要用于识别微博观点句中的评价对象和极性。训练数据由两个微博主题组成,每个主题各一百条,内含标注及数据说明。
    下载地址:NLPCC2013评估任务_中文微博观点要素抽取

    1.7 NLPCC2013评估任务_中文微博情绪识别

    该语料主要用于识别出整条微博所表达的情绪,不是简单的褒贬分类,而是涉及到多个细粒度情绪类别(例如悲伤、忧愁、快乐、兴奋等),属于细粒度的情感分类问题。
    下载地址:NLPCC2013评估任务_中文微博情绪识别

    1.7 NLPCC2013评估任务_跨领域情感分类

    给定已标注倾向性的英文评论数据和英文情感词典,要求只利用给出的英文情感资源进行中文评论的情感倾向分类。该任务注重考察多语言环境下情感资源的迁移能力,有助于解决不同语言中情感资源分布的不均衡问题。
    下载地址:NLPCC2013评估任务_跨领域情感分类

    1.8 NLPCC2012评估任务_面向中文微博的情感分析

    该语料主要用于中文微博中的情感句识别、情感倾向性分析和情感要素抽取。
    下载地址:NLPCC2012评估任务_面向中文微博的情感分析

    1.9 康奈尔大学影评数据集

    该语料由电影评论组成,其中持肯定和否定态度的各1,000 篇;另外还有标注了褒贬极性的句子各5331句,标注了主客观标签的句子各5000句。该语料可以被应用于各种粒度的情感分析,如词语、句子和篇章级情感分析研究中。
    下载地址:康奈尔大学影评数据集

    1.10 MPQA

    Janyce Wiebe等人所开发的MPQA(Multiple-Perspective QA)库:包含535 篇不同视角的新闻评论,它是一个进行了深度标注的语料库。其中标注者为每个子句手工标注出一些情感信息,如观点持有者、评价对象、主观表达式以及其极性与强度。
    下载地址:MPQA

    1.11 Twitter Comments

    该语料主要来自于Twitter上面的评论数据集,分为训练数据和测试数据,分别有6248条和692条Twitter。在文件中,每条推特被分为三行,第一行为评论句子、第二行为评价对象、第三行为情感极性。通常每条句子只包含一个评价对象。在情感极性中,用-1、0、1分别代表负向、中性、正向,三个极性的条数分别在语料中占25%、50%、25%。该语料来自于以下工作。
    Paper:Dong L, Wei F, Tan C, et al. Adaptive Recursive Neural Network for Target-dependent Twitter Sentiment Classification[C]// Meeting of the Association for Computational Linguistics. 2014:49-54.
    下载地址:Twitter Comments

    2 词典

    2.1 大连理工大学中文情感词汇本体库(无辅助情感分类)

    中文情感词汇本体库是大连理工大学信息检索研究室在林鸿飞教授的指导下经过全体教研室成员的努力整理和标注的一个中文本体资源。该资源从不同角度描述一个中文词汇或者短语,包括词语词性种类、情感类别、情感强度及极性等信息。
    中文情感词汇本体的情感分类体系是在国外比较有影响的Ekman的6大类情感分类体系的基础上构建的。在Ekman的基础上,词汇本体加入情感类别“好”对褒义情感进行了更细致的划分。最终词汇本体中的情感共分为7大类21小类。
    构造该资源的宗旨是在情感计算领域,为中文文本情感分析和倾向性分析提供一个便捷可靠的辅助手段。中文情感词汇本体可以用于解决多类别情感分类的问题,同时也可以用于解决一般的倾向性分析的问题。
    其数据格式介绍如下:
    这里写图片描述
    下载地址为:http://download.csdn.net/download/qq280929090/10215956
    由于在某些情感分析文献当中,需要对情感程度进行归一化,将随后添加归一化版本。
    本版本去掉辅助情感分类,主要是由于其对实验帮助非常小,而且增加了处理的复杂性。

    2.2 台湾大学中文情感极性词典(NTUSD)

    该词典为简体的情感极性词典,共包含2812个正向情感词和8278个负向情感词,可以用于二元情感分类任务当中。
    下载地址为:http://download.csdn.net/download/qq280929090/10215985

    2.3 清华大学李军中文褒贬义词典(TSING)

    该词典共包含褒义词5568个和贬义词4470个。
    下载地址:http://download.csdn.net/download/qq280929090/10216029

    2.4 知网情感词典(HOWNET)

    该词典主要分为中文和英文两部分,共包含如下数据:中文正面评价词语3730个、中文负面评价词语3116个、中文正面情感词语836个、中文负面情感词语1254个;英文正面评价词语3594个、英文正面评价词语3563个、英文正面情感词语769个、英文负面情感词语1011个。
    下载地址:http://download.csdn.net/download/qq280929090/10216044

    2.5 知网程度副词词典(HOWNET)

    该词典主要发呢为中文和英文两部分,共包含如下数据:中文程度级别词语219个、英文程度级别词语170个。
    下载地址:http://download.csdn.net/download/qq280929090/10216051

    2.6 知网主张词语词典(HOWNET)

    该词典主要发呢为中文和英文两部分,共包含如下数据:中文主张词语38个、英文主张词语35个。
    下载地址:http://download.csdn.net/download/qq280929090/10216055

    3 预训练词嵌入

    3.1 Google预训练词嵌入

    3.2 Glove预训练词嵌入

    该预训练词嵌入根据斯坦福大学提出的Glove模型进行训练,主要包括如下四个文件:
    1) glove.6B:Wikipedia 2014 + Gigaword 5 (6B tokens, 400K vocab, uncased, 50d, 100d, 200d, & 300d vectors, 822 MB download)
    2) glove.42B.300d:Common Crawl (42B tokens, 1.9M vocab, uncased, 300d vectors, 1.75 GB download)
    3)glove.840B.300d:Common Crawl (840B tokens, 2.2M vocab, cased, 300d vectors, 2.03 GB download)
    4)glove.twitter.27B:Twitter (2B tweets, 27B tokens, 1.2M vocab, uncased, 25d, 50d, 100d, & 200d vectors, 1.42 GB download)
    下载地址为:Glove预训练词嵌入

    展开全文
  • 基于情感词典的情感分析

    万次阅读 多人点赞 2018-01-19 23:05:26
    思路以及代码都来源于下面两篇文章:一个不知死活的胖子:Python做文本情感分析之情感极性分析 Ran Fengzheng 的博客:基于情感词典的文本情感极性分析相关代码基于情感词典的情感分析应该是最简单的情感分析方法了...
  • NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分) 输出结果 1、测试对象 data1= '今天上海的天气真好!我的心情非常高兴!如果去旅游的话我会非常兴奋!和你一起去旅游我会更加...
  • 中文情感分析

    千次阅读 2019-09-19 12:18:03
    其实我的理解就是情感分析就是一个分类问题。这里我爬取了京东小米9的用户评论,正面和负面的评价各1000条,爬虫和整体的代码我放在了 GitHub 。然后我把预训练的词向量文件放在了 百度网盘,提取码:rxci。 我们一...
  • 分类情感分析

    千次阅读 2017-05-02 23:12:07
    此课程是Coursera 华盛顿大学开设的Machine Learning 专项的第一部分内容,仅做笔记、学习使用。 背景 通过用户对amazon 产品的评价,通过...对于句子进行分词,将带有情感倾向的词语拿出来进行权重(weight), e.g.
  • 情感分类情感分析技术的核心问题,其目标是判断评论中的情感取向,按区分情感的粒度可分为两种分类问题: 1)正/负(positive/negative)二分类或者正面/负面/中立(positive/negative/neutral)三分类。 2)多元...
  • 文章目录自然语言处理NLTKPython文本分析工具NLTK情感分析文本相似度文本分类分类预测模型:朴素贝叶斯实战案例:微博情感分析 见本博客分类 自然语言处理NLTKPython文本分析工具NLTK 情感分析 文本相似度 文本分类 ...
  • 微博情感分析分类

    千次阅读 2019-03-23 10:31:58
    中文八分类贝叶斯 数据为(30000,2) 训练: import pandas as pd import jieba from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB from sklearn....
  • 基于Python的情感分析案例

    万次阅读 多人点赞 2018-01-09 12:52:18
    情感分析:又称为倾向性分析和意见挖掘,它是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程,其中情感分析还可以细分为情感极性(倾向)分析,情感程度分析,主客观分析等。 情感极性分析的目的是对...
  • pyhanlp 文本分类情感分析

    千次阅读 2018-09-24 20:26:45
    这一次我们需要利用HanLP进行文本分类情感分析。同时这也是pyhanlp用户指南的倒数第二篇关于接口和Python实现的文章了,再之后就是导论,使用技巧汇总和几个实例落。真是可喜可贺啊。 文本分类 在HanLP中,文本分类...
  • 一、使用NLTK Vader SentimentAnalyser分析NLTK附带了一个内置的情感分析器模块——nltk.sentiment.vader,参考1,参考2。它可以分析一段文字或句子下情绪的正面、负面和中性极性分类。其中,compound表示复杂程度,...
  • 本实验基于贝叶斯分类器对采集的微博数据进行情感分析,从中提取出不同的情感类别。
  • DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感) 目录 CNN算法设计思路 代码实现 CNN算法设计思路 b 代码实现 后期更新…… ...
  • 大数据挖掘DT数据分析 公众号: datadw 情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中。通过这种方式,情感分析可以被视为利用一些情感得分指标来量化定性...
  • 对话情绪识别适用于聊天、客服等多个场景,能够帮助企业更好地把握对话质量、改善产品的用户交互体验,也能分析客服服务质量、降低人工质检成本。 对话情绪识别(Emotion Detection,简称EmoTect),专注于识别智能...
  • 本文语料库特指文本分类语料库,对应IDataSet接口。而文本分类语料库包含两个概念:文档和类目。一个文档只属于一个类目,一个类目可能含有多个文档。比如搜狗文本分类语料库迷你版.zip,下载前请先阅读搜狗实验室...

空空如也

1 2 3 4 5 ... 20
收藏数 9,368
精华内容 3,747
关键字:

情感分类