2017-04-26 86 views
-1

我正在從twitter獲取推文,我想做詞頻但避免表情符號和奇怪的字符。我已經看到這個角色具有以下形式:u'*',所以他們總是以\開頭,但是當我試圖將這個角色作爲過濾器時,它不允許我因爲\是一個特殊字符。你知道我怎樣才能過濾這種單詞? 我裝上10個最常用的詞,我有:過濾從''開始的詞

[(u'#ElClasico', 3311), 
(u'RT', 2839), 
(u'\ud83d', 1425), 
(u'#Messi', 1369), 
(u'\u2026', 1092), 
(u'Messi', 975), 
(u'Barcelona', 964), 
(u'\u2705', 948), 
(u'Most', 944), 
(u'500', 903)] 

我想刪除U '\ ud83d' U '\ 2026' 和U '\ 2705'

+0

U + D83D是一個替代項,表明您已經損壞了您的輸入。 U + 2026是一個標點符號。你應該非常小心地過濾你的輸入 - 例如,你會對重音字母做些什麼? –

+0

那麼你推薦什麼來擦除不是單詞的特殊字符呢? –

回答

0

如果你想過濾出非拉丁字符,那麼你就可以利用圖書館regex

from regex import VERSION1, UNICODE, compile 

# remove non-Latin characters. 
compile(ur'\p{^Latin}+', VERSION1 | UNICODE).sub('', YOUR_INPUT) 

# remove non-Latin/non-space/non-punctuation characters. 
compile(ur'[^\p{Latin}\p{Zs}\p{Po}]+', VERSION1 | UNICODE).sub('', YOUR_INPUT) 

CF卡:

+0

非常感謝,但問題是,使用第一次編譯我現在得到這個輸出:英語中最常用的單詞是:[(u'',10041),(u'ElClasico',3311),(u'RT (U'Messi',2444),(u'Barcelona',1011),(u'Most',944),(u'Lionel',872),(u'goals',834), (u'goal',767),(u'th',633)]所以我想抹掉表情符號,不僅僅是改變他們的''' –