相关文章推荐
考研的馒头  ·  zh-cn:编辑 ...·  4 天前    · 
含蓄的炒饭  ·  Lenovo Thinkpad T14电脑 ...·  6 月前    · 

本人机器学习课程的小作业,记录一下,希望可以帮到一些小伙伴。
项目介绍,给一段英文文本(英文影评评论)来预测情感是正向还是负向
模型使用的是LSTM+RNN。
代码包括数据处理,模型训练,对新数据做出预测,并将预测结果(正向情感)保存到result.txt中
软件:anaconda3

代码下载链接: 下载链接
word文档(文本情感色彩分类技术报告)下载链接: 下载链接

一.数据集介绍

数据集链接: https://pan.baidu.com/s/1oIXkaL_SL9GSN3S56ZwvWQ
提取码: qgtg

训练集labeledTrainData.tsv(24500条带标签的训练数据)
id sentiment review 分别表示:每段文本的唯一ID,情感色彩类别标签,待分析的文本数据。
在这里插入图片描述
测试集(testData.tsv:22000条无标签测试数据)
在这里插入图片描述

二.代码详解

import numpy as np
import tensorflow as tf
wordsList=np.load('C:/NLP/wordsList.npy') #包含40万个词的python列表
wordsList=np.load('C:/NLP/wordsList.npy') #包含40万个词的python列表
wordsList=wordsList.tolist()
wordsList=[word.decode('UTF-8') for word in wordsList]
wordVectors=np.load('C:/NLP/wordVectors.npy')
baseballIndex=wordsList.index('baseball')
print(wordVectors[baseballIndex])
import pandas as pd
#读入数据
df=pd.read_csv('C:/NLP/labeledTrainData.tsv',sep='\t',escapechar='\\')
numDimensions=300
print("down")
maxSeqLength=250
import re
strip_special_chars = re.compile("[^A-Za-z0-9 ]+")
#清洗数据,HTML字符使用空格替代
def cleanSentences(string):
    string = string.lower().replace("<br />", " ")
    return re.sub(strip_special_chars, "", string.lower())
# #生成索引矩阵,得到24500*250的索引矩阵
# ids=np.zeros((24500,maxSeqLength),dtype='int32')
# #print(ids.shape) #输出结果为(24500,250)
# fileCounter=0
# for pf in range(0,len(df)): 
#     #print(pf)
#     indexCounter=0
#     cleanedLine=cleanSentences(df['review'][pf])
#     split=cleanedLine.split()
#     for word in split:
#         try:
#             #print('111')
#             ids[fileCounter][indexCounter]=wordsList.index(word)
#         except ValueError:
#             ids[fileCounter][indexCounter]=399999
#         indexCounter=indexCounter&
市场每天都在生成海量的舆情信息,这些信息可以帮助我们识别市场情绪的转变。如果只是人工地去跟踪大量的舆论和研报显然缺乏效率。我们可以试试让机器来完成这个工作。数据科学在数值领域中很常见,但这个不断壮大的领域现在也可以应用于非数值数据,比如文本。本文将探索一些理解文本数据的关键算法,包括基本文本分析、马尔可夫链和情感分析。许多数据(比如文本)是非结构化的,需要采用不同的机制来提取洞察。文本分析或文本数... 1.      CC      Coordinating conjunction 连接词 2.     CD     Cardinal number  基数词 3.     DT     Determiner  限定词 4.     EX     Existential there 存在句 5.     FW     Foreign word 外来词 6.     IN     Prep print(blob.sentences) print(blob.sentences[0].sentiment) print(blob.sentences[1].sentiment) print(blob.sentiment) #中文情感分析S 本文在基于NRC词典的情感分析(含多种离散情绪)—— python 基础上创作,原文章对中文文本进行结巴分词,然后与词典进行匹配。在作者实际使用过程中,由于需要使用到 英文 的原始数据,因此,将中文文本预处理部分和后续处理部分进行更改完善,以适应 英文 文本。 情绪和情感词典 是由加拿大国家研究委员会(简称NRC)的专家创建,因此也称为NRC词典。该词典具有广泛的应用程序开发,可以在多种环境中使用,例如情绪分析,产品营销,消费者行为,甚至是政治活动分析。 词典中包含了多种语言的词汇情感值,其中就包括 英文 和中文,本文将使 txt = open('comment.text','r',encoding='utf-8').read() txt = txt.lower() for ch in '`~!@#$%^&*()_+-={}[];":,/<>?\|': txt = txt.replace(ch," ") return txt text = getTe 在本片博客中我们结合之前讲的工具库、sklearn以及pandas,来构建一个简易的情感分析模型。情感分析属于分类任务,即为文本分配情感标签,我们将使用简单的逻辑回归模型来实现这个多分类任务。 1.加载数据 2.数据预处理 3.模型训练 1.加载数据 data = pd.read_csv("./data/emotion_data.csv") print(data.s... txt = open('comment.text','r',encoding='utf-8').read() txt = txt.lower() for ch in r'`~!\'''@#$%^&*()_+-={}[];":,./<>?\|' (1)分词操作: 分词应该是所有自然语言处理首先都需要做的,那么分词有以下几种方法供给大家参考 1.TextBlob包中提供的分词操作用法:text.word,其中text为文本名称 2.NLTK包中的分词方法:word_tokenize(text) 3.split方法做分词:因为 英文 单词本来就有空格,所以直接使用空格作为词语之间的间隔判断:text.split() (2)小写转化: