国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于PyTorch的中文情緒分析器設(shè)計與開發(fā)

這篇具有很好參考價值的文章主要介紹了基于PyTorch的中文情緒分析器設(shè)計與開發(fā)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

收藏和點贊,您的關(guān)注是我創(chuàng)作的動力

概要

??  情感分析在最近的十年內(nèi)得到了快速的發(fā)展,這歸功于大數(shù)據(jù)的支持。相較于英語而言,中文的使用同樣廣泛。如何把握中文里的情感也是服務(wù)行業(yè)所關(guān)注的問題。本文旨在研究中文情緒分析的設(shè)計與開發(fā),意在基于Pytorch平臺,利用深度學習去構(gòu)建神經(jīng)網(wǎng)絡(luò)模型從而去判斷中文文本數(shù)據(jù)中所蘊含的情緒,試圖通過遷移學習的方式,把電影評價數(shù)據(jù)的模型應(yīng)用在教育評價的數(shù)據(jù)上。本文先是通過了對文獻的分析,得到了遷移學習的基礎(chǔ),再是通過深度神經(jīng)網(wǎng)絡(luò)模型的搭建以及網(wǎng)上電影評價數(shù)據(jù)來訓練,最終得到一個對于電影評價、教育評價都適用的模型。
【關(guān)鍵詞】:Pytorch;神經(jīng)網(wǎng)絡(luò);情感分析;遷移學習

一、相關(guān)基礎(chǔ)理論

??

2.1 主流深度學習框架

Pytorch是Facebook在2017年推出的開源深度學習框架,源于torch更新后的一種新產(chǎn)品。因其是原生的python包,所以它與python是無縫集成的,同樣使用了命令式編碼風格。其易于上手、入門的緣故,非專業(yè)人士同樣可以使用該平臺來提高工作效率。Pytorch及其擴展函數(shù)庫構(gòu)成了一個豐富、完整的神經(jīng)網(wǎng)絡(luò)構(gòu)建、應(yīng)用平臺,開源,免費,學習和使用方便[10]。相較于TensorFlow,Pytorch具有動態(tài)計算圖表、精簡的后端與高度可拓展等優(yōu)勢,深度學習專業(yè)人員可以利用該平臺進行深度學習領(lǐng)域項目的設(shè)計與應(yīng)用。

2.2 神經(jīng)網(wǎng)絡(luò)

2.2.1 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)

人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks),簡稱為神經(jīng)網(wǎng)絡(luò)(NNs)是一種受人腦的生物神經(jīng)網(wǎng)絡(luò)啟發(fā)而設(shè)計的計算模型。這種網(wǎng)絡(luò)基于系統(tǒng)的復雜程序,善于從輸入的數(shù)據(jù)和標簽中學習到相關(guān)映射關(guān)系,從而達成完成預測或者解決分類問題的目的。人工神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一種應(yīng)用類似于大腦神經(jīng)突觸聯(lián)接的結(jié)構(gòu)進行信息處理的數(shù)學模型,用于擬合任意映射,因此也被稱為通用擬合器。神經(jīng)網(wǎng)絡(luò)的運行包含前饋的預測過程和反饋的學習過程。
  如圖2-1所示,在前饋的預測過程中,信號(Inputs)從輸入單元輸入,并沿著網(wǎng)絡(luò)連邊傳輸,每個信號會與連邊上的權(quán)重(Weights)進行乘積,從而得到隱含層單元的輸入;接下來,隱含層單元對所有連邊輸入的信號進行匯總(通過transfer function進行求和),然后經(jīng)過一定的處理(激活函數(shù))進行輸出( );這些輸出的信號再乘以從隱含層到輸出的那組連線上的權(quán)重( ),從而得到輸入給輸出單元的信號;最后,輸出單元再對每一條輸入連邊的信號進行匯總,并進行加工處理再輸出。最后的輸出就是整個神經(jīng)網(wǎng)絡(luò)的輸出。神經(jīng)網(wǎng)絡(luò)在訓練階段會通過優(yōu)化函數(shù)調(diào)節(jié)每條連邊上的權(quán)重 數(shù)值。
  在反饋的學習過程中,每個輸出神經(jīng)元會首先計算出它的預測誤差,然后將這個誤差沿著網(wǎng)絡(luò)的所有連邊進行反向傳播,得到每個隱含層節(jié)點的誤差。最后,根據(jù)每條連邊所連通的兩個節(jié)點的誤差計算連邊上的權(quán)重更新量,從而完成網(wǎng)絡(luò)的學習與調(diào)整。
  基于PyTorch的中文情緒分析器設(shè)計與開發(fā),python,深度學習,pytorch,人工智能,python

