日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【NLP】一行Python代码中自动化文本处理

發布時間:2025/3/12 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NLP】一行Python代码中自动化文本处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者|Satyam Kumar

編譯|VK
來源|Towards Data Science

自然語言處理(NLP)是人工智能的一個子領域,涉及計算機與自然語言之間的交互。它圍繞著如何訓練一個能夠理解和實現自然語言任務使用的數據科學模型展開。

典型的NLP項目遵循管道的各個方面來訓練模型。管道中的各個步驟包括文本清理、標記化、詞根化、編碼為數字向量等,然后是模型訓練。

NLP任務的數據集是文本數據,主要來自互聯網。大多數情況下,用于NLP建模的文本數據是臟的,需要在數據處理的早期階段進行清理。數據科學家把大部分時間花在數據預處理上,包括清理文本數據。

在本文中,我們將討論一個有趣的CleanText庫,它簡化了清理文本數據的過程,并加快了數據預處理流程。


什么是CleanText

CleanText是一個開放源碼的Python庫,它可以清除從web或社交媒體中爬取的文本數據。CleanText使開發人員能夠創建規范化的文本表示。CleanText使用ftfy、unidecode和各種其他硬編碼規則(包括RegEx)將損壞或臟的輸入文本轉換為干凈文本,可以進一步處理這些文本來訓練NLP模型。

安裝:

可以使用以下命令從PyPl安裝CleanText庫:

pip?install?clean-text

安裝后,可以使用以下方法導入庫:

from?cleantext?import?clean


用法:

CleanText庫只提供了一個函數“Clean”,它接受各種參數,這些參數可以進行調優以執行文本清理。clean可執行11種類型的清理,包括:

Unicode:

s1?=?'Zürich' clean(s1,?fix_unicode=True)#?Output:?zurich

ASCII:

它將文本轉換為最接近的ASCII表示形式。

s2?=?"ko\u017eu\u0161\u010dek" clean(s2,?to_ascii=True)#?Output:?kozuscek

Lower:

將文本數據轉換為小寫。

s3?=?"My?Name?is?SATYAM" clean(s3,?lower=True)#?Output:?my?name?is?satyam

替換URL/電子郵件/電話號碼:

用特殊標記替換文本數據中的所有URL、電子郵件或電話號碼。

s4?=?"https://www.Google.com?and?https://www.Bing.com?are?popular?seach?engines.?You?can?mail?me?at?satkr7@gmail.com.?If?not?replied?call?me?at?9876543210"clean(s4,?no_urls=True,?replace_with_url="URL", no_emails=True,?replace_with_email="EMAIL" no_phone_numbers=True,?replace_with_email="PHONE")#?Output:?url?and?url?are?popular?search?engines.?You?can?mail?me?at?EMAIL.?If?not?replied?call?me?at?PHONE

替換貨幣:

用特殊標記替換文本數據中的所有貨幣。

s5?=?"I?want???40" clean(s5,?no_currency_symbols?=?True) clean(s5,?no_currency_symbols?=?True,?replace_with_currency_symbol="Rupees")#?Output:?i?want?<cur>?40 #?Output:?i?want?rupees?40

刪除號碼:

用特殊標記替換或刪除所有數字。

s7?=?'abc123def456ghi789zero0'clean(s7,?no_digits?=?True) clean(s7,?no_digits?=?True,?replace_with_digit="")#?Output:?abc000def000ghi000zero0 #?Output:?abcdefghizero

替換標點符號:

刪除或用特殊標記替換文本數據中的所有標點。

s6?=?"40,000?is?greater?than?30,000." clean(s6,?no_punct?=?True)#?Output:?40000?is?greater?than?30000

組合所有參數:

我們已經分別討論了上述所有參數。現在,讓我們在Clean函數中組合所有這些函數,為示例文本調用它,并觀察干凈的文本結果。

from?cleantext?import?cleantext?=?""" Zürich?has?a?famous?website?https://www.zuerich.com/? WHICH?ACCEPTS?40,000?€?and?adding?a?random?string,?: abc123def456ghi789zero0?for?this?demo.?Also?remove?punctions?,.? my?phone?number?is?9876543210?and?mail?me?at?satkr7@gmail.com.'?"""clean_text?=?clean(s8,?fix_unicode=True,?to_ascii=True,?lower=True,?no_line_breaks=True,no_urls=True,?no_numbers=True,?no_digits=True,?no_currency_symbols=True,?no_punct=True,?replace_with_punct="",?replace_with_url="<URL>",?replace_with_number="<NUMBER>",?replace_with_digit="",?replace_with_currency_symbol="<CUR>",lang='en')print(clean_text)#?Output:?zurich?has?a?famous?website?<url>?which?accepts?<number>?<cur>?and?adding?a?random?string?abcdefghizero?for?this?demo?also?remove?punctions?my?phone?number?is?<number>?and?mail?me?at?satkrgmailcom

因此,只需編寫一行Python代碼,就可以清除臟的文本數據并進行進一步的預處理。


結論

CleanText是一個高效的庫,它可以處理或清除爬取的臟數據,只需一行代碼就可以獲得標準化的干凈文本輸出。開發人員只需要根據自己的需要調整參數。它簡化了數據科學家的工作,因為現在他/她不必寫很多行復雜的正則表達式代碼來清理文本。

CleanText不僅適用于英語輸入文本,而且可以處理德語,只需設置lang='de'。

CleanText庫只包含一些文本清理參數,還有改進的余地。盡管如此,開發人員仍然可以將其用于一些清理任務,然后繼續手動編碼以完成剩余的任務。

閱讀下面提到的文章了解AutoNLP-一個自動NLP庫。

https://medium.com/swlh/autonlp-sentiment-analysis-in-5-lines-of-python-code-7b2cd2c1e8ab

參考文獻

[1] Clean-Text Repository: https://github.com/jfilter/clean-text

謝謝閱讀!

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》課件合集 本站qq群851320808,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【NLP】一行Python代码中自动化文本处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。