作為一位多產的作家,我邀請您在亞馬遜上探索我的書籍。 請記得在 Medium 上關注我,以獲得持續的支持和更新。感謝您的寶貴支持!
多年專注於文字處理和分析的 Python 開發教會了我高效技術的重要性。 本文重點介紹了我經常用來提高 NLP 專案效能的六種高階 Python 方法。
正規表示式(重新模組)
正規表示式對於模式比對和文字操作是不可或缺的。 Python 的 re
模組提供了一個強大的工具包。掌握正規表示式可以簡化複雜的文字處理。
例如,提取電子郵件地址:
import re text = "Contact us at info@example.com or support@example.com" email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' emails = re.findall(email_pattern, text) print(emails)
輸出:['info@example.com', 'support@example.com']
正規表示式也擅長文字替換。 將美元金額轉換為歐元:
text = "The price is .99" new_text = re.sub(r'$(\d+\.\d{2})', lambda m: f"€{float(m.group(1))*0.85:.2f}", text) print(new_text)
輸出:"The price is €9.34"
字串模組實用程式
Python 的 string
模組雖然不如 re
突出,但為文字處理提供了有用的常數和函數,例如建立翻譯表或處理字串常數。
刪除標點符號:
import string text = "Hello, World! How are you?" translator = str.maketrans("", "", string.punctuation) cleaned_text = text.translate(translator) print(cleaned_text)
輸出:"Hello World How are you"
用於序列比較的difflib
比較字串或辨識相似之處很常見。 difflib
提供序列比較工具,非常適合此目的。
找相似詞:
from difflib import get_close_matches words = ["python", "programming", "code", "developer"] similar = get_close_matches("pythonic", words, n=1, cutoff=0.6) print(similar)
輸出:['python']
SequenceMatcher
處理更複雜的比較:
from difflib import SequenceMatcher def similarity(a, b): return SequenceMatcher(None, a, b).ratio() print(similarity("python", "pyhton"))
輸出:(約)0.83
模糊匹配的編輯距離
Levenshtein 距離演算法(通常使用 python-Levenshtein
函式庫)對於拼字檢查和模糊配對至關重要。
拼字檢查:
import Levenshtein def spell_check(word, dictionary): return min(dictionary, key=lambda x: Levenshtein.distance(word, x)) dictionary = ["python", "programming", "code", "developer"] print(spell_check("progamming", dictionary))
輸出:"programming"
找類似字串:
def find_similar(word, words, max_distance=2): return [w for w in words if Levenshtein.distance(word, w) <= max_distance] print(find_similar("code", ["code", "coder", "python"]))
輸出:['code', 'coder']
ftfy 用於文字編碼修復
ftfy
函式庫解決編碼問題,自動偵測並修正 mojibake 等常見問題。
修補 mojibake:
import ftfy text = "The Mona Lisa doesn’t have eyebrows." fixed_text = ftfy.fix_text(text) print(fixed_text)
輸出:"The Mona Lisa doesn't have eyebrows."
標準化 Unicode:
weird_text = "This is Fullwidth text" normal_text = ftfy.fix_text(weird_text) print(normal_text)
輸出:"This is Fullwidth text"
使用 spaCy 和 NLTK 進行高效標記化
標記化是 NLP 的基礎。 spaCy
和 NLTK
提供了超越簡單 split()
的高階標記化功能。
使用 spaCy 進行標記化:
import re text = "Contact us at info@example.com or support@example.com" email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' emails = re.findall(email_pattern, text) print(emails)
輸出:['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog', '.']
NLTK 的 word_tokenize
:
text = "The price is .99" new_text = re.sub(r'$(\d+\.\d{2})', lambda m: f"€{float(m.group(1))*0.85:.2f}", text) print(new_text)
輸出:(類似spaCy)
實際應用與最佳實務
這些技巧適用於文字分類、情緒分析和資訊檢索。 對於大型資料集,優先考慮記憶體效率(生成器),利用多處理來處理CPU 密集型任務,使用適當的資料結構(用於成員測試的集),編譯正則表達式以供重複使用,並利用pandas等庫進行CSV 處理。
透過實施這些技術和最佳實踐,您可以顯著提高文字處理工作流程的效率和有效性。請記住,持續的練習和實驗是掌握這些寶貴技能的關鍵。
101本書
101 Books 是一家由 Aarav Joshi 共同創立的人工智慧出版社,借助先進的人工智慧技術提供價格實惠、高品質的書籍。 看看亞馬遜上的 Golang 乾淨程式碼。 搜尋“Aarav Joshi”以了解更多書籍和特別折扣!
我們的創作
投資者中心、投資者中心(西班牙語/德語)、智慧生活、時代與迴聲、令人費解的奧秘、印度教、精英開發、JS 學校
我們在 Medium
Tech Koala Insights、Epochs & Echoes World、Investor Central Medium、Puzzling Mysteries Medium、Science & Epochs Medium、Modern Hindutva
以上是用於高效文字處理和分析的先進 Python 技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

本文解釋瞭如何使用美麗的湯庫來解析html。 它詳細介紹了常見方法,例如find(),find_all(),select()和get_text(),以用於數據提取,處理不同的HTML結構和錯誤以及替代方案(SEL)

本文比較了Tensorflow和Pytorch的深度學習。 它詳細介紹了所涉及的步驟:數據準備,模型構建,培訓,評估和部署。 框架之間的關鍵差異,特別是關於計算刻度的

本文指導Python開發人員構建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等庫詳細介紹,強調輸入/輸出處理,並促進用戶友好的設計模式,以提高CLI可用性。

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

文章討論了虛擬環境在Python中的作用,重點是管理項目依賴性並避免衝突。它詳細介紹了他們在改善項目管理和減少依賴問題方面的創建,激活和利益。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中