數據清洗之如何用一行Python代碼去掉文本中的各種符號
前言
在搜集了很多文本語料之后,會開始漫長的數據清洗過程,通常要不斷迭代。
1. 問題描述
有些文本數據中,會包含一些特殊符號。
猜想可能是從某些富文本編輯器中直接粘貼到了網頁。
如果要清除這些特殊符號,就需要專門的工具。
2. 相關知識
Unicode標準把符號分為四大類,分別是:
縮寫 | 詳情 |
---|---|
[Sc] | Symbol, Currency |
[Sk] | Symbol, Modifier |
[Sm] | Symbol, Math |
[So] | Symbol, Other |
一般需要清理掉的符號會是So
類型的,但還是要根據自己的數據情況具體分析。
3. 解決方案
在數據清洗過程中遇到的符號可能包括:雜項符號、幾何形狀、箭頭、心形、星形、表情Emoji、貨幣符號等。
如果以上這些符號都要刪除,可以用下面的代碼。
text = "".join(ch for ch in text if unicodedata.category(ch)[0]!= 'S')
如果需要單獨去除某一類,或者希望知道某個符號所屬的具體類別,就需要到這個網站:
https://www.unicode.org/charts/charindex.html
查找對應的符號類型。
以箭頭符號為例。
先用Arrow搜索上面的網頁,找到純粹的箭頭項Arrows,對應的文檔是:https://www.unicode.org/charts/PDF/U2190.pdf
找到自己需要的箭頭,并查看對應的名字。
舉例:箭頭
RIGHTWARDS ARROW,然后用python
提供的unicodedata
標準庫,查找這個符號的類別。
unicodedata.lookup('RIGHTWARDS ARROW') '→' unicodedata.category('→') 'Sm'
這樣,就知道要查找的箭頭符號,屬于Sm類別(數學符號)。
舉例:黑色方塊
BLACK SQUARE ■ U+25A0
unicodedata.lookup('BLACK SQUARE') '■' unicodedata.category('■') 'So'
舉例:黑色心形
unicodedata.lookup('BLACK HEART SUIT') '?' unicodedata.category('?') 'So'
舉例:黑色星形
unicodedata.lookup('BLACK FOUR POINTED STAR') '?' unicodedata.category('?') 'So'
如果只需要去除雜項符號,可以用下面的python代碼。
text = "".join(ch for ch in text if unicodedata.category(ch) != 'So')
另一個有用的網址:
https://www.fileformat.info/info/unicode/category/index.htm
總結
到此這篇關于數據清洗之如何用一行Python代碼去掉文本中的各種符號的文章就介紹到這了,更多相關Python去掉文本各種符號內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Keras SGD 隨機梯度下降優(yōu)化器參數設置方式
這篇文章主要介紹了Keras SGD 隨機梯度下降優(yōu)化器參數設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python dataframe實現統(tǒng)計行列中零值的個數
這篇文章主要介紹了python dataframe實現統(tǒng)計行列中零值的個數,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02Python中判斷語句入門指南(if?elif?else語句)
if elif else語句是Python中的控制語句,用于根據條件執(zhí)行不同的操作,下面這篇文章主要給大家介紹了關于Python中判斷語句入門指南(if?elif?else語句)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-05-05Python使用matplotlib繪制Logistic曲線操作示例
這篇文章主要介紹了Python使用matplotlib繪制Logistic曲線操作,結合實例形式詳細分析了Python基于matplotlib庫繪制Logistic曲線相關步驟與實現技巧,需要的朋友可以參考下2019-11-11