精华内容
下载资源
问答
  • 情感分析语料

    2013-07-30 20:31:55
    它是谭泽东先生整理的关于酒店评论,图书评论和笔记本评论的带有情感标注的语料,其中每一种类型又有褒义和贬义个两个,每一个大约有2000条语料
  • 这是覃建波老师的酒店评论数据集,是公认的情感分析语料数据,做中文自然语言处理情感分析所用。
  • 中文情感分析语料

    2017-08-02 17:50:07
    中文情感分析语料库,包含 酒店、服装、水果、平板、洗发水 等 5 个领域的评价数据,每个领域各包含 5000 条正面和负面评价,数据抓取于 携程网 和 京东 ,仅供科研学习之用,欢迎下载使用!
  • 短文本情感分析语料,某外卖平台收集的用户评价,正负各8000条,共16000条
  • 中文5大领域情感分析语料,包含服装、酒店、网购、洗发水等5个领域的评价,各个领域正负各2000条数据。
  • IMDB情感分析语料

    2020-04-03 19:31:56
    IMDB情感分析数据集 Github-Python-NLP-核心技术与算法源码andIMDB情感分析语料
    展开全文
  • 3、情感分析停用词表 4、结巴分词自定义词典 5、常用语词典,包括流行新词,网络流行词,手机词汇,粤语,潮语潮词、阿里巴巴-通讯产品词汇等 ## 手机评论数据 1、HTC手机评论,包括打分,共302篇1-5...
  • python 情感分析 语料

    2017-08-31 16:48:49
    构造该资源的宗旨是在情感计算领域,为中文文本情感分析和倾向性分析提供一个便捷可靠的辅助手段。中文情感词汇本体可以用于解决多类别情感分类的问题,同时也可以用于解决一般的倾向性分析的问题。
  • 中文情感分析语料库大全-带下载地址

    [中文情感分析语料库大全-带下载地址]网址

    展开全文
  • 情感分析语料.rar

    2019-10-18 15:59:14
    谭松波整理的中文酒店评论语料。数据规模有10000篇,每条评论已经标注好情感方向。
  • 包含情感词(积极,消极,程度词,主张词),情感词典(大连理工,HowNet),中文情感挖掘酒店评论语料
  • 语料规模为10000篇。语料从携程网上自动采集,并经过整理而成。为了方便起见,语料被整理成4个子集: 1.ChnSentiCorp-Htl-ba-2000: 平衡语料,正负类各1000篇。 2.ChnSentiCorp-Htl-ba-4000: 平衡语料,正负类各2000...
  • 中文情感分析语料

    2018-01-30 13:44:08
    该资源包含计算机,酒店,蒙牛,热水器,手机,书籍,等方面,已分好类,有标签。总共将近30000条。还有搜狗新闻分类,和tr-croup-answer
  • 数据分析
  • 语料库的数据还是很多的,全部训练完后你的情感分析精度能提升很多。推荐下载。内含正负向语料库。总体来说价值还是挺高的
  • 微博情感分析语料.rar

    2019-08-09 10:41:33
    谷歌Google 中文BERT中文预训练模型 chinese_L-12_H-768_A-12.zip。BERT本质上是一个两段式的NLP模型。第一个阶段叫做:Pre-training,跟WordEmbedding类似,利用现有无标记的语料...可以测试对这个语料库进行分析
  • 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析、归纳。情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法。基于情感知识的方法通过一些已有的情感词典计算文本的情感极性...

    情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析、归纳。情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法。基于情感知识的方法通过一些已有的情感词典计算文本的情感极性(正向或负向),其方法是统计文本中出现的正、负向情感词数目或情感词的情感值来判断文本情感类别;基于机器学习的方法利用机器学习算法训练已标注情感类别的训练数据集训练分类模型,再通过分类模型预测文本所属情感分类。本文采用机器学习方法实现对酒店评论数据的情感分类,利用Python语言实现情感分类模型的构建和预测,不包含理论部分,旨在通过实践一步步了解、实现中文情感极性分析。

    1 开发环境准备

    1.1 Python环境

    在python官网https://www.python.org/downloads/ 下载计算机对应的python版本,本人使用的是Python2.7.13的版本。后面,因为想要使用CNN算法与SVM算法结果进行比对,使用到了Tensorflow模块,而此模块在Windows系统中只有Python35版本,因此又加装了Python3.5的版本,即一台电脑同时存在连个python版本,可以分开使用。

    在本实例中前面直到SVM算法的实现都在Python27下完成,仅CNN算法在Python35下完成,特此说明。

    1.2 第三方模块

    本实例代码的实现使用到了多个著名的第三方模块,主要模块如下所示:

    2)Gensim

    用于主题模型、文档索引和大型语料相似度索引的python库,主要用于自然语言处理(NLP)和信息检索(IR)。下载地址:https://pypi.python.org/pypi/gensim

    本实例中的维基中文语料处理和中文词向量模型构建需要用到该模块。

    3)Pandas

    用于高效处理大型数据集、执行数据分析任务的python库,是基于Numpy的工具包。下载地址:https://pypi.python.org/pypi/pandas/0.20.1

    5)Scikit-learn

    用于机器学习的python工具包,python模块引用名字为sklearn,安装前还需要Numpy和Scipy两个Python库。官网地址:http://scikit-learn.org/stable/

    6)Matplotlib

    Matplotlib是一个python的图形框架,用于绘制二维图形。下载地址:https://pypi.python.org/pypi/matplotlib

    2 数据获取

    2.1 停用词词典

    2.2 正负向语料库

    文本从http://www.datatang.com/data/11936 下载“有关中文情感挖掘的酒店评论语料”作为训练集与测试集,该语料包含了4种语料子集,本文选用正负各1000的平衡语料(ChnSentiCorp_htl_ba_2000)作为数据集进行分析。

    3 数据预处理

    3.1 正负向语料预处理

    下载并解压ChnSentiCorp_htl_ba_2000.rar文件,得到的文件夹中包含neg(负向语料)和pos(正向语料)两个文件夹,而文件夹中的每一篇评论为一个txt文档,为了方便之后的操作,需要把正向和负向评论分别规整到对应的一个txt文件中,即正向语料的集合文档(命名为2000_pos.txt)和负向语料的集合文档(命名为2000_neg.txt)。

    具体Python实现代码如下所示:

    233da896226a

    1_process--文档处理代码

    运行完成后得到2000_pos.txt和2000_neg.txt两个文本文件,分别存放正向评论和负向评论,每篇评论为一行。文档部分截图如下所示:

    233da896226a

    酒店评论截图

    3.2 中文文本分词

    本文采用结巴分词分别对正向语料和负向语料进行分词处理。特别注意,在执行代码前需要把txt源文件手动转化成UTF-8格式,否则会报中文编码的错误。在进行分词前,需要对文本进行去除数字、字母和特殊符号的处理,使用python自带的string和re模块可以实现,其中string模块用于处理字符串操作,re模块用于正则表达式处理。

    具体实现代码如下所示:

    233da896226a

    2_cutsentence--结巴分词代码

    处理完成后,得到2000_pos_cut.txt和2000_neg_cut.txt两个txt文件,分别存放正负向语料分词后的结果。分词结果部分截图如下所示:

    233da896226a

    分词结果截图

    3.3 去停用词

    分词完成后,即可读取停用词表中的停用词,对分词后的正负向语料进行匹配并去除停用词。去除停用词的步骤非常简单,主要有两个:

    1)读取停用词表;

    2)遍历分词后的句子,将每个词丢到此表中进行匹配,若停用词表存在则替换为空。

    具体实现代码如下所示:

    233da896226a

    3_stopword--去除停用词代码

    根据代码所示,停用词表的获取使用到了python特有的广播形式,一句代码即可搞定:

    stopkey = [w.strip() for w in codecs.open('data\stopWord.txt', 'r', encoding='utf-8').readlines()]

    读取出的每一个停用词必须要经过去符号处理即w.strip(),因为读取出的停用词还包含有换行符和制表符,如果不处理则匹配不上。代码执行完成后,得到2000_neg_cut_stopword.txt和2000_pos_cut_stopword.txt两个txt文件。

    由于去停用词的步骤是在句子分词后执行的,因此通常与分词操作在同一个代码段中进行,即在句子分词操作完成后直接调用去停用词的函数,并得到去停用词后的结果,再写入结果文件中。本文是为了便于步骤的理解将两者分开为两个代码文件执行,各位可根据自己的需求进行调整。

    3.4 获取特征词向量

    根据以上步骤得到了正负向语料的特征词文本,而模型的输入必须是数值型数据,因此需要将每条由词语组合而成的语句转化为一个数值型向量。常见的转化算法有Bag of Words(BOW)、TF-IDF、Word2Vec。本文采用Word2Vec词向量模型将语料转换为词向量。

    由于特征词向量的抽取是基于已经训练好的词向量模型,而wiki中文语料是公认的大型中文语料,本文拟从wiki中文语料生成的词向量中抽取本文语料的特征词向量。Wiki中文语料的Word2vec模型训练在之前写过的一篇文章“利用Python实现wiki中文语料的word2vec模型构建” 中做了详尽的描述,在此不赘述。即本文从文章最后得到的wiki.zh.text.vector中抽取特征词向量作为模型的输入。

    获取特征词向量的主要步骤如下:

    1)读取模型词向量矩阵;

    2)遍历语句中的每个词,从模型词向量矩阵中抽取当前词的数值向量,一条语句即可得到一个二维矩阵,行数为词的个数,列数为模型设定的维度;

    3)根据得到的矩阵计算矩阵均值作为当前语句的特征词向量;

    4)全部语句计算完成后,拼接语句类别代表的值,写入csv文件中。

    主要代码如下图所示:

    233da896226a

    4_getwordvecs--获取词向量代码

    代码执行完成后,得到一个名为2000_data.csv的文件,第一列为类别对应的数值(1-pos, 0-neg),第二列开始为数值向量,每一行代表一条评论。结果的部分截图如下所示:

    233da896226a

    词向量截图

    3.5 降维

    Word2vec模型设定了400的维度进行训练,得到的词向量为400维,本文采用PCA算法对结果进行降维。具体实现代码如下所示:

    233da896226a

    5_pca_svm--PCA降维代码

    运行代码,根据结果图发现前100维就能够较好的包含原始数据的绝大部分内容,因此选定前100维作为模型的输入。

    233da896226a

    PCA维度解释结果图

    4 分类模型构建

    本文采用支持向量机(SVM)作为本次实验的中文文本分类模型,其他分类模型采用相同的分析流程,在此不赘述。

    支持向量机(SVM)是一种有监督的机器学习模型。本文首先采用经典的机器学习算法SVM作为分类器算法,通过计算测试集的预测精度和ROC曲线来验证分类器的有效性,一般来说ROC曲线的面积(AUC)越大模型的表现越好。

    首先使用SVM作为分类器算法,随后利用matplotlib和metric库来构建ROC曲线。具体python代码如下所示:

    233da896226a

    5_pca_svm--SVM代码

    运行代码,得到Test Accuracy: 0.88,即本次实验测试集的预测准确率为88%,ROC曲线如下图所示。

    233da896226a

    ROC曲线图

    至此,利用Pyhon对酒店评论进行中文情感极性分析的流程与方法全部介绍完毕,代码和数据已上传至本人的GitHub仓库,data文件夹中包含停用词表stopWord.txt和测试集ChnSentiCorp_htl_ba_2000,还可采用其他分类模型进行分类,欢迎各位朋友批评指正、共同学习!

    展开全文
  • 里面包含三个语料库,分别是台湾大学,清华大学,以及微博语料
  • # 现在提供训练的包括分词,词性标注,情感分析,都是用的snownlp库自带的原始文件 以分词为例 分词在snownlp/seg目录下 from snownlp import seg sentiment.train('neg.txt', 'pos.txt') seg.save('seg.marshal') #...

    不甘心的时候,就是在进步;痛苦的时候,就是在成长。

    文章目录

    一、Snownlp 简介

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode编码。# 安装

    pip install snownlp -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

    二、Snownlp 特性中文分词(Character-Based Generative Model)

    词性标注(TnT 3-gram 隐马)

    情感分析(官网没有介绍具体原理,但是指明购物类的评论的准确率较高,其实是因为它的语料库主要是购物方面的)

    文本分类(原理是朴素贝叶斯)

    转换成拼音 (Trie树实现的最大匹配)

    繁体转简体 (Trie树实现的最大匹配)

    提取文本关键词(TextRank算法)

    提取文本摘要(TextRank算法)

    tf,idf

    Tokenization(分割成句子)

    文本相似(BM25)

    三、Snownlp库的基本使用from snownlp import SnowNLP

    word = u'这个姑娘真好看'

    s = SnowNLP(word)

    print(s.words) # 分词

    print(list(s.tags)) # 词性标注

    print(s.sentiments) # 情感分数

    print(s.pinyin) # 拼音

    print(SnowNLP(u'蒹葭蒼蒼,白露為霜。所謂伊人,在水一方。').han) # 繁体字转简体

    运行结果如下:

    ['这个', '姑娘', '真', '好看']

    [('这个', 'r'), ('姑娘', 'n'), ('真', 'd'), ('好看', 'a')]

    0.9002381975487243

    ['zhe', 'ge', 'gu', 'niang', 'zhen', 'hao', 'kan']

    蒹葭苍苍,白露为霜。所谓伊人,在水一方。from snownlp import SnowNLP

    text = u'''

    自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。

    它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。

    自然语言处理是一门融语言学、计算机科学、数学于一体的科学。

    因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,

    所以它与语言学的研究有着密切的联系,但又有重要的区别。

    自然语言处理并不是一般地研究自然语言,

    而在于研制能有效地实现自然语言通信的计算机系统,

    特别是其中的软件系统。因而它是计算机科学的一部分。

    '''

    s = SnowNLP(text)

    print(s.keywords(limit=3)) # 关键词提取

    print('--------------------------------')

    summary = s.summary(limit=4) # 文本概括

    for i in summary:

    print(i)

    print('--------------------------------')

    print(s.sentences) # 句子

    运行结果如下:

    ['语言', '自然', '计算机']

    --------------------------------

    因而它是计算机科学的一部分

    自然语言处理是计算机科学领域与人工智能领域中的一个重要方向

    自然语言处理是一门融语言学、计算机科学、数学于一体的科学

    所以它与语言学的研究有着密切的联系

    --------------------------------

    ['自然语言处理是计算机科学领域与人工智能领域中的一个重要方向', '它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法', '自然语言处理是一门融语言学、计算机科学、数学于一体的科学', '因此', '这一领域的研究将涉及自然语言', '即人们日常使用的语言', '所以它与语言学的研究有着密切的联系', '但又有重要的区别', '自然语言处理并不是一般地研究自然语言', '而在于研制能有效地实现自然语言通信的计算机系统', '特别是其中的软件系统', '因而它是计算机科学的一部分']

    Process finished with exit code 0# 评价词语对文本的重要程度

    # TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。

    # TF词频越大越重要,但是文中会的“的”,“你”等无意义词频很大,却信息量几乎为0,这种情况导致单纯看词频评价词语重要性是不准确的。因此加入了idf

    # IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t越重要

    # TF-IDF综合起来,才能准确的综合的评价一词对文本的重要性。

    from snownlp import SnowNLP

    s = SnowNLP([[u'这篇', u'文章', u'写得', u'不错'],

    [u'那篇', u'论文', u'好'],

    [u'这个', u'东西', u'好吃']])

    print(s.tf) # tf 意思是词频(Term Frequency)

    print('---------------------------------------------------')

    print(s.idf) # idf 意思是逆文本频率指数(Inverse Document Frequency)

    print('-----------------------------------------------------')

    # 文本相似度

    print(s.sim([u'文章']))

    print(s.sim([u'好']))

    运行结果如下:

    [{'这篇': 1, '文章': 1, '写得': 1, '不错': 1}, {'那篇': 1, '论文': 1, '好': 1}, {'这个': 1, '东西': 1, '好吃': 1}]

    ---------------------------------------------------

    {'这篇': 0.5108256237659907, '文章': 0.5108256237659907, '写得': 0.5108256237659907, '不错': 0.5108256237659907, '那篇': 0.5108256237659907, '论文': 0.5108256237659907, '好': 0.5108256237659907, '这个': 0.5108256237659907, '东西': 0.5108256237659907, '好吃': 0.5108256237659907}

    -----------------------------------------------------

    [0.4686473612532025, 0, 0]

    [0, 0.5348959411162205, 0]# 关于训练

    # 现在提供训练的包括分词,词性标注,情感分析,都是用的snownlp库自带的原始文件 以分词为例 分词在snownlp/seg目录下

    from snownlp import seg

    sentiment.train('neg.txt', 'pos.txt')

    seg.save('seg.marshal')

    # 这样训练好的文件就保存为seg.marshal了,之后修改snownlp/seg/__init__.py里的data_path指向刚训练好的文件即可

    四、NLP测试

    1. 获取数据

    爬取部分好评、中评和差评数据,分别保存到三个txt里。

    2. 处理数据from pathlib import Path

    import pandas as pd

    # 获取当前目录下 存储好评 中评 差评数据的txt

    p = Path(r'D:\python\pycharm2020\program\数据分析\中文情感分析')

    review_txt = list(p.glob('**/*.txt'))

    all_data = pd.DataFrame()

    for item in review_txt:

    emotion = item.stem # 获取文件名 除后缀的部分

    with Path(item).open(mode='r') as f:

    con = f.read().split('\n')

    data = pd.DataFrame({'评论内容': con, '标签': [emotion] * len(con)})

    all_data = all_data.append(data)

    all_data.to_excel('评论数据.xlsx', index=False)

    3. NLP测试from snownlp import SnowNLP

    import pandas as pd

    import re

    df = pd.read_excel('评论数据.xlsx')

    content = df['评论内容']

    # 去除一些无用的字符 只提取出中文出来

    content = [' '.join(re.findall('[\u4e00-\u9fa5]+', item, re.S)) for item in content]

    # 对每条评论进行情感打分

    scores = [SnowNLP(i).sentiments for i in content]

    emotions = []

    # 根据分数来划定好评 中评 差评

    for i in scores:

    if i >= 0.75:

    emotions.append('好评')

    elif 0.45 <= i < 0.75:

    emotions.append('中评')

    else:

    emotions.append('差评')

    df['情感分数'] = scores

    df['情感'] = emotions

    df.to_excel('NLP测试后数据.xlsx')import pandas as pd

    # 计算预测准确率

    df = pd.read_excel('NLP测试后数据.xlsx')

    # 看准确率 通过Snownlp情感打分 设置梯度得出的情感 好评 中评 差评 与实际标签相比较

    data = df[df['标签'] == df['情感']]

    print('准确率为:{:.3%}'.format(len(data) / len(df)))

    运行结果如下:

    准确率为:72.292%

    Process finished with exit code 0准确率还可以,但还不算高,分析原因可能为如下方面:

    因为只是做练习、熟悉Snownlp库的基本使用,通过情感打分和设置梯度来判断情感,没有自己构建该领域的语料库,如果构建了相关语料库,替换默认语料库,准确率会高很多。所以语料库是非常关键的,如果要正式进行文本挖掘,建议要构建自己的语料库。

    这个商品下的评论,中评、差评的界限比较模糊,每条评论的标签用的是爬取时默认标签:属于什么评论,没有人工去看,会有相当的误差。

    对文本的处理也只是滤掉其他字符,提取中文。

    展开全文
  • 情感分析语料库——情感词典(中文英文)转

    万次阅读 多人点赞 2019-05-23 14:23:45
    情感分析资源 (转) 中文的http://wenku.baidu.com/view/819b90d676eeaeaad1f3306e.html 情感词典 1.知网的情感词典 -http://www.keenage.com/html/c_bulletin_2007.htm 由知网发布的词典,包括中文情感词典和...
  • 任务1有14000条标注训练数据非常适合做微博短文本的情感分析
  • 情感分析是NLP中的一大分支,无论在学术界还是工业界都有广泛的研究,在SemEval语义分析会议中有单独的情感分析任务分支,其中最难的一个任务叫做ABSA:Aspect-Based Sentiment Analysis,面向方面的情感分析....
  • 中文酒店情感分析语料,标注了打分1-5分,可用于多分类,train12000,条,test4000条,非utf-8编码
  • 1.背景情感分析是NLP中的一大分支,无论在学术界还是工业界都有广泛的研究,在SemEval语义分析会议中有单独的情感分析任务分支,其中最难的一个任务叫做ABSA:Aspect-Based Sentiment Analysis,面向方面的情感分析...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,492
精华内容 2,996
关键字:

情感分析语料