中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

具有品牌的廣州做網(wǎng)站360免費建站系統(tǒng)

具有品牌的廣州做網(wǎng)站,360免費建站系統(tǒng),外貿(mào)建站模板免費,揚州市住房和建設(shè)局網(wǎng)站文章目錄 項目背景數(shù)據(jù)清洗導(dǎo)包導(dǎo)入數(shù)據(jù)切分評論及標(biāo)簽Word2Vec構(gòu)造w2v 數(shù)據(jù)切分模型訓(xùn)練查看結(jié)果 同類型項目 項目背景 項目的目的,是為了對情感評論數(shù)據(jù)集進行預(yù)測打標(biāo)。在訓(xùn)練之前,需要對數(shù)據(jù)進行數(shù)據(jù)清洗環(huán)節(jié),前面已對數(shù)據(jù)進行清洗&…

文章目錄

  • 項目背景
  • 數(shù)據(jù)清洗
    • 導(dǎo)包
    • 導(dǎo)入數(shù)據(jù)
    • 切分評論及標(biāo)簽
    • Word2Vec
      • 構(gòu)造w2v
    • 數(shù)據(jù)切分
    • 模型訓(xùn)練
    • 查看結(jié)果
  • 同類型項目


項目背景

項目的目的,是為了對情感評論數(shù)據(jù)集進行預(yù)測打標(biāo)。在訓(xùn)練之前,需要對數(shù)據(jù)進行數(shù)據(jù)清洗環(huán)節(jié),前面已對數(shù)據(jù)進行清洗,詳情可移步至NLP_情感分類_數(shù)據(jù)清洗

下面對已清洗的數(shù)據(jù)集,用機器學(xué)習(xí)方案(w2v)進行處理

數(shù)據(jù)清洗

導(dǎo)包

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

導(dǎo)入數(shù)據(jù)

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

切分評論及標(biāo)簽

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

Word2Vec

可參考:NLP_詞的向量表示W(wǎng)ord2Vec 和 Embedding

Word2Vec是一個用于生成詞向量(word vectors)的模型,它由谷歌在2013年開發(fā)。Word2Vec模型通過神經(jīng)網(wǎng)絡(luò)將詞語轉(zhuǎn)換為數(shù)值向量,這些向量捕捉了詞語的語義信息,使得語義上相似的詞在向量空間中的距離也相近。

Word2Vec主要有兩種訓(xùn)練模型:

  1. CBOW(Continuous Bag of Words):這是一個預(yù)測單詞的工具,給定一個單詞前后文的單詞,預(yù)測當(dāng)前單詞。CBOW模型不考慮單詞在句子中的順序。

  2. Skip-Gram:與CBOW相反,Skip-Gram模型給定一個單詞,預(yù)測它前后文的單詞。Skip-Gram通常比CBOW能更好地捕捉詞語之間的關(guān)系,但是計算量更大。

Word2Vec模型的訓(xùn)練包括以下步驟:

  1. 初始化:隨機初始化詞向量和上下文向量。

  2. 訓(xùn)練:通過大量文本數(shù)據(jù)訓(xùn)練模型,使用梯度下降等優(yōu)化算法不斷更新詞向量,以減少預(yù)測單詞的誤差。

  3. 優(yōu)化:通過不斷迭代,優(yōu)化詞向量,使得語義相似的詞在向量空間中更接近。

訓(xùn)練完成后,Word2Vec可以用于各種自然語言處理任務(wù),如詞義消歧、句子相似度計算、機器翻譯等。詞向量可以作為輸入特征,用于訓(xùn)練其他深度學(xué)習(xí)模型。

Word2Vec的詞向量可以捕捉到一些語義規(guī)律,例如:

  • 國王 - 男人 + 女人 = 女王
  • 巴黎 - 法國 + 英國 = 倫敦

這些規(guī)律表明Word2Vec能夠理解和表達詞語之間的相對關(guān)系。

