当前位置: 首页 > news >正文

ui中有哪些做的好看的网站大二dw网页设计作业成品

ui中有哪些做的好看的网站,大二dw网页设计作业成品,平面设计笔记本电脑推荐,网站建设的重点难点文章目录 项目背景数据清洗导包导入数据切分评论及标签Word2Vec构造w2v 数据切分模型训练查看结果 同类型项目 项目背景 项目的目的,是为了对情感评论数据集进行预测打标。在训练之前,需要对数据进行数据清洗环节,前面已对数据进行清洗&…

文章目录

  • 项目背景
  • 数据清洗
    • 导包
    • 导入数据
    • 切分评论及标签
    • Word2Vec
      • 构造w2v
    • 数据切分
    • 模型训练
    • 查看结果
  • 同类型项目


项目背景

项目的目的,是为了对情感评论数据集进行预测打标。在训练之前,需要对数据进行数据清洗环节,前面已对数据进行清洗,详情可移步至NLP_情感分类_数据清洗

下面对已清洗的数据集,用机器学习方案(w2v)进行处理

数据清洗

导包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from tqdm import tqdm
import pickle
import numpy as np
import gc
#import swifter
from sklearn.neural_network import MLPClassifier
import os
from sklearn.metrics import accuracy_score,f1_score,recall_score,precision_score
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import MultinomialNB
from sklearn.tree import DecisionTreeClassifier
from lightgbm import LGBMClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn import svm

导入数据

df = pd.read_csv('data/sentiment_analysis_clean.csv')
df = df.dropna()

切分评论及标签

X_tfidf = df['text']
y_tfidf = df['label']

Word2Vec

可参考:NLP_词的向量表示Word2Vec 和 Embedding

Word2Vec是一个用于生成词向量(word vectors)的模型,它由谷歌在2013年开发。Word2Vec模型通过神经网络将词语转换为数值向量,这些向量捕捉了词语的语义信息,使得语义上相似的词在向量空间中的距离也相近。

Word2Vec主要有两种训练模型:

  1. CBOW(Continuous Bag of Words):这是一个预测单词的工具,给定一个单词前后文的单词,预测当前单词。CBOW模型不考虑单词在句子中的顺序。

  2. Skip-Gram:与CBOW相反,Skip-Gram模型给定一个单词,预测它前后文的单词。Skip-Gram通常比CBOW能更好地捕捉词语之间的关系,但是计算量更大。

Word2Vec模型的训练包括以下步骤:

  1. 初始化:随机初始化词向量和上下文向量。

  2. 训练:通过大量文本数据训练模型,使用梯度下降等优化算法不断更新词向量,以减少预测单词的误差。

  3. 优化:通过不断迭代,优化词向量,使得语义相似的词在向量空间中更接近。

训练完成后,Word2Vec可以用于各种自然语言处理任务,如词义消歧、句子相似度计算、机器翻译等。词向量可以作为输入特征,用于训练其他深度学习模型。

Word2Vec的词向量可以捕捉到一些语义规律,例如:

  • 国王 - 男人 + 女人 = 女王
  • 巴黎 - 法国 + 英国 = 伦敦

这些规律表明Word2Vec能够理解和表达词语之间的相对关系。

Word2Vec模型的优点包括:

  • 能够捕捉词语的语义信息。
  • 生成的词向量可以用于多种下游任务。
  • 模型相对简单,训练效率高。

缺点包括:

  • 无法捕捉词语的语法信息。
  • 无法处理一词多义的情况。
  • 需要大量的文本数据进行训练。

Word2Vec是词嵌入(word embedding)领域的一个重要里程碑,它启发了后续许多其他词嵌入模型的发展,如GloVe(Global Vectors for Word Representation)和FastText。

Word2Vec模型在训练时有多个参数可以设置,以下是一些常见的参数及其意义:

  1. vector_size (或 size):这是生成的词向量的维度。较小的维度可能无法捕捉足够的细节,而较大的维度可能会增加计算成本并且导致过拟合。常见的维度设置有100、200、300等。

  2. window (或 windowSize):上下文窗口的大小,即在当前单词的前后考虑多少个单词。较大的窗口可以捕捉更远的依赖关系,但也可能包含更多噪声。

  3. min_count:忽略出现次数低于此值的单词。这可以用来过滤掉一些出现频率非常低的单词,以提高训练效率。

  4. negative (或 negativeSize):在训练中使用负采样的词汇数量。负采样是一种优化技术,用于提高模型的训练效率。

  5. iter (或 epochs):训练数据集的迭代次数。较大的迭代次数可以提高模型的性能,但也需要更多的计算资源。

  6. batch_size:每次模型更新时处理的单词数量。较大的批量大小可以提高内存的使用效率,但也可能影响模型的收敛速度。

  7. alpha:学习率。较高的学习率可以加快训练速度,但可能导致模型无法收敛。

  8. min_alpha:学习率的下限。在训练过程中,学习率会逐渐减小到这个值。

  9. sg:训练模式,0 表示使用CBOW模型,1 表示使用Skip-Gram模型。

  10. hs (或 hierarchicalSampling):如果设置为1,则使用分层采样。分层采样是一种考虑单词频率的采样方法,对高频词进行下采样,以提高模型对低频词的学习效率。

  11. negative_sampling:如果设置为1,则使用负采样。负采样是一种优化技术,通过只采样一部分负例来提高训练效率。

  12. cbow_mean:当使用CBOW模型时,如果设置为1,则对上下文的词向量取平均,而不是单独考虑每个词。

  13. hashfx:如果设置为1,则使用固定的hash函数来初始化词向量。

  14. epoch:训练周期的数量。

  15. threads:训练过程中使用的线程数。

  16. total_words:训练过程中处理的总单词数。

  17. model:保存模型的文件名。

  18. input:训练数据的输入文件。

