【NLP】如何清理文本数据?
作者 | Matt Przybyla
編譯 | VK
來源 | Towards Data Science
目錄
介紹
清除文本數據
總結
參考引用
介紹
數據在大多數情況下都是雜亂無章、雜亂無章、難以處理的,這一點也不足為奇。
當你從教育實踐中學習數據科學時,你將看到大多數數據都是從多個來源、多個查詢中獲得的,這可能會導致一些不干凈的數據。
在某些或大多數情況下,你必須提供最終用于訓練模型的數據集。有一些文章關注數字數據,但我希望本文的重點主要是文本數據,這與自然語言處理是一致的。
話雖如此,這里有一個簡單的方法來清理Python中的文本數據,以及它何時有用。我將使用來自TMBDF5000電影數據集[2]的流行數據集。
清除文本數據
刪除停用詞
另一種解釋“停用詞”的方法是刪除不必要的文本。
但是,需要注意的是,當你使用常用的停用詞庫時,你可能正在刪除你實際上想要保留的單詞。
這就是為什么你應該首先考慮你想要刪除的單詞列表。停用詞的常見例子有“the”、“of”等。你想要刪除這些單詞的原因是你想要保留這些單詞、短語、句子等的主題。
例如“ there was the time where they went to the store in July for the holiday party’”。如果你刪除了停用詞和一些不必要的詞,你就會得到 time, July, holiday, party 。
話雖如此,讓我們看看如何從電影標題中刪除一些停用詞:
import?pandas?as?pdimport?nltk.corpus nltk.download(‘stopwords’) from?nltk.corpus?import?stopwordsdf?=?pd.read_csv('...path/tmdb_5000_movies.csv')stop_words?=?stopwords.words('english') df['clean_title']?=?df['title'].apply(lambda?x:?'?'.join([word?for?word?in?x.split()?if?word?not?in?(stop_words)]))在上面的代碼中,我們導入必要的庫,然后將數據讀入數據框。
從這里,我們刪除“title”列文本中的停用詞,它們將在“ clean_title ”列中顯示各自的效果。
輸出是我們在下面看到的。在第1行、第3行和第8行中,刪除了stopwords,你可以通過before和after并排看到這一點。
除了nltk中的停用詞庫外,你還可以“手動”添加其他停用詞。為了實現這個功能,你可以簡單地添加一個字符串列表來添加停用詞。
例如,如果我們想刪除文本“3”,因為它在本例中不是一個數字,我們可以將其添加到列表中,以及單詞“At”和字母“v”。其工作原理如下所示:
stop_words?=?stopwords.words(‘english’)?+?[‘At’,?‘v’,?‘3’]#?應用與上面相同的代碼,但分配一個新列來查看差異df['clean_title_v2']?=?df['title'].apply(lambda?x:?'?'.join([word?for?word?in?x.split()?if?word?not?in?(stop_words)]))在下面的屏幕截圖中,你可以看到lambda函數如何刪除添加的字符串列表中的值。
現在我們已經展示了一種清理文本數據的方法,讓我們討論一下這個過程對數據科學家有用的可能應用:
刪除不必要的單詞以便可以執行詞干分析
與上面類似,你可以使用詞形還原
只保留必要的單詞可以讓你更容易地標記數據中的詞類,例如,如果你只標記形容詞,并在數據中使用該文本作為模型,那么像“ beautiful ”、“ amazing ”、“ loud ”就可以用來預測電影評論的目標變量。一個模型將能夠更容易地從形容詞中識別情感,從而辨別電影評論是好是壞,或者電影需要改進什么
根據更新文本的主要詞語創建摘要儀表板,例如,去掉“蜘蛛俠1”、“蜘蛛俠2”和“蜘蛛俠3”中的數字,將允許對所有蜘蛛俠電影進行分析
更容易進行主題建模
少量文本,以便你的建??梢愿?、更便宜地進行訓練和預測
可以用來刪除錯誤的文本,你可以自動刪除通常被語音錯誤解釋的單詞。
當然,有更多的理由刪除停用詞,并清理文本數據。同樣重要的是要記住,有一些新興的算法可以很好地處理文本數據,比如CatBoost。
總結
如你所見,清理數據的一部分可以為進一步清理和處理數據奠定基礎。最終會使模型更加健壯和準確。
總而言之,以下是如何從文本數據中刪除停用詞:
*?導入庫*?導入數據集*?刪除停用詞*?添加單獨的停用詞更新:由于單詞的大小寫是大寫的,所以沒有按應該的方式刪除它,因此請確保在清理之前將所有文本都小寫。
感謝閱讀!
參考引用
[1] Photo by JESHOOTS.COM on Unsplash, (2019)
[2] Kaggle, TMBDF 5000 Movie Dataset, (2021 — accessed)
[3] Photo by Marylou Fortier on Unsplash, (2020)
[4] M.Przybyla, cleaning text example, (2021)
[5] M.Przybyla, cleaning text example plus adding individual stop words, (2021)
?---------------------------------------
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【NLP】如何清理文本数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公网可用的RTMP、RTSP测试地址(更
- 下一篇: PP视频怎么设置可以运行多个客户端