使用逻辑回归和词向量进行(英文)电影评论情感(二)分类

该博客介绍了如何使用逻辑回归和Word2Vec对英文电影评论进行情感分类。通过加载预训练的Word2Vec模型,处理训练数据集,划分训练、验证和测试集,应用sklearn的逻辑回归算法进行模型训练。文章详细阐述了超参数C的搜索过程,采用grid search技术,最终在3轮搜索后找到最佳参数,得到的测试准确率为0.8586。
摘要由CSDN通过智能技术生成

问题描述:对电影评论进行情感分类,类型一共有两种:正面评价 (pos) 和负面评价 (neg)。

训练数据集:英文电影评论及对应的分类标签,保存在工作路径下。样本举例如下:

使用的算法:sklearn 逻辑回归 (logistic regression)

使用的词向量:Word2Vec 预先下载并保存在工作路径下。

1 import使用的packages

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from nltk import TreebankWordTokenizer
import time
import matplotlib.pyplot as plt
import re
import string

2 读取训练数据并划分训练、验证、测试集

# 读取训练数据集,文档保存在工作路径下,名称为"trainingdata",格式为csv
df = pd.read_csv("trainingdata.csv")

# 打乱行顺序
df = df.sample(frac=1, random_state=123).reset_index(drop=True)

# 划分训练, 验证和测试数据集,比例分别为0.7, 0.1, 0.2
train_frac, val_frac, test_frac = 0.7, 0.1, 0.2
Xr = df["text"].tolist() #评论文本列表
Yr = df["label"].tolist() #标签列表
train_end = int(train_frac*len(Xr)) #取前70%的样本行为训练集
val_end = int((train_frac + val_frac)*len(Xr)) #取中间10%的样本行为验证集
X_train = Xr[0:train_end] #训练集文本列表
Y_train = Yr[0:train_end] #训练集标签列表
X_val = Xr[train_end:val_end] #验证集文本列表
Y_val = Yr[train_end:val_end] #验证集文本列表
X_test = Xr[val_end:] #测试集文本列表
Y_test = Yr[val_end:] #测试集文本列表

# 读取word2vec,文档保存在工作路径下,名称为"wordvector",格式为npz
wordvector = dict(np.load("wordvector.npz")) 
w2v = {w:v for w, v in zip(wordvector["words"], wordvector["vectors"])} #将数据保存为dictionary格式

3 定义函数用于生成文档对应的向量

def document_to_vector(doc):
    """Takes a string document and turns it into a vector
    by aggregating its word vectors.

    Args
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值