精华内容
参与话题
问答
  • 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)提出了一种集成确定性和不确定性样本选择策略的方法,用于主动选择不平衡数据中信息量大的样本以提高分类性能。其中,确定性和不确定性分布由两个分开的特征子空间进行控制,不确定性用于选择信息量大的样本,确定性用于选择尽量平衡的数据。此外,对于确定性判断出来的“多类”非标注样本进行自动标注,进一步降低样本的标注规模。实验证明,在同样的标注情况下该方法能够大幅度提高不平衡数据的分类性能。

     

    展开全文
  • python nlp情感分析之极性分析

    千次阅读 2019-12-30 21:36:02
    最近与某高校新闻媒体学院合作进行大数据情感分析,学院老师要求采用情感字典进行情感极性分析,之前做项目情感分析都是采用深度模型做的,这次打算使用情感字典进行情感极性分析,并且以后可以用来收集数据。...

    背景

    目前做情感分析基本使用机器学习或者深度学习进行情感分析,准确率已经很高了。最近与某高校新闻媒体学院合作进行大数据情感分析,学院老师要求采用情感字典进行情感极性分析,之前做项目情感分析都是采用深度模型做的,这次打算使用情感字典进行情感极性分析,并且以后可以用来收集数据。

    1.数据准备

    1.1 情感词典准备

    话说是基于情感词典的极性分析,当然要有情感字典,可以采用下面的链接直接下载。

    https://bosonnlp.com/resources/BosonNLP_sentiment_score.zip

    解压缩之后可以看到BosonNLP_sentiment_score.txt文件,里面的数据如下:

    如虎添翼 6.37503943135
    定购 6.37503943135
    富婆团 6.37503943135
    赖世荣 6.37503943135

    这里挑选了几个正面的词语,分为两列,第一列为情感词,第二列情感词的情感值,越大代表越正面。

    1.2 否定词

    文本情感分类(一):传统模型中提供了一个情感极性词典的下载包,包中带了一个否定词的txt。

    https://kexue.fm/usr/uploads/2017/09/1922797046.zip

    不大
    不丁点儿
    不甚
    不怎么
    聊
    没怎么
    不可以
    怎么不
    几乎不
    从来不
    从不
    不用
    不曾
    不该
    不必
    不会
    不好
    不能
    很少
    极少
    没有
    不是
    难以
    放下
    扼杀
    终止
    停止
    放弃
    反对
    缺乏
    缺少
    不
    甭
    勿
    别
    未
    反
    没
    否
    木有
    非
    无
    请勿
    无须
    并非
    毫无
    决不
    休想
    永不
    不要
    未尝
    未曾
    毋
    莫
    从未
    从未有过
    尚未
    一无
    并未
    尚无
    从没
    绝非
    远非
    切莫
    绝不
    毫不
    禁止
    忌
    拒绝
    杜绝
    弗
    

    1.3 程度副词词典

    程度副词可以使用从这里《知网》情感分析用词语集(beta版)下载,里面包含程度级别的词语,但是里面的格式是汇总的形式,需要转换为词典的形式,这里做了一个简单的程度副词标记,大于1,表示情感加强,小于1,表示情感弱化,下面主要按照极其1.8,超1.6,很1.5,较1,稍0.7,欠0.5进行了一个简单的标记,如下所示。也可以根据自己的需求及及进行修改。

    百分之百,1.8
    倍加,1.8
    备至,1.8
    不得了,1.8
    不堪,1.8
    不可开交,1.8
    不亦乐乎,1.8
    不折不扣,1.8
    彻头彻尾,1.8
    充分,1.8
    到头,1.8
    地地道道,1.8
    非常,1.8
    极,1.8
    极度,1.8
    极端,1.8
    极其,1.8
    极为,1.8
    截然,1.8
    尽,1.8
    惊人地,1.8
    绝,1.8
    绝顶,1.8
    绝对,1.8
    绝对化,1.8
    刻骨,1.8
    酷,1.8
    满,1.8
    满贯,1.8
    满心,1.8
    莫大,1.8
    奇,1.8
    入骨,1.8
    甚为,1.8
    十二分,1.8
    十分,1.8
    十足,1.8
    死,1.8
    滔天,1.8
    痛,1.8
    透,1.8
    完全,1.8
    完完全全,1.8
    万,1.8
    万般,1.8
    万分,1.8
    万万,1.8
    无比,1.8
    无度,1.8
    无可估量,1.8
    无以复加,1.8
    无以伦比,1.8
    要命,1.8
    要死,1.8
    已极,1.8
    已甚,1.8
    异常,1.8
    逾常,1.8
    贼,1.8
    之极,1.8
    之至,1.8
    至极,1.8
    卓绝,1.8
    最为,1.8
    佼佼,1.8
    郅,1.8
    綦,1.8
    齁,1.8
    最,1.8
    不过,1.5
    不少,1.5
    不胜,1.5
    惨,1.5
    沉,1.5
    沉沉,1.5
    出奇,1.5
    大为,1.5
    多,1.5
    多多,1.5
    多加,1.5
    多么,1.5
    分外,1.5
    格外,1.5
    够瞧的,1.5
    够戗,1.5
    好,1.5
    好不,1.5
    何等,1.5
    很,1.5
    很是,1.5
    坏,1.5
    可,1.5
    老,1.5
    老大,1.5
    良,1.5
    颇,1.5
    颇为,1.5
    甚,1.5
    实在,1.5
    太,1.5
    太甚,1.5
    特,1.5
    特别,1.5
    尤,1.5
    尤其,1.5
    尤为,1.5
    尤以,1.5
    远,1.5
    着实,1.5
    曷,1.5
    碜,1.5
    大不了,0.8
    多,0.8
    更,0.8
    更加,0.8
    更进一步,0.8
    更为,0.8
    还,0.8
    还要,0.8
    较,0.8
    较比,0.8
    较为,0.8
    进一步,0.8
    那般,0.8
    那么,0.8
    那样,0.8
    强,0.8
    如斯,0.8
    益,0.8
    益发,0.8
    尤甚,0.8
    逾,0.8
    愈,0.8
    愈 ... 愈,0.8
    愈发,0.8
    愈加,0.8
    愈来愈,0.8
    愈益,0.8
    远远,0.8
    越 ... 越,0.8
    越发,0.8
    越加,0.8
    越来越,0.8
    越是,0.8
    这般,0.8
    这样,0.8
    足,0.8
    足足,0.8
    点点滴滴,0.7
    多多少少,0.7
    怪,0.7
    好生,0.7
    还,0.7
    或多或少,0.7
    略,0.7
    略加,0.7
    略略,0.7
    略微,0.7
    略为,0.7
    蛮,0.7
    稍,0.7
    稍稍,0.7
    稍微,0.7
    稍为,0.7
    稍许,0.7
    挺,0.7
    未免,0.7
    相当,0.7
    些,0.7
    些微,0.7
    些小,0.7
    一点,0.7
    一点儿,0.7
    一些,0.7
    有点,0.7
    有点儿,0.7
    有些,0.7
    半点,0.5
    不大,0.5
    不丁点儿,0.5
    不甚,0.5
    不怎么,0.5
    聊,0.5
    没怎么,0.5
    轻度,0.5
    弱,0.5
    丝毫,0.5
    微,0.5
    相对,0.5
    不为过,1.6
    超,1.6
    超额,1.6
    超外差,1.6
    超微结构,1.6
    超物质,1.6
    出头,1.6
    多,1.6
    浮,1.6
    过,1.6
    过度,1.6
    过分,1.6
    过火,1.6
    过劲,1.6
    过了头,1.6
    过猛,1.6
    过热,1.6
    过甚,1.6
    过头,1.6
    过于,1.6
    过逾,1.6
    何止,1.6
    何啻,1.6
    开外,1.6
    苦,1.6
    老,1.6
    偏,1.6
    强,1.6
    溢,1.6
    忒,1.6

    1.4 停止词

    停用词词典有很多,可以使用科院计算所中文自然语言处理开放平台发布了有1208个停用词的中文停用词表,也可以使用其他的停用词词表,但是要注意一下需要将否定词或者是程度副词的词典过滤掉,不然否定词在去除停用词的时候都过滤掉了,就缺少了一些程度副词或者否定词。如果需要过滤的话可以使用下面的方面过滤。

    #生成stopword生成,需要去除一些否定词和程度词
    stopwords = set()
    fr = codecs.open('data/中文停用词表.txt', 'r', 'utf-8')
    for word in fr:
        stopwords.add(word.strip())
    #否定词文件    
    not_word_file = open('data/notDict.txt', 'r+', encoding='utf-8')
        # 由于否定词只有词,没有分值,使用list即可
    not_word_list = not_word_file.readlines()
    not_word_list = [w.strip() for w in not_word_list]
    #程度副词文件
    degree_file = open('data/degree.txt', 'r+', encoding='utf-8')
    degree_list = degree_file.readlines()
    degree_list = [d.split(",")[0] for d in degree_list]
    #生成新的停止词
    with open("data/stopwords.txt", "w") as f:
        for s in stopwords:
            if (s not in not_word_list) and (s not in degree_list):
                f.write(s+"\n")

    2.数据预处理

    2.1 jieba分词

    直接使用jieba分词工具进行分词

    2.2 去除停用词

    在jieba分词之后过滤掉停用词

    def seg_word(sentence):
        """使用jieba对文档分词"""
        seg_list = jieba.cut(sentence)
        seg_result = []
        for w in seg_list:
            seg_result.append(w)
        # 读取停用词文件
        stopwords = set()
        fr = codecs.open('data/stopwords.txt', 'r', 'utf-8')
        for word in fr:
            stopwords.add(word.strip())
        fr.close()
        # 去除停用词
        return list(filter(lambda x: x not in stopwords, seg_result))
    

    3 模型构建

    3.1 找出文本中的情感词,否定词和程度副词

    def classify_words(word_dict):
        """词语分类,找出情感词、否定词、程度副词"""
        # 读取情感字典文件
        sen_file = open('BosonNLP_sentiment_score.txt', 'r+', encoding='utf-8')
        # 获取字典文件内容
        sen_list = sen_file.readlines()
        # 创建情感字典
        sen_dict = defaultdict()
        # 读取字典文件每一行内容,将其转换为字典对象,key为情感词,value为对应的分值
        for s in sen_list:
            # 每一行内容根据空格分割,索引0是情感词,索引1是情感分值(情感词典文件中有一行是空行,因此执行的时候会报错,注意处理一下空行,这里没有处理)
            sen_dict[s.split(' ')[0]] = s.split(' ')[1]
     
        # 读取否定词文件
        not_word_file = open('notDic.txt', 'r+', encoding='utf-8')
        # 由于否定词只有词,没有分值,使用list即可
        not_word_list = not_word_file.readlines()
     
        # 读取程度副词文件
        degree_file = open('degree.txt', 'r+', encoding='utf-8')
        degree_list = degree_file.readlines()
        degree_dic = defaultdict()
        # 程度副词与情感词处理方式一样,转为程度副词字典对象,key为程度副词,value为对应的程度值
        for d in degree_list:
            degree_dic[d.split(',')[0]] = d.split(',')[1]
     
        # 分类结果,词语的index作为key,词语的分值作为value,否定词分值设为-1
        sen_word = dict()
        not_word = dict()
        degree_word = dict()

    3.2 计算分数

    规则:分数采用情感词的分数和计算

    遍历所有的情感词,查看当前情感词的前面是否有否定词和程度副词,如果没有否定词,就对当前情感词乘以1,如果有否定词或者有多个否定词,可以乘以(-1)^否定词的个数;如果有程度副词,就在当前情感词前面乘以程度副词的程度等级。

    伪代码如下:

    finalSentiScore = (-1) ^ (num of notWords) * degreeNum * sentiScore
    finalScore = sum(finalSentiScore)
    def socre_sentiment(sen_word, not_word, degree_word, seg_result):
        """计算得分"""
        # 权重初始化为1
        W = 1
        score = 0
        # 情感词下标初始化
        sentiment_index = -1
        # 情感词的位置下标集合
        sentiment_index_list = list(sen_word.keys())
        # 遍历分词结果(遍历分词结果是为了定位两个情感词之间的程度副词和否定词)
        for i in range(0, len(seg_result)):
            # 如果是情感词(根据下标是否在情感词分类结果中判断)
            if i in sen_word.keys():
                # 权重*情感词得分
                score += W * float(sen_word[i])
                # 情感词下标加1,获取下一个情感词的位置
                sentiment_index += 1
                if sentiment_index < len(sentiment_index_list) - 1:
                    # 判断当前的情感词与下一个情感词之间是否有程度副词或否定词
                    for j in range(sentiment_index_list[sentiment_index], sentiment_index_list[sentiment_index + 1]):
                        # 更新权重,如果有否定词,取反
                        if j in not_word.keys():
                            W *= -1
                        elif j in degree_word.keys():
                            # 更新权重,如果有程度副词,分值乘以程度副词的程度分值
                            W *= float(degree_word[j])
            # 定位到下一个情感词
            if sentiment_index < len(sentiment_index_list) - 1:
                i = sentiment_index_list[sentiment_index + 1]
        return score

    3.3 计算每句话的分数

    def setiment_score(sententce):
        # 1.对文档分词
        seg_list = seg_word(sententce)
        # 2.将分词结果列表转为dic,然后找出情感词、否定词、程度副词
        sen_word, not_word, degree_word = classify_words(list_to_dict(seg_list))
        # 3.计算得分
        score = socre_sentiment(sen_word, not_word, degree_word, seg_list)
        return score
    

    3.4 计算整个新闻的情感值

    这里对整个文本根据标点符号进行分割,然后求整个文本的平均值。

    def sem_analyses(content):
    
        pattern = r',|\.|/|;|\'|`|\[|\]|<|>|\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|,|。|、|;|‘|’|【|】|·|!| |…|(|)'
        test_text = 'b,b.b/b;b\'b`b[b]b<b>b?b:b"b{b}b~b!b@b#b$b%b^b&b(b)b-b=b_b+b,b。b、b;b‘b’b【b】b·b!b b…b(b)b'
        result_list = re.split(pattern, content)
        scores = 0
        for text in result_list:
            score = setiment_score(text)
            scores += score
        print(scores/len(result_list))
        return scores/len(result_list)
    #     print(result_list)
    content = "所长世界观政教分离才是伊拉克人民的美好未来方向,伊拉克没有共产党,不会有春天。伊拉克需要一个社会主义特色系统,宗教归宗教,宗教在心中,但人总不能用宗教治国吧。宗教是人的信仰,但治国是人类的发展方向,定好治国标准和信仰干涉治国的范围后,我相信伊拉克会有不一样未来,会非常美好。总之而言,伊拉克必须依法治国为主,依教为辅。"
    
    sem_analyses(content)

    以上就是根据情感词对文本数据进行极性分析。

     

    Reference:

    https://blog.csdn.net/cjjwwss/article/details/79953397

    https://blog.csdn.net/lom9357bye/article/details/79058946

    展开全文
  • NLP情感分析——KNN算法

    千次阅读 2018-05-07 17:13:02
    一、 基本概念文本情感分析是对文本中的某段已知文字的两极性进行分类,判断出此文字中表述的观点是积极的、消极的、还是中性的情绪。目前的研究方法主要有两类:一种是基于情感词典的方法,另一种是基于机器学习的...

    一、 基本概念


    文本情感分析是对文本中的某段已知文字的两极性进行分类,判断出此文字中表述的观点是积极的、消极的、还是中性的情绪。

    目前的研究方法主要有两类:一种是基于情感词典的方法,另一种是基于机器学习的方法。前者需要用到标注好的情感词典(英文/中文),通过情感词的褒贬性判断文本的情感倾向。后者是将传统的文本分类方法如朴素贝叶斯(NB)、k近邻(kNN)、最大熵、支持向量机(SVM)等算法应用于情感分类。需要大量的人工标注的语料作为训练集,通过提取文本特征,构建分类器来实现情感的分类。

     

    二、KNN算法

    在各种分类算法中,我选择了K-Nearest Neighbor(KNN) 最邻近分类算法进行简单的学习了解。KNN分类算法的思路是:如果一个样本在特征空间中的k个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别。核心思想俗称“随大流”,基于实例的学习(instance-based learning)和懒惰学习(lazy learning)。懒惰学习:指的是在训练是仅仅是保存样本集的信息,直到测试样本到达是才进行分类决策。

    KNN算法的优缺点如下:

    优点:(1)简单、易实现、易理解、无需参数估计及训练;

    (2)适用于对稀有时间进行分类;

    (3)特别适用于多分类问题(multi-modal,分类对象具有多个类别标签),比SVM表现要好。

    缺点:(分类)

    (1)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本 占多数。 改进方法:采用权值,与该样本距离小的邻居权值大;

    (2)计算量较大,对每一个待分类的样本都要计算它与全体已知样本的距离进行排序继而求得K个最近邻点。目前常用的改进方法,事先对已知样本点进行剪辑,去除对分类作用不大的样本。该改进算法比较适用于容量大的类域,而容量较小的类域容易产生误分。

     

    三、算法实例

    一个简单的KNN算法的例子(Python)如下:

    1.        import numpy as np    

    2.        from sklearn import neighbors     #需要加载numpy,sklearn包,这两个都是机器学习或数据挖掘常用的包。       

    5.        knn = neighbors.KNeighborsClassifier() #得knn分类器    

    6.        data = np.array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]])  #data对应着打斗次数和接吻次数  

    7.        labels = np.array([1,1,1,2,2,2]) #labels则是对应Romance和Action  

    8.        knn.fit(data,labels) #导入数据进行训练   

    9.        print(knn.predict([[18,90]])) #传入参数为多维数组


    假设电影数据如下:

    电影名称

    打斗次数

    接吻次数

    电影类型

    A

    3

    104

    Romance

    B

    2

    100

    Romance

    C

    1

    81

    Romance

    D

    101

    10

    Action

    E

    99

    5

    Action

    F

    98

    2

    Action

    未知

    18

    90

    待求

    注:标红色的未知电影是需要进行预测属于浪漫片还是动作片。

     

    将数据中的“打斗次数”属性标记为X,“接吻次数”标记为Y,这样上述数据都能化为坐标轴中的一点;再将所有点与“未知”的点G进行距离计算,因为这个例子是二维的,因此这里使用

    如果是多维的话,可以使用:

    。以此类推进行计算,近似为整数,最后得到结果:

    a:20

    b:18

    c:19

    d:115

    e:117

    f:118

    因此可以看出,最近的三个点是ABC三点,而ABC三点都是Romance类型。

     

    引申:如果ABC中三个电影分类有一个不是Romance怎么办。遵循少数服从多数的投票法则(majority-voting),让未知实例归类为最邻近样本中最多数的类别。

    展开全文
  • 一、文本分类 任务目标:在给定的分类体系中,将文本分到指定的某个或者几个类别当中。 分类体系:一般由人工构造 产品应用:如意图识别,根据query,确认query所属的类别,如娱乐、新闻、体育等。...

    一、文本分类

    任务目标:在给定的分类体系中,将文本分到指定的某个或者几个类别当中。

    分类体系:一般由人工构造

    产品应用:如意图识别,根据query,确认query所属的类别,如娱乐、新闻、体育等。

    技术发展

    (1)基于规则的方法:依赖专家设计规则,准确率不高,泛化能力弱

    (2)传统机器学习的方法(特征工程+算法):SVM/ Naive Bayes/LR

    (3)深度学习的方法(DNN、预训练):fast text/TextCNN/LSTMBERT/ERNIE

    评价指标

    (1)Accuracy,准确率 =预测正确的样本数/总样本数

          关注整体效果,适合均衡的数据

    (2)Recall,召回率=预测正确的样本数/标注的样本数

           关注模型预测的全不全,漏了哪些东西

    (3)Precision,精确率=预测正确的样本数/预测出来的样本数

            关注模型预测的准不准

    (4)F1.综合指标=2*P*R/(P+R)

            综合指标,同时考虑P和R

    二、情感分析的背景

       百科或新闻一类的文本具有事实性;评论或社交网站的文本具有用户性

    情感分析的应用场景

        消费决策:通过在购物网站上的评论确定商品的好评度

        舆情分析:社交网站上通过对某一热点的分析确定舆论方向是积极还是消极

    情感分析技术架构

    情感分类

    给定一个文本或实体,判断其情感的极性,包括积极、消极和中性。分为句子级、实体级和篇章级

    (1)基于规则的方法:情感词典(正向情感词典、反向情感词典)

    (2)经典分类问题

             传统方法:最大熵、SVM

             特征:情感词、n-gram、POS

    (3)最新进展

            基于深度学习:BiLSTM、CNN

            基于预训练:BERT、ERNIE

    情感分类常用模型

    (1)常用模型-BOW

    (2)常用模型-CNN

    (3)常用模型-BiLSTM

    预训练模型

     

     

       注  :NLPCC2014微博情感分析数据集 https://github.com/qweraqq/NLPCC2014_sentiment 

    展开全文
  • 2020美赛C题我使用的情感分析方法 目前,一种快速的文本情感分析程序支持英语和中文。 实现原理如下: 加载情感词典(分为正词/负词/度词/负词)和切分。 正负词的情感价值是通过关键词匹配来积累的。正负词的默认...
  • nlp情感分析经典书籍推荐In this tutorial, I will explain how to calculate the sentiment of a book through a Supervised Learning technique, based on Support Vector Machines (SVM). 在本教程中,我将解释...
  • nlp情感分析经典书籍推荐A simple tutorial to analyse the sentiment of a book in Python 一个简单的教程,用Python分析一本书的情感 入门 (Getting Started) In this tutorial, I will show you how to apply ...
  • https://zh.d2l.ai/chapter_natural-language-processing/sentiment-analysis-rnn.html
  • 此前,百度大脑正式推出“EasyDL 深度学习实战营”系列课程,旨在帮助更多开发者快速 Get AI 模型训练与应用的技能。 第一节课程上线当天,开发者破千,小伙伴们纷纷上线打卡听课,我们希望和更多开发者一起“让科技...
  • NLP作为AI当前最热门的子领域,目前重点是在使计算机能够理解和处理人类语言。百度、阿里、腾讯等大厂对于这方面相关专业人才需求很高。随着近年来UCG内容的增加,NLP在很大程度上需要解决...
  • 情感分类又称情感倾向性分析,是指对给定的文本,识别其中主观性文本的倾向是肯定还是否定的,或者说是正面还是负面的,是情感分析领域研究最多的。 分析目的:对优酷电视剧《回答明朝当王爷之杨凌传》的评论进行...
  • 主要参考文献CSDN:基于机器学习的NLP情感分析(一)---- 数据采集与词向量构造方法(京东商品评论情感分析)0 情感分析(Sentiment Analysis)情感分析(Sentiment analysis),又称倾向性分析,意见抽取(Opinion ...
  • 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评...
  • 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评...
  • 1 赛题描述 ...本练习赛所用数据,是名为「Roman Urdu DataSet」的公开数据集。 这些数据,均为文本数据。原始数据的文本,对应三类情感标签:Positive, Negative, Netural。 本练习赛,移除了标签为Netu...
  • 基于机器学习的NLP情感分析(二)—- 分类问题 前文提到了如何把一个文本转换为相应的词向量,本文讨论的是如何进行分类。 feature相关性首先,需要看看我之前选出来的feature,是否能够满足需求。这里其实有很多...
  • 基于机器学习的NLP情感分析(一)—- 数据采集与词向量构造方法 最近实习期间在做一个对新闻文本情感分析的项目。在此,用京东的商品评论练手,从数据采集到模型实现完整地写一遍,以备未来回顾所需。事实上,我...
  • 目前,情感分析在中文自然语言处理(Natural Language Processing)中比较火热,很多场景下,我们都需要用到情感分析。比如,做金融产品量化交易,需要根据爬取的舆论数据...

空空如也

1 2 3 4 5 ... 20
收藏数 1,112
精华内容 444
关键字:

nlp情感分析