二、中文情感分類模型構(gòu)建

3.1 開發(fā)環(huán)境

模型是在系統(tǒng)WIN10、1TB+256G(SSD)、內(nèi)存16G 、INTEL酷睿I7-7700HQ的CPU以及英偉達GTX1070(8G)顯卡的PC機上通過python3.8版本和Anaconda1.9.12版本來使用pytorch構(gòu)建深度學習模型。Anaconda是一個開源的python包管理器,包含了python、conda等180多個科學包及其依賴項。它支持Windows、Linux和Mac三種系統(tǒng)。由于它提供了包管理與環(huán)境管理的功能,能夠很方便地解決多版本python切換、并存以及下載安裝各種第三方包等問題。使用自帶的jupyter notebooks應(yīng)用程序,可以直接在谷歌網(wǎng)頁頁面編寫、運行和調(diào)試代碼。
構(gòu)建神經(jīng)網(wǎng)絡(luò)模型中使用到的python模塊的功能介紹:
1、Re—python獨有的通過正則表達式對字符串匹配操作的模塊。
2、Jieba—一款基于python的強大的分詞庫,完美支持中文分詞。
3、Collections—包括了dict、set、list、tuple以外的一些特殊容器類型。
4、Matplotlib—將數(shù)據(jù)可視化。

3.2 數(shù)據(jù)部分

本模型中所使用的用于訓練模型的數(shù)據(jù)均來自于網(wǎng)上的開源數(shù)據(jù)包,其包括了豆瓣在2018年之前約13萬部電影數(shù)據(jù)以及105萬條左右的電影評論。其中評論數(shù)據(jù)中包含評論者的ID、電影的ID、評論內(nèi)容、點贊次數(shù)、評論時間和評論等級。由于文本信息均為不等長的序列,可能會出現(xiàn)內(nèi)存不足、無法訓練模型的情況,因此我們對電影評價數(shù)據(jù)做以下預處理,過程保證全隨機:
  1.抽取5000條評價星級為4~5的評價作為滿意度高的評價存放在comment_good.txt文件中。
  2. 抽取5000條評價星級為1~2的評價作為滿意度低的評價存放在comment_bad.txt文件中。
3.對comment_good.txt和comment_bad.txt中的文本進行去噪處理。

3.3 文本特征提取

3.3.1、過濾標點符號

通過filter_punc函數(shù)對文本的標點符號中進行過濾操作,它通過調(diào)用正則表達式的相應(yīng)程序包,替換掉了所有中英文的標點符號。#將文本中的標點符號過濾掉def filter_punc(sentence): sentence = re.sub( “[\s+.!/_,$%^(+"'“”《》?“]+|[+——!,。?、~@#¥%……&():]+”, “”, sentence)
return(sentence)

3.3.2 中文分詞、單詞過濾

中文分詞是對文本數(shù)據(jù)分析的一種重要環(huán)節(jié),主要的目的是將一個連續(xù)的中文句子按照漢語語言的規(guī)則組合成分開的詞組的過程(腳注)。在python中,通過調(diào)用“jieba”模塊來對原始文本進行分詞。jieba模塊擁有一個自帶的詞典,調(diào)用jieba.lcut(x)函數(shù)就將x中的字符分成若干個詞,并存儲在列表all_words[]中。x為一條評論文本數(shù)據(jù)。由于jieba自帶的詞典不足以滿足我們的需求,因此我們根據(jù)已知數(shù)據(jù)的特性,通過調(diào)用Python的字典(diction)來建立自己專用的單詞表,其中diction中存儲了每個單詞作為鍵(key),一對數(shù)字分別表示詞的編號以及詞在整個語料中出現(xiàn)的次數(shù)作為值(value)。存儲第一個數(shù)值的目的是用數(shù)字來替換文字,存儲第二個數(shù)值的目的是方便查看不同詞的頻率(TF)。根據(jù)公式(2-5)、2(6)統(tǒng)計訓練集中評價的條數(shù)、以及包含某個特征詞的評論條數(shù),用于計算IDF。通過“TF-IDF”指標過濾常見無用詞語,保留 重要的詞語,從而得到更優(yōu)質(zhì)的詞袋。

