検索
ホームページバックエンド開発Python チュートリアル効率的なテキスト処理と分析のための高度な Python テクニック

dvanced Python Techniques for Efficient Text Processing and Analysis

多作な作家として、アマゾンで私の本を探索することをお勧めします。 継続的なサポートとアップデートのために、Medium で私をフォローしてください。貴重なご支援に感謝いたします!

テキスト処理と分析に重点を置いた Python 開発の長年の経験から、効率的なテクニックの重要性を学びました。 この記事では、NLP プロジェクトのパフォーマンスを向上させるために私が頻繁に使用する 6 つの高度な 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

ファジーマッチングのレーベンシュタイン距離

レーベンシュタイン距離アルゴリズム (多くの場合 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 などの一般的な問題を自動的に検出して修正します。

文字化けの修正:

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 の基本です。 spaCyNLTK は、単純な 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 バウンドのタスクにマルチプロセッシングを活用し、適切なデータ構造 (メンバーシップ テスト用のセット) を使用し、繰り返し使用するために正規表現をコンパイルし、CSV 処理にパンダなどのライブラリを利用します。

これらのテクニックとベスト プラクティスを実装することで、テキスト処理ワークフローの効率と有効性を大幅に向上させることができます。これらの貴重なスキルを習得するには、一貫した練習と実験が重要であることを忘れないでください。


101 冊

101 Books は、Aarav Joshi が共同設立した AI を活用した出版社で、高度な AI テクノロジーのおかげで、手頃な価格で高品質の書籍を提供しています。 Amazon で Golang クリーン コード をチェックしてください。 「Aarav Joshi」で検索すると、さらに多くのタイトルや特別割引が表示されます!

私たちの作品

インベスター セントラル、インベスター セントラル (スペイン語/ドイツ語)、スマート リビング、エポックズ & エコーズ、パズル ミステリー、ヒンドゥーヴァ、エリート開発者、JS スクール


中程度です

Tech Koala Insights、Epochs & Echoes World、Investor Central Medium、Puzzling Mysteries Medium、Science & Epochs Medium、Modern Hindutva

以上が効率的なテキスト処理と分析のための高度な Python テクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonリストをどのようにスライスしますか?Pythonリストをどのようにスライスしますか?May 02, 2025 am 12:14 AM

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

Numpyアレイで実行できる一般的な操作は何ですか?Numpyアレイで実行できる一般的な操作は何ですか?May 02, 2025 am 12:09 AM

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Pythonを使用したデータ分析では、配列はどのように使用されていますか?Pythonを使用したデータ分析では、配列はどのように使用されていますか?May 02, 2025 am 12:09 AM

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc

リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?May 02, 2025 am 12:08 AM

listsandnumpyarraysinpythonhavedifferentmemoryfootprints:listsaremoreflexiblellessmemory-efficient、whileenumpyarraysaraysareoptimizedfornumericaldata.1)listsstorereferencesto objects、with whowedaround64byteson64-bitedatigu

実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?May 02, 2025 am 12:07 AM

toensurepythonscriptsbehaveCorrectlyAcrossDevelosment、staging、and Production、usetheseStrategies:1)環境variablesforsimplestetings、2)configurationfilesforcomplexsetups、and3)dynamicloadingforadaptability.eachtododododododofersuniquebentandrequiresca

Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン