自然言語処理 (NLP) について話すとき、最も重要なタスクの 1 つは単語の置換と修正です。これには、ステミング、見出し語化、スペル修正、同義語や反意語に基づく単語の置換などの技術が含まれます。これらのテクニックを使用すると、検索エンジン、チャットボット、感情分析など、テキスト分析の品質を大幅に向上させることができます。 Python の NLTK ライブラリがこれらのタスクにどのように役立つかを見てみましょう。
ステミング: 接尾辞の切断
ステミングは、単語から接尾辞を削除し、語根だけを残す技術です。たとえば、「running」という単語の語根は「corr」です。これは、検索エンジンがインデックスを作成する必要がある単語の量を減らすのに役立ちます。
NLTK では、PorterStemmer を使用してステミングを行うことができます。それがどのように機能するかを見てみましょう:
from nltk.stem import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem("correndo")) # Saída: corr print(stemmer.stem("correção")) # Saída: correc
ここでは、ステミングによって接尾辞が切り取られ、単語の語根だけが残ることがわかりました。これにより、単語のバリエーションを気にすることなく、単語の主な意味に集中し続けることができます。
見出し語化: 基本形式に戻る
見出し語化はステミングに似ていますが、接尾辞を切り取るのではなく、単語をその基本形式、つまり見出し語に変換します。たとえば、「走る」は「走る」になります。これは単語のコンテキストを考慮するため、ステミングよりも少し賢明です。
NLTK で見出し語化を行うには、WordNetLemmatizer を使用します。
from nltk.stem import WordNetLemmatizer lemmatizer = WordNetLemmatizer() print(lemmatizer.lemmatize("correndo", pos='v')) # Saída: correr print(lemmatizer.lemmatize("correções")) # Saída: correção
この例では、見出し関数を使用し、動詞の品詞 (pos) を「v」として指定します。これは、NLTK が単語のコンテキストをより深く理解するのに役立ちます。
置換用の正規表現
テキスト内の特定の単語やパターンを置換したい場合があります。このためには、正規表現 (regex) が非常に役立ちます。たとえば、正規表現を使用して、「no」を「no」に拡張するなど、短縮形を拡張できます。
NLTK を使用してこれを行う方法は次のとおりです:
import re texto = "Eu não posso ir à festa. Você não vai?" expansoes = [("não", "não")] def expandir_contracoes(texto, expansoes): for (contraido, expandido) in expansoes: texto = re.sub(r'\b' + contraido + r'\b', expandido, texto) return texto print(expandir_contracoes(texto, expansoes)) # Saída: Eu não posso ir à festa. Você não vai?
この例では、expand_contracoes 関数は正規表現を使用して、テキスト内の短縮語を検索して置換します。
エンチャントによるスペルチェック
もう 1 つの重要なタスクはスペル修正です。テキストにはタイプミスやスペルミスがある場合があり、テキスト分析にはこれらを修正することが不可欠です。 pyenchant ライブラリはこれに最適です。
まず、pyenchant ライブラリをインストールする必要があります。
pip install pyenchant
その後、Enchant を使用して単語を修正できます。
import enchant d = enchant.Dict("pt_BR") palavra = "corrigindo" if d.check(palavra): print(f"{palavra} está correta") else: print(f"{palavra} está incorreta, sugestões: {d.suggest(palavra)}")
単語が間違っている場合は、Enchant が修正を提案します。
同義語の置換
単語をその同義語に置き換えると、テキストが充実し、繰り返しが避けられ、スタイルが改善されます。 WordNet を使用すると、同義語を簡単に見つけることができます。
その方法は次のとおりです:
from nltk.corpus import wordnet def substituir_sinonimos(palavra): sinonimos = [] for syn in wordnet.synsets(palavra, lang='por'): for lemma in syn.lemmas(): sinonimos.append(lemma.name()) return set(sinonimos) print(substituir_sinonimos("bom")) # Saída: {'bom', 'legal', 'ótimo', 'excelente'}
この例では、replace_synonyms 関数は、指定された単語の同義語のリストを返します。
反意語の置き換え
同義語と同様に、反意語も、特に感情分析などのタスクに役立ちます。 WordNet を使用して反意語を見つけることができます:
def substituir_antonimos(palavra): antonimos = [] for syn in wordnet.synsets(palavra, lang='por'): for lemma in syn.lemmas(): if lemma.antonyms(): antonimos.append(lemma.antonyms()[0].name()) return set(antonimos) print(substituir_antonimos("bom")) # Saída: {'mau', 'ruim'}
この関数は、指定された単語の反意語を検索します。
実用的なアプリケーション
これらのテクニックの実際の応用例をいくつか見てみましょう。
感情分析
感情分析には、テキストの極性 (肯定的、否定的、または中立的) の判断が含まれます。単語の置換により、この分析が改善されます。
texto = "Eu adorei o filme, mas a comida estava ruim." palavras = word_tokenize(texto, language='portuguese') polaridade = 0 for palavra in palavras: sinsets = wordnet.synsets(palavra, lang='por') if sinsets: for syn in sinsets: polaridade += syn.pos_score() - syn.neg_score() print("Polaridade do texto:", polaridade) # Saída: Polaridade do texto: 0.25 (por exemplo)
テキストの正規化
テキストの正規化には、テキストを一貫した形式に変換することが含まれます。これには、スペルの修正、ストップワードの削除、同義語の置換が含まれる場合があります。
stopwords = set(stopwords.words('portuguese')) texto = "A análise de textos é uma área fascinante do PLN." palavras = word_tokenize(texto, language='portuguese') palavras_filtradas = [w for w in palavras se não w in stopwords] texto_normalizado = " ".join(palavras_filtradas) print(texto_normalizado) # Saída: "análise textos área fascinante PLN"
改善されたテキスト検索
検索エンジンでは、同義語を置換すると、検索されたキーワードの同義語を使用するドキュメントが見つかり、検索結果が向上します。
consulta = "bom filme" consulta_expandidas = [] for palavra em consulta.split(): sinonimos = substituir_sinonimos(palavra) consulta_expandidas.extend(sinonimos) print("Consulta expandida:", " ".join(consulta_expandidas)) # Saída: "bom legal ótimo excelente filme"
結論
このテキストでは、Python の NLTK ライブラリを使用したさまざまな単語の置換および修正テクニックを検討します。ステミング、見出語化、正規表現を使用した単語の置換、Enchant によるスペル修正、WordNet による同義語と反意語の置換の方法を確認しました。また、センチメント分析、テキスト正規化、検索エンジンにおけるこれらのテクニックの実際的な応用についても説明します。
これらの手法を使用すると、テキスト分析の品質が大幅に向上し、結果がより正確で関連性の高いものになります。 NLTK は、自然言語処理に取り組む人々向けに強力なツールを幅広く提供しており、これらのツールの使用方法を理解することは、NLP プロジェクトにとって不可欠です。
以上がPython の NLTK を使用した単語の置換と修正の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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