今天在圖書館查了不少資料,感覺沒什麼特別好的學習途徑。
主要通過部落格,李航的《統計學習方法》,相關比賽**來學習。
首先還是介紹幾個名詞,乙個新領域總是有很多新名詞。
tokenization:將文字轉化為tokens的過程
tokens:在文字裡的展示的單詞或實體
文字分析也好,平時做的資料探勘也好,開始都是需要資料預處理。
文字分析點資料預處理的過程主要包括以下三個部分:
雜訊移除
詞彙規範化
物件標準化
這裡我們首先介紹雜訊移除。
所謂雜訊移除就是把對我們來說沒有用的冗餘tokens去掉,例如語氣詞。
ps:在情感分析中,語氣詞、感嘆號是應該保留的,因為他們對表示語氣程度、感**彩有一定的貢獻和意義
比較常用的方法是通過先設定好噪音詞典,然後遍歷一下文字,去除那些被詞典標註為噪音的tokens。
寫乙個雜訊移除的函式
#先準備乙個噪音詞典,記錄了你要除掉的tokens。
結果很明確。
要注意的是split和re.split的區別。
re.split可以用多個分隔符分割文字。
split適合於單個分隔符,當需要使用多個分隔的時候,可以逐次使用。
re.split適合多個分隔符,使用起來有兩種方式
比如我**中使用的,words=re.split(』[, ]』,text)
在這裡,split的第乙個引數,也就是傳入分隔符的。
我傳入了乙個列表,裡面有兩個元素,逗號和空格。
注意這個列表裡每個元素之間沒有空格和逗號,因此有空格的話就說明要通過空格分隔。
為了清楚一點,再舉乙個例子。
re.split("[;,?]")
這個則是實現分號,逗號,問號三個分隔符。
還可以使用正規表示式處理一些特定模式的噪音,
函式:
def remove_regex(input_text,regex_pattern):
urls=re.finditer(regex_pattern,input_text)
for i in urls:
input_text=re.sub(i.group().strip(),'',input_text)
return input_text
呼叫:
regex_pattern=['#[\w]*','#[\w]','#[\w][\w]']
for regex_patterns in regex_pattern:
result=remove_regex("i #dont like sing jump and rap",regex_patterns)
print(result)
結果:
通過結果大家應該可以看出
regex_pattern=[』#[\w]*』,』#[\w]』,』#[\w][\w]』]
各部分代表的意思。
文字分析入門(二)
還是先上新概念。分詞我們在做文字挖掘的時候,要對文字做的預處理首先就是分詞。對於英文來說,因此單詞之間天然有空格隔開,因此可以按照空格分詞 但也有需要把多個單詞做成乙個分詞的時候 而對於中文來說,由於沒有空格,那麼分詞就變成了乙個需要專門去處理去解決的問題。我們現在的分詞都是基於統計來分詞。對於乙個...
python,文字分析
記得將當前目錄設定為檔案目錄 spyder編譯器的右上角,本人用spyder filename input 請輸入你的檔名 file open filename txt try for eachline in file print eachline except print 開啟檔案出錯 final...
文字分析awk
awk awk是乙個強大的文字分析工具。相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,空格,製表符 為預設分隔符將每行切片,切開的部分再進行各種分析處理。awk f 支援自定義分隔符 支援正規表示式匹配 支援自定義變數,陣列 ...