數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號(hào)
前言
在搜集了很多文本語料之后,會(huì)開始漫長(zhǎng)的數(shù)據(jù)清洗過程,通常要不斷迭代。
1. 問題描述
有些文本數(shù)據(jù)中,會(huì)包含一些特殊符號(hào)。
猜想可能是從某些富文本編輯器中直接粘貼到了網(wǎng)頁。
如果要清除這些特殊符號(hào),就需要專門的工具。
2. 相關(guān)知識(shí)
Unicode標(biāo)準(zhǔn)把符號(hào)分為四大類,分別是:
縮寫 | 詳情 |
---|---|
[Sc] | Symbol, Currency |
[Sk] | Symbol, Modifier |
[Sm] | Symbol, Math |
[So] | Symbol, Other |
一般需要清理掉的符號(hào)會(huì)是So
類型的,但還是要根據(jù)自己的數(shù)據(jù)情況具體分析。
3. 解決方案
在數(shù)據(jù)清洗過程中遇到的符號(hào)可能包括:雜項(xiàng)符號(hào)、幾何形狀、箭頭、心形、星形、表情Emoji、貨幣符號(hào)等。
如果以上這些符號(hào)都要?jiǎng)h除,可以用下面的代碼。
text = "".join(ch for ch in text if unicodedata.category(ch)[0]!= 'S')
如果需要單獨(dú)去除某一類,或者希望知道某個(gè)符號(hào)所屬的具體類別,就需要到這個(gè)網(wǎng)站:
https://www.unicode.org/charts/charindex.html
查找對(duì)應(yīng)的符號(hào)類型。
以箭頭符號(hào)為例。
先用Arrow搜索上面的網(wǎng)頁,找到純粹的箭頭項(xiàng)Arrows,對(duì)應(yīng)的文檔是:https://www.unicode.org/charts/PDF/U2190.pdf
找到自己需要的箭頭,并查看對(duì)應(yīng)的名字。
舉例:箭頭
RIGHTWARDS ARROW,然后用python
提供的unicodedata
標(biāo)準(zhǔn)庫,查找這個(gè)符號(hào)的類別。
unicodedata.lookup('RIGHTWARDS ARROW') '→' unicodedata.category('→') 'Sm'
這樣,就知道要查找的箭頭符號(hào),屬于Sm類別(數(shù)學(xué)符號(hào))。
舉例:黑色方塊
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'
如果只需要去除雜項(xiàng)符號(hào),可以用下面的python代碼。
text = "".join(ch for ch in text if unicodedata.category(ch) != 'So')
另一個(gè)有用的網(wǎng)址:
https://www.fileformat.info/info/unicode/category/index.htm
總結(jié)
到此這篇關(guān)于數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號(hào)的文章就介紹到這了,更多相關(guān)Python去掉文本各種符號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+pyftpdlib實(shí)現(xiàn)局域網(wǎng)文件互傳
這篇文章主要介紹了Python+pyftpdlib實(shí)現(xiàn)局域網(wǎng)文件互傳,需要的朋友可以參考下2020-08-08Python灰度變換中位圖切割分析實(shí)現(xiàn)
灰度變換是指根據(jù)某種目標(biāo)條件按一定變換關(guān)系逐點(diǎn)改變?cè)磮D像中每個(gè)像素灰度值的方法。目的是改善畫質(zhì),使圖像顯示效果更加清晰。圖像的灰度變換處理是圖像增強(qiáng)處理技術(shù)中的一種非?;A(chǔ)、直接的空間域圖像處理方法,也是圖像數(shù)字化軟件和圖像顯示軟件的一個(gè)重要組成部分2022-10-10Python可執(zhí)行文件反編譯教程(exe轉(zhuǎn)py)
python的便利性,使得如今許多軟件開發(fā)者、黑客都開始使用python打包成exe的方式進(jìn)行程序的發(fā)布,那么Python如何反編譯可執(zhí)行文件,本文就來介紹一下,感興趣的可以了解一下2021-12-12Python實(shí)現(xiàn)從log日志中提取ip的方法【正則提取】
這篇文章主要介紹了Python實(shí)現(xiàn)從log日志中提取ip的方法,涉及Python文件讀取、數(shù)據(jù)遍歷、正則匹配等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03Keras SGD 隨機(jī)梯度下降優(yōu)化器參數(shù)設(shè)置方式
這篇文章主要介紹了Keras SGD 隨機(jī)梯度下降優(yōu)化器參數(shù)設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06python dataframe實(shí)現(xiàn)統(tǒng)計(jì)行列中零值的個(gè)數(shù)
這篇文章主要介紹了python dataframe實(shí)現(xiàn)統(tǒng)計(jì)行列中零值的個(gè)數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Python中判斷語句入門指南(if?elif?else語句)
if elif else語句是Python中的控制語句,用于根據(jù)條件執(zhí)行不同的操作,下面這篇文章主要給大家介紹了關(guān)于Python中判斷語句入門指南(if?elif?else語句)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Python使用matplotlib繪制Logistic曲線操作示例
這篇文章主要介紹了Python使用matplotlib繪制Logistic曲線操作,結(jié)合實(shí)例形式詳細(xì)分析了Python基于matplotlib庫繪制Logistic曲線相關(guān)步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-11-11Python+OpenCV六種實(shí)時(shí)圖像處理詳細(xì)講解
OpenCV常用的圖像處理為閾值二值化、邊緣檢測(cè)、輪廓檢測(cè)、高斯濾波、色彩轉(zhuǎn)換、調(diào)節(jié)對(duì)比度。本文主要介紹了利用Python和OpenCV對(duì)實(shí)時(shí)圖像進(jìn)行上述六種操作的詳細(xì)講解,感興趣的可以了解一下。2021-11-11