日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

數據清洗之如何用一行Python代碼去掉文本中的各種符號_python

作者:coder1479 ? 更新時間: 2022-12-22 編程語言

前言

在搜集了很多文本語料之后,會開始漫長的數據清洗過程,通常要不斷迭代。

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

總結

原文鏈接:https://blog.csdn.net/m0_48742971/article/details/123117893

欄目分類
最近更新