Word2Vec模型的優(yōu)點包括:

  • 能夠捕捉詞語的語義信息。
  • 生成的詞向量可以用于多種下游任務(wù)。
  • 模型相對簡單,訓(xùn)練效率高。

缺點包括:

  • 無法捕捉詞語的語法信息。
  • 無法處理一詞多義的情況。
  • 需要大量的文本數(shù)據(jù)進行訓(xùn)練。

Word2Vec是詞嵌入(word embedding)領(lǐng)域的一個重要里程碑,它啟發(fā)了后續(xù)許多其他詞嵌入模型的發(fā)展,如GloVe(Global Vectors for Word Representation)和FastText。

Word2Vec模型在訓(xùn)練時有多個參數(shù)可以設(shè)置,以下是一些常見的參數(shù)及其意義:

  1. vector_size (或 size):這是生成的詞向量的維度。較小的維度可能無法捕捉足夠的細(xì)節(jié),而較大的維度可能會增加計算成本并且導(dǎo)致過擬合。常見的維度設(shè)置有100、200、300等。

  2. window (或 windowSize):上下文窗口的大小,即在當(dāng)前單詞的前后考慮多少個單詞。較大的窗口可以捕捉更遠(yuǎn)的依賴關(guān)系,但也可能包含更多噪聲。

  3. min_count:忽略出現(xiàn)次數(shù)低于此值的單詞。這可以用來過濾掉一些出現(xiàn)頻率非常低的單詞,以提高訓(xùn)練效率。

  4. negative (或 negativeSize):在訓(xùn)練中使用負(fù)采樣的詞匯數(shù)量。負(fù)采樣是一種優(yōu)化技術(shù),用于提高模型的訓(xùn)練效率。

  5. iter (或 epochs):訓(xùn)練數(shù)據(jù)集的迭代次數(shù)。較大的迭代次數(shù)可以提高模型的性能,但也需要更多的計算資源。

  6. batch_size:每次模型更新時處理的單詞數(shù)量。較大的批量大小可以提高內(nèi)存的使用效率,但也可能影響模型的收斂速度。

  7. alpha:學(xué)習(xí)率。較高的學(xué)習(xí)率可以加快訓(xùn)練速度,但可能導(dǎo)致模型無法收斂。

  8. min_alpha:學(xué)習(xí)率的下限。在訓(xùn)練過程中,學(xué)習(xí)率會逐漸減小到這個值。

  9. sg:訓(xùn)練模式,0 表示使用CBOW模型,1 表示使用Skip-Gram模型。

  10. hs (或 hierarchicalSampling):如果設(shè)置為1,則使用分層采樣。分層采樣是一種考慮單詞頻率的采樣方法,對高頻詞進行下采樣,以提高模型對低頻詞的學(xué)習(xí)效率。

  11. negative_sampling:如果設(shè)置為1,則使用負(fù)采樣。負(fù)采樣是一種優(yōu)化技術(shù),通過只采樣一部分負(fù)例來提高訓(xùn)練效率。

  12. cbow_mean:當(dāng)使用CBOW模型時,如果設(shè)置為1,則對上下文的詞向量取平均,而不是單獨考慮每個詞。

  13. hashfx:如果設(shè)置為1,則使用固定的hash函數(shù)來初始化詞向量。

  14. epoch:訓(xùn)練周期的數(shù)量。

  15. threads:訓(xùn)練過程中使用的線程數(shù)。

  16. total_words:訓(xùn)練過程中處理的總單詞數(shù)。

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

  18. input:訓(xùn)練數(shù)據(jù)的輸入文件。

這些參數(shù)可以根據(jù)具體的應(yīng)用場景和計算資源進行調(diào)整,以達到最佳的訓(xùn)練效果。

構(gòu)造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]# 構(gòu)建文檔向量
def text_to_vec(text):words_in_text = text.split()  # 假設(shè)文本是通過空格分詞的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# 將所有文本數(shù)據(jù)轉(zhuǎn)化為向量
text_vectors = np.array([text_to_vec(text) for text in X_tfidf])

數(shù)據(jù)切分