三 運行結(jié)果與分析

基于PyTorch的中文情緒分析器設(shè)計與開發(fā),python,深度學習,pytorch,人工智能,python

圖3-3 優(yōu)化函數(shù)SDG、學習率為0.01下的三條曲線分布
  圖3-3中藍色的Train Loss表示訓練集上的損失函數(shù),橘色的Valid Loss表示校驗集上的損失函數(shù),綠色的Valid Accuracy表示校驗集上的分類準確度??梢杂^察到,隨著訓練周期的增加,訓練數(shù)據(jù)和校驗數(shù)據(jù)的損失函數(shù)曲線并沒有發(fā)現(xiàn)明顯下降趨勢,甚至于在第10周期之后訓練數(shù)據(jù)的損失函數(shù)一直高于校驗數(shù)據(jù)的損失函數(shù)值,且模型準確率一直不超過70%,這說明模型并沒有訓練成功。將學習率調(diào)整為0.001后再次訓練模型。
  基于PyTorch的中文情緒分析器設(shè)計與開發(fā),python,深度學習,pytorch,人工智能,python

圖3-4 優(yōu)化函數(shù)SDG、學習率為0.001下的三條曲線分布
  觀察圖3-4可知,訓練數(shù)據(jù)的損失函數(shù)曲線在第一個周期之后與校驗數(shù)據(jù)損失函數(shù)曲線持平,也就意味著SGD在學習率為0.001并沒有起到做到作用,且模型準確率低達0.53。將學習率調(diào)整為0.1后再次訓練模型。
基于PyTorch的中文情緒分析器設(shè)計與開發(fā),python,深度學習,pytorch,人工智能,python

圖3-5 優(yōu)化函數(shù)SDG、學習率為0.1下的三條曲線分布
  觀察圖3-5可知,雖然模型的準確率在穩(wěn)步上升,但訓練數(shù)據(jù)的損失函數(shù)值一直高于校驗數(shù)據(jù)的損失函數(shù)值,這說明30步訓練并沒有成功的訓練模型。試著將循環(huán)調(diào)整為15次后對模型進行訓練。
  基于PyTorch的中文情緒分析器設(shè)計與開發(fā),python,深度學習,pytorch,人工智能,python

圖3-6 優(yōu)化函數(shù)SDG、學習率為0.1下的三條曲線分布
  觀察圖3-6可知,模型準確率一直止步于70%,雖然校驗數(shù)據(jù)的損失函數(shù)值一直圍繞著訓練數(shù)據(jù)的損失函數(shù)進行波動,但是該損失值過大,不足以證明模型被訓練好。究其原因,問題可能出現(xiàn)在使用的激活函數(shù)為Relu,因為第二章提到的學習率的問題引發(fā)了Dead ReLU problem,極大可能由于SGD是固定學習率的緣故。因此我們試著采用之前介紹的學習率不固定的Adam優(yōu)化算法訓練模型,初始設(shè)置學習率為0.1。
基于PyTorch的中文情緒分析器設(shè)計與開發(fā),python,深度學習,pytorch,人工智能,python

圖3-7 優(yōu)化函數(shù)Adam、學習率為0.1下的三條曲線分布

五 結(jié) 論