这些参数可以根据具体的应用场景和计算资源进行调整,以达到最佳的训练效果。

构造w2v

from gensim.models import Word2Vec 
word2vec_model = Word2Vec(X_tfidf,  vector_size=16, sg=1, window=5, seed=2020, workers=24, min_count=1, epochs=1) 
words = list(word2vec_model.wv.index_to_key)
vector_size = word2vec_model.wv.vector_size
word_vectors = np.zeros((len(words), vector_size))
for i, word in enumerate(words):word_vectors[i, :] = word2vec_model.wv[word]# 构建文档向量
def text_to_vec(text):words_in_text = text.split()  # 假设文本是通过空格分词的text_vec = np.zeros(vector_size)word_count = 0for word in words_in_text:if word in word2vec_model.wv:text_vec += word2vec_model.wv[word]word_count += 1if word_count > 0:text_vec /= word_countreturn text_vec# 将所有文本数据转化为向量
text_vectors = np.array([text_to_vec(text) for text in X_tfidf])

数据切分

from sklearn.model_selection import train_test_split, StratifiedKFold
# 这里指定了random_state是为了保证每次切分数据集的结果都是一样的
Xidf_train, Xidf_test, yidf_train, yidf_test = train_test_split(text_vectors, y_tfidf,test_size=0.2,random_state=2024)del df,array_TFIDF
gc.collect()

模型训练

def train_model(model, X_train, X_test, y_train, y_test):dic = {'lr':'Logistic Regression','nb':'Naive Bayes','svm':'Support Vector Machine','dt':'Decision Tree','rf':'Random Forest','lgb':'LightGBM'}train_acc, test_acc = [], []if model == 'lr':clf = LogisticRegression(C=0.01, solver='liblinear')elif model == 'nb':clf = MultinomialNB(alpha=100)elif model == 'svm':clf = svm.LinearSVC(C=0.01)elif model == 'dt':clf = DecisionTreeClassifier(max_depth=100, min_samples_split= 2)elif model == 'rf':clf = RandomForestClassifier(max_depth=100,min_samples_split=5)elif model == 'lgb':clf = LGBMClassifier(learning_rate=1.0)else:print('Model doesn\'t exist')clf.fit(X_train, y_train)# predict using train datatrain_pred = clf.predict(X_train)train_acc = accuracy_score(y_train, train_pred)# predict using test datatest_pred = clf.predict(X_test)test_acc = accuracy_score(y_test, test_pred)   print()print("Model: ", dic[model])print("Training accuracy: {}".format(train_acc))print("Test accuracy: {}".format(test_acc))print()return {'model_name':dic[model],'Train Accuracy':train_acc,'Test Accuracy':test_acc}

查看结果

metric_df = pd.DataFrame(columns=['model_name','Train Accuracy','Test Accuracy'])
for model in ['lr', 'nb', 'svm', 'dt', 'rf', 'lgb']:metric = train_model(model ,Xidf_train, Xidf_test, yidf_train, yidf_test)# 将metric转换成一个DataFramemetric_df = pd.concat([metric_df, pd.DataFrame([metric])], ignore_index=True)

在这里插入图片描述

metric_df

在这里插入图片描述

同类型项目

阿里云-零基础入门NLP【基于机器学习的文本分类】

阿里云-零基础入门NLP【基于深度学习的文本分类3-BERT】
也可以参考进行学习


学习的参考资料:
B站

http://www.yayakq.cn/news/65850/

相关文章:

  • 网站 云端宿迁房价2022最新房价
  • 苏州网站设计网站开发公司陕西西安封闭通知最新
  • 济南微网站建设把网页做成软件
  • 从搜索引擎访问网站济南哪个网络公司建网站好
  • 长治个人网站建设西安建站模板
  • 建设银行网站账号怎么注销vp代理商网站管理系统
  • 做网站最主要是什么seo公司怎样
  • 如何建设网站的论文怎样用自己的服务器做网站
  • name域名的网站网站设计平台
  • 学做实体店网站让wordpress完美拥有论坛功能
  • cms(网站内容管理系统)有哪些宁波seo网页怎么优化
  • 让人做网站需要准备什么条件临沂做网站找哪家好
  • 做网站公司介绍ppt网站建设制作合同模板
  • 用什么做网站最简单网站建设项目招标公告
  • 金融网站设计欣赏网站建设公司画册
  • 做微信大转盘有哪些网站做爰视频免费观看网站
  • 怎么做网盘搜索引擎网站英文网站模板
  • 网站开发国内外研究企业百度推广怎么收费
  • 新乡网站建设哪家公司好个人网页制作简单方法
  • 湖北网站定制开发多少钱百度app
  • 河南做网站高手排名江苏大才建设集团网站
  • 网站续费收多少合适营销对企业的重要性
  • 雷山网站建设dede移动端网站源码
  • 制作一个有用户网站装修公司加盟合作模式
  • 建站费用参考网站制作软件都是什么软件
  • 网站找人做备案的价格做网站的公司成都
  • 做网站不挣钱哪些网站微信支付平台
  • 网站模板 英文网站建设犭金手指a排名15
  • 中投建设官方网站用系统建购物网站
  • 深圳企业网站建设多少钱网络技术基础