from sklearn.model_selection import train_test_split, StratifiedKFold
# 這里指定了random_state是為了保證每次切分?jǐn)?shù)據(jù)集的結(jié)果都是一樣的
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()

模型訓(xùn)練

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}

查看結(jié)果

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轉(zhuǎn)換成一個DataFramemetric_df = pd.concat([metric_df, pd.DataFrame([metric])], ignore_index=True)

在這里插入圖片描述

metric_df

在這里插入圖片描述

同類型項目

阿里云-零基礎(chǔ)入門NLP【基于機器學(xué)習(xí)的文本分類】

阿里云-零基礎(chǔ)入門NLP【基于深度學(xué)習(xí)的文本分類3-BERT】
也可以參考進行學(xué)習(xí)


學(xué)習(xí)的參考資料:
B站

http://www.risenshineclean.com/news/5732.html

相關(guān)文章:

  • 邯鄲哪里可以學(xué)建網(wǎng)站濟南優(yōu)化網(wǎng)站關(guān)鍵詞
  • 什么網(wǎng)站可以自己做房子設(shè)計蘭州seo快速優(yōu)化報價
  • 汽車網(wǎng)站大全輿情信息在哪里找
  • 做公司 網(wǎng)站建設(shè)價格低市場營銷策劃方案3000字
  • 天津建設(shè)工程信息網(wǎng)投標(biāo)信息系統(tǒng)登錄北京seo公司wyhseo
  • 河南工程建設(shè)信息網(wǎng)查詢解釋seo網(wǎng)站推廣
  • asp.net 網(wǎng)站的頭部和底部怎么來做 include怎么給公司做網(wǎng)站
  • seo網(wǎng)站關(guān)鍵詞優(yōu)化軟件邁步者seo
  • wordpress旅游插件廣州網(wǎng)站優(yōu)化公司
  • 南京網(wǎng)站設(shè)計費用推廣網(wǎng)絡(luò)公司
  • 山東省建設(shè)管理局網(wǎng)站seo優(yōu)化人員
  • 做bt搜索網(wǎng)站歐洲網(wǎng)站服務(wù)器
  • 深圳做網(wǎng)站那里好徐匯網(wǎng)站建設(shè)
  • 網(wǎng)站美工設(shè)計培訓(xùn)學(xué)校國際軍事新聞最新消息
  • 政務(wù)網(wǎng)站建設(shè)索引成都seo招聘信息
  • 怎么在百度自己創(chuàng)網(wǎng)站百度網(wǎng)站域名注冊
  • 臺州網(wǎng)站建設(shè)系統(tǒng)開發(fā)一個網(wǎng)站需要哪些技術(shù)
  • 寧波響應(yīng)式網(wǎng)站制作西安競價托管代運營
  • 河南單位網(wǎng)站建設(shè)網(wǎng)站收錄量
  • 東莞seo建站優(yōu)化工具注冊網(wǎng)站平臺要多少錢
  • 網(wǎng)站做友鏈盈利網(wǎng)絡(luò)營銷課程主要講什么內(nèi)容
  • 網(wǎng)站建設(shè)的需求和目的運營和營銷的區(qū)別和聯(lián)系
  • 專業(yè)網(wǎng)站設(shè)計招聘信息如何在百度上投放廣告
  • 系統(tǒng)測試包括哪些內(nèi)容魔貝課凡seo課程好嗎
  • 營銷網(wǎng)絡(luò)是什么意思企業(yè)網(wǎng)站優(yōu)化軟件
  • 現(xiàn)在做網(wǎng)站一般做多寬怎么做微信推廣和宣傳
  • 網(wǎng)站系統(tǒng)問題解決措施重慶seo網(wǎng)站建設(shè)
  • 網(wǎng)站開發(fā)軟件培訓(xùn)企業(yè)網(wǎng)站建設(shè)方案論文
  • 域名和網(wǎng)站名不一樣百度推廣登錄平臺網(wǎng)址
  • 太湖云建站網(wǎng)站建設(shè)推廣普通話手抄報內(nèi)容50字