去掉低頻詞、分詞、繁簡轉化、替換奇異詞等是中文文字資料處理中的重要步驟。
如在主題模型中,資料預處理的要求很簡單,只需要去掉低頻詞,大多數文章設定的門限都是5或者6.
中文文字相比於英文,需要首先進行分詞處理。類似地還有日文、韓文等。因而自然預言處理中乙個重要的研究問題就是文字分詞技術。
兩者都有python版本,下面以jieba分詞為例:
import jieba
seg_list = jieba.cut("我來到北京清華大學", cut_all=true)
英文**中,常見到會對文字進行詞幹化處理(stemming), 就是吧把具有相同詞幹的單詞整理成乙個單詞,也有點去掉低頻詞的意味,可以明顯改善詞頻較低的問題。主要原因還是因為在自然預言理解的時候,乙個詞被替換成其詞幹不會影響理解,而能夠改善詞頻較低的問題。是統計建模前的必要處理過程。如:
tall, taller, tallest
good, better, best
當然了,中文資料集中包括很多數字、英文單詞、表情符號等。因而需要用正規表示式將他們全部提取出來。有很多文章研究了中文字元、中亞字元等的unicode範圍,下面是乙個自測滿足中文字元提取的**,直接copy用就好了。
def
chinese_word_extraction
(content_raw):
chinese_pattern = u"([\u4e00-\u9fa5]+)"
re_data = chi_pattern.findall(content_raw)
content_clean = ' '.join(re_data)
我處理的網易新聞資料集中有乙個問題,就是網民在提到自認為的敏感詞的時候,會採用同音字、典故等方法進行替換。或者在敏感詞中加入一些特殊符號進行間隔。這些方法都太*****了,利用同音字對映、聯絡上下文和正則提取等方法就能解決這些問題。以後有時間了可以研究一下,挺有意思,而且已有的頂會**好像就專門研究了這個問題。下面是我根據觀察發現的若干常用替換:
replace_dict =
還非常不全面,也不是長久之計,下面搞一搞這個問題說不定還能水一篇**,哈哈。 NLP 中文文字預處理
jieba是乙個專門處理中文分詞的分詞庫,但其實功能比單純的分詞強大許多。中文不同於英文可以通過空格分開每個有意義的詞,對於中文需要乙個工具將完整的文字分割成更細緻的詞語,類似於英文分詞中使用的nltk工具,中文中需要使用jieba。pip install jieba 4.詞性標註 5.tokeni...
BERT 處理中文文字任務
bert模型是google在2018年10月發布的語言表示模型,bert在nlp領域橫掃了11項任務的最優結果,可以說是現今最近nlp中最重要的突破。bert模型的全稱是bidirectional encoder representations from transformers,是通過訓練mask...
中文文字糾錯
u4e00 代表什麼意思 u9fa5 代表什麼意思?答 u4e00 u9fa5是用來判斷是不是中文的乙個條件,採用的是unicode編碼 參考website 2020 9 1 最全面,精華 中文糾錯 待看完中文文字拼寫檢查錯誤糾正方案整理 關聯pycorrector 小練習 簡化 import pa...