12個NLP學習創意項目(附源碼)
自然語言處理(NLP)是機器學習的一部分。使用自然語言進行人機交互是NLP研究的主題。NLP在行業中有著廣泛的應用,如:蘋果Siri語音對話助手、語言翻譯工具、情感分析工具、智能客服系統等。
本文介紹一些有創意的NLP開源項目,包含從新手的簡單NLP項目到專家的挑戰性NLP項目,這些應該有助于提高NLP的實踐能力。
一、四個為初學者項目
1.關鍵詞提取
該項目的目標是使用TF-IDF和Python的Scikit-Learn庫從數據文本中提取有趣的關鍵字。數據集是StackOverflow。
源代碼:https://github.com/kavgan/nlp-in-practice/tree/master/tf-idf
2.使用Seq2Seq模型的聊天機器人
這個項目使用Seq2Seq模型來構建一個簡單的聊天機器人。Python代碼中使用了TensorFlow庫。
源代碼:https://github.com/llSourcell/tensorflow_chatbot
3.語言標識符
在網頁中識別特定文本的語言,需要過濾多種方言,俚語和語言之間的通用術語。機器學習大大簡化了這個過程。可以使用Facebook的fastText范例創建語言標識符。該模型使用詞嵌入來理解語言,并擴展了word2vec工具。
源代碼:https://github.com/axa-group/nlp.js
4.從新聞標題中提取股票情緒
過去,金融新聞通過廣播、報紙和口口相傳,在一段時間內緩慢傳播。在互聯網時代,傳播只需要幾秒鐘。來自財報電話會議的數據流甚至可以被用來自動生成新聞文章。通過對財經新聞標題進行情緒分析,可以產生投資相關的決策信息,能夠破譯頭條新聞背后的情緒,并通過使用這種自然語言處理技術來預測市場對股票的正面或負面影響。
源代碼:https://github.com/copev313/Extract-Stock-Sentiment-From-News-Headlines/tree/main
二、四個中級NLP項目
5.使用BERT進行深度學習的情緒分析
使用PyTorch 對grin注釋數據集進行分析,并從預訓練的BERT Transformer中進行大規模語言學習,以構建情感分析模型。多分類是該模型的體系結構。在探索性數據分析(EDA)期間完成令牌化器和附加數據編碼的加載。數據加載器使批處理更容易,然后設置Optimizer和Scheduler來管理模型訓練。
為了調節PyTorch對BERT加速器的微調,創建一個訓練循環以實現可測量模型的性能指標。可對預訓練、微調模型的性能進行了評估。該模型達到了良好的準確性。
源代碼:https://github.com/dA505819/Sentiment_Analysis_with_Deep_Learning_using_BERT/tree/master
6.NLP主題建模 LDA-NMF
在這個項目中,主題建模是使用LDA和NMF。此外,TF-IDF文章推薦引擎的開發,在于響應關鍵字輸入,它推薦的頂部文件來自于一個基于余弦相似度的文件池。
源代碼:https://github.com/AnushaMeka/NLP-Topic-Modeling-LDA-NMF/tree/master
7.語音情感分析儀
這個項目的目標是開發一個神經網絡模型,用于識別我們日常談話中的情緒。男性、女性神經網絡模型能夠檢測多達五種不同的情緒。這可以應用于個性化營銷,根據情緒推薦產品。同樣,汽車制造商可以利用這一點來衡量司機的情緒,以改變速度,防止碰撞。
源代碼:https://github.com/MiteshPuthran/Speech-Emotion-Analyzer
8.使用LSTM的圖像字幕
圖片字幕的目的是對圖片的內容和背景進行簡潔準確的解釋。圖像字幕系統的應用包括自動圖片分析、內容檢索,可以對視覺障礙者提供幫助。
長短期記憶(LSTM)是一種遞歸神經網絡(RNN)架構,適用于需要對順序輸入中的長期關系進行建模的圖片字幕等應用。卷積神經網絡(CNN)在使用LSTM的圖像字幕系統中處理輸入圖像,以便提取表示圖像的固定長度特征向量。LSTM網絡使用這個特征向量作為輸入,逐字創建字幕。
源代碼:https://github.com/ZhenguoChen/Neural-Network-Image-Captioning
三、四個高級NLP項目
9.科技文章關鍵詞提取
從科學論文中提取關鍵短語的自然語言處理(NLP)任務包括從文本中自動查找和提取重要單詞或術語。
有許多方法用于提取關鍵短語,包括基于規則的方法、無監督方法和監督方法。無監督方法使用統計技術來確定文檔中最關鍵的術語,而基于規則的方法使用一組預定義的標準來選擇關鍵短語。
源代碼:https://github.com/intelligence-csd-auth-gr/keyphrase-extraction-via-summarization
10.基于元學習的文本分類
為某些NLP任務(如情感分析,文本分類等)量身定制的機器學習模型并在多個任務上訓練,是使用元學習進行文本分類所必需的過程。這種方法比從頭開始訓練模型的性能更好,因為它使用從完成類似任務中學到的知識來快速適應新任務。通過使用來自支持集的數據調整模型的參數,目標是減少查詢集上的損失。
源代碼:https://github.com/phanxuanphucnd/meta-learning
11.關于Distilbert
介紹論文DistilBERT是BERT的蒸餾版本,比原始BERT更小,更快,更便宜,更輕。DistilBERT是BERT基礎訓練的Transformer模型,它緊湊、快速、經濟實惠且輕便。與bert-base-uncased相比,它的運行速度快60%,使用的參數少40%,同時在GLUE語言理解基準測試中保持了BERT 95%以上的性能。此模型是一個基于DistilBERT的未加cased微調檢查點,它是使用SQuAD v1.1上的知識蒸餾(第二步)進行細化的。
文章:https://huggingface.co/distilbert-base-uncased-distilled-squad
12.使用BERT完成掩碼字
BERT是一個Transformers模型,它是在相當大的英語數據語料庫上進行自我監督預訓練的。這意味著,在僅對原始文本進行預訓練而沒有任何人工標記之后,使用自動過程來從這些文本生成輸入和標簽(這解釋了為什么它可能使用大量可用的數據)。該模型的兩個學習目標包括:“下一句”預測(NSP)和掩蔽語言建模(MLM)。假如你有一個標記句子的數據集,那么就可以使用BERT模型產生的特征作為輸入進行訓練。
文章:https://huggingface.co/bert-base-uncased