?? 通過利用影視作品的評價數(shù)據(jù)去訓練模型可以得知,對于好作品而言,人們一般不會從電影好的方面去評價一個作品的好壞,更多的是抒發(fā)自己看完電影后的感悟,大部分描述的詞匯與電影的本身內(nèi)容沒有直接的關(guān)聯(lián),這也證實了電影評價的數(shù)據(jù)確實不好用一般的分類模型去分析。此外,模型的精確度還可以通過針對性的對數(shù)據(jù)清洗來提高。
  另一方面“大數(shù)據(jù)”與“教育”的相結(jié)合可能遠遠的會比我們現(xiàn)在所搭建的神經(jīng)網(wǎng)絡(luò)分類器要復雜的許多,我們的分類器暫時也只能做到對文本情緒的好壞進行分類。在情感領(lǐng)域內(nèi),情感的分類遠遠不是非黑即白這么簡單,教育工作者會需要評價文本中蘊含的情感建立更加具有針對性的教育方針的改變,所以我們模型還遠遠達不到這方面的要求。但現(xiàn)在所搭建的神經(jīng)網(wǎng)絡(luò)模型,是更加高級的神經(jīng)網(wǎng)絡(luò)(RNN模型或者LSTM模型)的基礎(chǔ)。路漫漫其修遠兮,擁有扎實的基礎(chǔ)理論才有可能再往上繼續(xù)延伸,這是起點,卻不是終點。

目錄

目錄
1 緒論5
1.1 研究背景5
1.2 國內(nèi)外研究現(xiàn)狀5
1.3 研究問題6
1.4 研究方法與手段7
2 相關(guān)基礎(chǔ)理論8
2.1 主流深度學習框架8
2.2 神經(jīng)網(wǎng)絡(luò)8
2.2.1 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)8
2.2.2 神經(jīng)網(wǎng)絡(luò)的分類任務(wù)9
2.2.3 激活函數(shù)9
2.2.4 損失函數(shù)10
2.2.5 過擬合現(xiàn)象11
2.2.6 泛化能力12
2.2.7 超參數(shù)12
2.3 詞袋模型12
2.4 詞頻逆文檔頻率(TF-IDF)13
3 中文情感分類模型構(gòu)建13
3.1 開發(fā)環(huán)境13
3.2 數(shù)據(jù)部分14
3.3 文本特征提取14
3.3.1 過濾標點符號14
3.3.2 中文分詞及單詞過濾14
3.3.3 文本數(shù)據(jù)向量化14
3.3.4 數(shù)據(jù)劃分15
3.4 神經(jīng)網(wǎng)絡(luò)的搭建15
3.5 運行結(jié)果與分析16
3.6 優(yōu)化與改進模型20
4 方案拓展以及總結(jié)21
4.1 方案拓展21
4.2 方案總結(jié)22
參考文獻23
致謝24文章來源地址http://www.zghlxwxcb.cn/news/detail-738356.html

