文字分析入門(一)

2021-09-21 13:48:39 字數 1947 閱讀 4946

今天在圖書館查了不少資料,感覺沒什麼特別好的學習途徑。

主要通過部落格,李航的《統計學習方法》,相關比賽**來學習。

首先還是介紹幾個名詞,乙個新領域總是有很多新名詞。

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 支援自定義分隔符 支援正規表示式匹配 支援自定義變數,陣列 ...