本文關鍵詞:文字資料預處理、中文文字預處理、自然語言處理
摘要: 要進行自然語言處理相關工作,文字資料預處理是個必不可少的過程。本文將對文字資料預處理相關的內容進行歸納整理,主要包括以下4個方面內容:
「巧婦難為無米之炊」,要做文字資料處理,首先需要獲得文字資料。對於此問題,大家可以「八仙過海,各顯神通」,藉助一切合法、合理方式收集資料集。一般的,可以通過:自有資料整理、公開資料爬取和開源資料參照三個渠道獲取資料。
自有資料:收集整理自有或者組織內部的可用資料集。
爬取資料:爬蟲是獲取資料的重要手段,但是在執行該操作前需遵守相關法規和Robots協定,在爬取資料後合法應用資料。通常,可以通過requests、BeautifulSoup4和Selenium等python工具完成絕大多數爬取任務。
圖片豆瓣電影評論爬取可參考:
https://www.cnblogs.com/fengxi177/p/16939376.html
專案名 | 專案連結 | 專案概述 |
---|---|---|
CLUEDatasetSearch | https://github.com/CLUEbenchmark/CLUEDatasetSearch | 收集了眾多中英文NLP資料集 |
funNLP | https://github.com/fighting41love/funNLP | 分門別類的組織了眾多的NLP資料集和專案 |
awesome-chinese-nlp | https://github.com/crownpku/Awesome-Chinese-NLP | 收集了中文自然語言處理相關資料 |
Chinese_medical_NLP | https://github.com/lrs1353281004/Chinese_medical_NLP | 收集了醫療NLP領域(主要關注中文)評測資料集與論文相關資源 |
由此,在收集好原始資料集後便可進行後續相關的NLP分析了。
特別的,資料集可以儲存為txt、json、csv、tsv、sql表等等格式,只要你喜歡,都可以(哈哈哈,有些格式可能會比較佔用記憶體,較巨量資料集時需要留意)。
圖片此處分享一個csv超大檔案資料讀取技巧,即利用pandas的chunksize分塊讀取。
import pandas as pd
df = pd.read_csv("data.csv", chunksize=10000) # 每次讀取1w行資料
for df_chunk in df:
print(df_chunk)
文字資料作為一種非結構化資料,除了特別處理過的資料集,大多數直接收集的文字資料會摻雜或多或少的無用資訊,如果直接將其進行相關的文字分析於建模是無益的。通常,需要先對文字資料進行預處理操作。
文字資料預處理的主要目的一般有兩個,即:
(1)將文字資料淨化乾淨(標準自定)
(2)將文字資料格式化(需求自定)
空格換行符,利用replace操作將原始文字中的空格、tab鍵、換行符\n、\r等與文字無關的字元直接替換為空。
無用資訊剔除,如:停用詞表構建。
標點符號去除,利用正規表示式去除標點符號,中英文標點符號可以通過如下兩個方式獲取。
中文標點符號:from zhon.hanzo import punctuation (需要安裝包:pip install zhon)
英文標點符號:from string import punctuation
特別的,文字情感分析中,可保留有情感傾向的標點符號,如:?和!
在噪聲資料中提取需要資料,利用正規表示式完成資料提取。如:只需要提取漢字時可以利用正則[\u4e00-\u9fa5]
簡體繁體轉換,可安裝包:pip install opencc
英文資料:詞形還原、大小寫轉換等 (推薦python包:NLTK)
至此,經過常規預處理後,文字資料會變的比較乾淨與規整,可以用於後續nlp研究與應用。(說明,適用於自己任務的操作才是必須的,其他的參照奧卡姆剃刀「如無必要,勿增實體」)。
前面介紹了通常情況下文字預處理可能涉及的注意點,但是要真正的做好資料預處理,應該與具體的任務相結合起來。比如:資料不平衡問題,資料增強問題、資料標註問題等等。
特別的,如需獲得泛化效能好的模型,首先需要關注解決不平衡問題。
資料太少,那就需要利用規則和演演算法增強資料,使資料多樣化。
對於文字預處理工作,目前已有一些專門的工具包,功能比較多樣,大家可以試用一下,提升自己處理資料的效率和質量。
本文對文字預處理,特別是中文文字預處理做了一個簡要的概述,希望於相關的nlper有所幫助。後續,將依次遞進分享相應的NLP文章,敬請關注。
特別的,如本文有疏漏,麻煩留言指出,以期校正提升。
如看到文章的小夥伴有感興趣的nlp主題,歡迎留言交流討論,共同撰文分享。
原文首發於微信公眾號:實用自然語言處理
本文來自部落格園,作者:風兮177,轉載請註明原文連結:https://www.cnblogs.com/fengxi177/p/17078347.html