RNN
Convolutional Neural Network(CNN) 卷積神經網路在圖片辨識上效果最佳,而 Recurrent Neural Network(RNN) 循環神經網路則在語言訓練、情緒分析等表現較為出色。RNN 主要有三種模型,分別為 Simple RNN、LSTM、GRU 三種。
LSTM 模型
LSTM (Long short-term memory) 稱為長短期記憶模型。
LSTM 擅長將語音轉換為文字。由於語音指示隨著時間變化的訊號,LSTM 可以利用這些訊號預測文字,並根據文字出現的次序更好地判斷接下來的文字。LSTM 也因此擅長於任何和時間有關的資訊,包括音訊、影片,以及機器人學(robotics)。由於機器人學基本上只是探討代理個體(agent)根據一連串感測而得的資訊所作出的判斷和動作,這類資料本身就帶有序列性(sequential),即不同時間內所採取的動作,也和之後的感測與判斷有關。
LSTM 可作為情緒監控模型,傳入大量的文章,並在每篇文章前標示為正向或負面即可。其演算原理可以先不用理會,只須了解其步驟即可。
情緒監控 Sentiment [ˋsɛntəmənt],有點類似 emotion 這個字。情緒監控,目的在監控發表的文論,判斷屬於正面或是負面。這可以讓網站的管理者不用親自去看完每篇文章的內容。
這有什麼用途呢? 當然是把對自已不好的留言刪除,也可以刪除黃色廣告,暴力言論等留言,但現在被政府濫用於監控人民的言論。說穿了,就是解析文章中有不利的詞字,然後抓出來。
安裝套件
本專案需安裝如下套件
pip install scipy scikit-learn nltk gensim xlrd openpyxl pandas tensorflow matplotlib
LabelEncoder
LabelEncoder 是 scikit-learn 裏的功能,主要是去除重複的單字,然後排序,最後再傳回排序後的索引編號。
encoder.fit(planet) 過濾重複的單字與排序。 encoder.transform(planet) 傳回每個單字在 encoder 裏的索引編號。亦可直接使用 encoder.fit_transform(planet) 一步完成。
最後的Counter 是 collections (集合的功能),主要是算出每個單字出現的次數。
🔒 更多內容,請登入會員繼續閱讀。
立即登入Sentiment140 資料分析
前面英文向量化中 Sentiment140 檔案包含了160萬個詞句,並將每個詞句分類為 0:NEGATIVE,2:NEUTRAL, 4:POSITIVE 三個類別。
第一欄位為 target,只有 0 及 4 二個。0 代表 Negative負評,4 代表 Positive 正評,如果偵測結果不屬於 Negative,也不屬於 Positive,那麼就是 Neutral (2,中立)。
第 2~4 欄不用理會。
第 5 欄位為 text, 即為發表的文章
Embedding
崁入層,其實是映射層,從語義空間映射到向量空間,同時盡可能在向量空間中,保持與語義空間的關係,如果語義接近的兩個詞,在向量空間中的位置也比較接近。
keras 有規定, Embedding 層只能放置於模型的第一層。
請參考 https://blog.csdn.net/songyunli1111/article/details/85100616
模型訓練
繼英文向量化所產生的 w2v_model 模型,以及 Tokenizer字典 製作出來的字典,先載入這二個檔,然後新增 LSTM 情緒模型訓練。
w2v_model 模型可到本站 w2v_model_300下載,字典下載為 eng_dictionary.pkl ,請將這二個檔下載解開後,置專案根目錄下。
情緒模型在 Linux 下可以使用 GPU 訓練,時間約 24 分鐘。訓練好的模型為 sentiment_model_300.keras 檔案。
🔒 更多內容,請登入會員繼續閱讀。
立即登入訓練完的損失圖形如下

情緒偵測
載入 LSTM 模型及 eng_dictionary.pkl 字典,就可以開始偵測。
模型訓練不出來的人,可在本站下載 sentiment_model_300.keras 或 sentiment_model_600.keras,置於專案之下即可。另外需下載字典的人,也可於本站下載 eng_dictionary.pkl
🔒 更多內容,請登入會員繼續閱讀。
立即登入參考
https://ithelp.ithome.com.tw/articles/10206312
https://www.kaggle.com /code/paoloripamonti/twitter-sentiment-analysis
https://brohrer.mcknote.com/zh-Hant/how_machine_learning_works/how_rnns_lstm_work.html