到了這里,關(guān)于基于PyTorch的中文情緒分析器設(shè)計與開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 分析器:常見問題

    分析器:常見問題

    源生成器(增量生成器)由于它特殊的定位,關(guān)于它的調(diào)試十分困難。在這里分享一些調(diào)試它的經(jīng)驗。 另外經(jīng)常有寫類庫,然后提供可以生成代碼的Attribute給用戶的需求,此時需要用到傳遞引用的知識點。 源生成器項目和普通的項目不同。 普通的會在你按下運行或調(diào)試后才

    2024年02月01日
    瀏覽(15)
  • Elasticsearch 查詢分析器簡介

    Elasticsearch 是一個開源的分布式搜索和分析引擎,它提供了強大的查詢和分析功能。它基于 Apache Lucene 構(gòu)建,支持大規(guī)模數(shù)據(jù)的實時搜索,并具有高可用性和可擴展性。 在 Elasticsearch 中,查詢分析器負責處理用戶搜索的輸入,將文本進行分詞并生成倒排索引。分析器在搜索過

    2024年02月17日
    瀏覽(22)
  • Elasticsearch 文本分析器(下)

    注意:字符過濾器用于在將字符流傳遞給分詞器之前對其進行預處理 此過濾器會替換掉HTML標簽,且會轉(zhuǎn)換HTML實體 如: 會被替換為 。 解析結(jié)果: 因為是 p 標簽,所以有前后的換行符。如果使用span標簽就不會有換行符了。 可配參數(shù)說明 escaped_tags (可選,字符串數(shù)組)不包

    2024年02月08日
    瀏覽(47)
  • Elasticsearch:搜索及索引分析器

    在我之前的文章 “Elasticsearch: analyzer”,我詳細介紹了在 Elasticsearch 中的分析器。分析器在 Elasticsearh 中,它在索引文檔的時候需要使用,同時,它也在搜索時,也需要針對搜索的文字進行分詞。在今天的文章中,我們來詳細介紹分析器是如何在索引及搜索時使用的。 可以在

    2024年02月05日
    瀏覽(23)
  • Lex 生成一個詞法分析器

    Lex 生成一個詞法分析器

    ?lex 通過輸入一個.l 文件生成一個lex.yy.c 文件,然后通過c 編譯器編譯成一個可執(zhí)行的詞法分析器。 該詞法分析器掃描輸入源文件,生成一個token 符號流給后面語法分析器使用。 ? .l 文件的結(jié)構(gòu), 分成三個部分,聲明, 轉(zhuǎn)換規(guī)則, 自定義規(guī)則。 三個部分由%%分割 聲明段,

    2024年02月19日
    瀏覽(21)
  • ElasticSearch 基礎(chǔ)(七)之分析器

    ElasticSearch 基礎(chǔ)(七)之分析器

    就 ES 基礎(chǔ)部分來說這暫時就是最后一篇的文章,寫完之后就會學習 MQ 了。本篇內(nèi)容簡單了解 ES 的分析器,最重要的還是根據(jù)自己需求去定制自定義分析器,自定義分析器自行了解,這里只是基礎(chǔ)。其他比較重要的就是中文分詞器了,只需要知道常用的幾種中文分詞器就可以

    2024年02月09日
    瀏覽(21)
  • Android Profiler 內(nèi)存分析器使用

    Android Profiler 內(nèi)存分析器使用

    Android Profiler是Android Studio的一部分,提供了一個集成的性能分析工具套件,包括內(nèi)存分析。Android Profiler 工具可提供實時數(shù)據(jù),幫助您了解應(yīng)用的 CPU、內(nèi)存、網(wǎng)絡(luò)和電池資源使用情況。 在Android Profiler中,您可以查看內(nèi)存使用情況的實時圖表、堆轉(zhuǎn)儲快照、分析內(nèi)存泄漏等,

    2024年02月08日
    瀏覽(21)
  • 編譯原理-6-LR語法分析器

    編譯原理-6-LR語法分析器

    自頂向下的、不斷歸約的、基于句柄識別自動機的、適用于LR(?) 文法的、LR(?) 語法分析器 只考慮無二義性的文法 自底向上 構(gòu)建語法分析樹 根節(jié)點 是文法的起始符號 S S S 每個中間 非終結(jié)符節(jié)點 表示 使用它的某條產(chǎn)生式進行歸約 葉節(jié)點 是詞法單元$w$$ 僅包含終結(jié)符號與

    2024年02月05日
    瀏覽(52)
  • 編譯原理詞法分析器(C/C++)

    編譯原理詞法分析器(C/C++)

    ? ? ? ? 詞法分析器不用多說,一開始我還不知道是什么樣的,看了下別人的博客,再看看書,原來是輸出二元組,這不就是字符串操作嘛。然后細看幾篇博客,發(fā)現(xiàn)大都是用暴力判斷來寫的。我對代碼重復性比較高的方法不太感冒,不是說我編程有多好,就是單純的不喜歡

    2024年02月06日
    瀏覽(86)
  • 【編譯原理】 實驗一:詞法分析器的自動實現(xiàn)(Lex詞法分析)

    【編譯原理】 實驗一:詞法分析器的自動實現(xiàn)(Lex詞法分析)

    相關(guān)代碼實操移步視頻 https://www.bilibili.com/video/BV13x4y1o7FL 1.借助詞法分析工具Flex或Lex完成(參考網(wǎng)絡(luò)資源) 2.輸入:高級語言源代碼(如helloworld.c) 3.輸出:以二元組表示的單詞符號序列。 通過設(shè)計、編制、調(diào)試一個具體的詞法分析程序,加深對詞法分析原理的理解,并掌握

    2024年02月08日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包