今日の世界では、ソーシャルメディアのコメント、閲覧履歴、顧客フィードバックなどのテキストデータなど、大量のデータが構造化されていません。大規模なテキストデータに直面して、どこで分析を開始するかわかりませんか? PythonのNatural Language Processing(NLP)テクノロジーが役立ちます!
このチュートリアルは、NLPのコアコンセプトを使用し、Pythonのテキストデータを分析するようにガイドするように設計されています。テキストを小さなユニット(単語変態)に分解し、単語をSTEM形式(STEM抽出と形態学的回復)に正規化する方法と、さらなる分析の準備のためにドキュメントをクリーンアップする方法を学びます。
始めましょう!
コアポイント
- PythonのNatural Language Processing(NLP)には、単語要素にテキストを壊し、単語をSTEM形式に正規化し、さらに分析するためのクリーニングドキュメントが含まれます。 PythonのNLTKライブラリを使用して、これらの操作を実行します。
- 単語を幹形式に変換するための2つの手法は、STEM抽出と語彙形式の復元です。 STEM抽出は、単語の補完原理を削除する単純なアルゴリズムです。 NLPでのデータのクリーニングには、句読点や停止単語(「i」、「a」、「the」などの一般的な単語など)を削除します。これらの単語は、テキストを分析するときにほとんど意味がないためです。
- テキストをクリーニングした後、nltkの
- クラスを使用して単語頻度を見つけることができます。これは、テキストで一般的な用語を見つけるのに非常に便利です。
FreqDist
予防策 このチュートリアルでは、PythonのNLTKライブラリを使用して、テキスト上のすべてのNLP操作を実行します。このチュートリアルを書くとき、NLTKバージョン3.4を使用していました。端末にPIPコマンドを使用してライブラリをインストールできます。
システムにインストールされているNLTKバージョンを確認するには、ライブラリをPythonインタープリターにインポートしてバージョンを確認できます。
このチュートリアルでは、NLTKで特定の操作を実行するには、特定のリソースをダウンロードする必要がある場合があります。必要に応じて各リソースについて説明します。pip install nltk==3.4
ただし、チュートリアルの後期段階でリソースを1つずつダウンロードしないようにしたい場合は、すべてのリソースを一度にダウンロードできます。
import nltk print(nltk.__version__)
ステップ1:単語変態
コンピューターシステムは自然言語を理解できません。自然言語を扱う最初のステップは、元のテキストを単語要素に変換することです。単語要素は、何らかの意味を持つ連続文字の組み合わせです。文字の要素に文章を分割するのはあなた次第です。たとえば、簡単な方法は、文をスペースで分割して1つの単語に分解することです。
python -m nltk.downloader allNLTKライブラリでは、
関数を使用して文字列を語彙要素に変換できます。ただし、最初にPunktリソースをダウンロードする必要があります。ターミナルで次のコマンドを実行します:
次に、から
からインポートする必要があります。
word_tokenize()
コードの出力は次のとおりです。
pip install nltk==3.4
word_tokenize
ステップ2:単語をSTEMフォームに変換します
自然言語を扱うとき、あなたはしばしば同じ言葉のさまざまな文法形式があることに気付くことがよくあります。たとえば、「go」、「going」、「gone」はすべて、同じ動詞「go」の異なる形式です。プロジェクトはさまざまな文法形式の単語を保存する必要があるかもしれませんが、同じ単語のさまざまな文法形式をその茎形式に変換する方法を議論しましょう。単語をSTEMフォームに変換するために使用できる2つの手法があります。
最初の手法は、抽出を発生させることです。 STEM抽出は、単語の接辞を削除する単純なアルゴリズムです。 NLTKで利用可能なさまざまなステム抽出アルゴリズムがあります。このチュートリアルでは、Porter Algorithmを使用します。
最初に
からnltk.stem.porter
をインポートします。次に、ステムを初期化してPorterStemmer
変数に抽出し、次にstemmer
メソッドを使用して、次の単語の茎の形を見つけます。
.stem()
import nltk print(nltk.__version__)
たとえば、「構成」という単語に茎の抽出器を使用しようとすると、直感的ではありません。
出力が「構成」であることに気付くでしょう。
python -m nltk.downloader allこの問題は、特定のコンテキストで単語の幹形式を検索するより複雑なアプローチをとることで解決できます。このプロセスは、単語形式の削減と呼ばれます。単語の形状の復元は、テキストのコンテキストと語彙に基づいて単語を正常にします。 nltkでは、
クラスを使用して、文の形態学的回復を実行できます。
最初に、PythonターミナルのNLTKダウンローダーからWordNetリソースをダウンロードする必要があります。
WordNetLemmatizer
クラスをインポートして初期化する必要があります。
nltk.download('punkt')形態修復者を使用するには、
メソッドを使用します。単語とコンテキストの2つのパラメーターを受け入れます。この例では、「V」をコンテキストとして使用します。 WordNetLemmatizer
メソッドの出力を表示した後、コンテキストをさらに検討します。
from nltk.tokenize import word_tokenize print(word_tokenize("Hi, this is a nice hotel."))
メソッドは、「構成」という単語をその茎形式「構成」に正しく変換することに気付くでしょう。また、アルゴリズムがより複雑であるため、単語の形状の復元がステミング抽出よりも時間がかかることに気付くでしょう。 .lemmatize()
.lemmatize()
メソッドの2番目のパラメーターをプログラム的に決定する方法を確認しましょう。 nltkには、文の単語のコンテキストを決定するのに役立つpos_tag()
関数があります。ただし、最初にaveraged_perceptron_tagger
リソースをダウンロードする必要があります:
pip install nltk==3.4
次に、pos_tag()
関数をインポートして、文で実行します:
import nltk print(nltk.__version__)
出力がペアリストであることに気付くでしょう。各ペアには、テキスト全体の単語要素のコンテキストを表す単語要素とそのタグが含まれています。句読点のラベル自体は次のとおりです。
python -m nltk.downloader all各単語のコンテキストをデコードする方法は?以下は、Web上のすべてのタグの完全なリストとそれらに対応する意味です。すべての名詞には「N」から始まるラベルがあり、すべての動詞には「V」から始まるラベルがあります。この情報は、
メソッドの2番目のパラメーターで使用できます。
.lemmatize()
nltk.download('punkt')
この出力は予想通りであり、「構成」と「治安判事」はそれぞれ「構成」と「治安判事」に変換されます。
from nltk.tokenize import word_tokenize print(word_tokenize("Hi, this is a nice hotel."))
ステップ3:データのクリーニング
データを準備する次のステップは、データをクリーンアップし、分析に意味を追加しないものを削除することです。全体として、句読点と停止単語を分析から削除する方法について説明します。
句読点を削除することはかなり単純な作業です。ライブラリの
オブジェクトには、英語のすべての句読点が含まれています。
string
このコードスニペットの出力は次のとおりです。
punctuation
<code>['Hi', ',', 'this', 'is', 'a', 'nice', 'hotel', '.']</code>
次に、停止単語を削除する方法に焦点を当てます。停止単語は、「i」、「a」、「the」などの言語で一般的に使用される単語であり、テキストを分析するとき、これらの単語はほとんど意味を与えません。したがって、分析から停止単語を削除します。まず、NLTKダウンローダーからStopwordsリソースをダウンロード:
from nltk.stem.porter import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem("going"))
print(stemmer.stem("constitutes"))
単語の形状復元例とこのセクションで説明した概念を組み合わせて、次の関数
nltk.download('wordnet')を作成できます。さらに、ストップワードリストの一部であるかどうかを比較する前に、単語を小文字に変換します。このように、文の先頭に停止単語が表示されて大文字になった場合、私たちはそれをキャプチャすることができます:
nltk.corpus
この例の出力は次のとおりです
stopwords
words()
ご覧のとおり、句読点と停止単語は削除されています。
単語の頻度分布
NLPの基本的なクリーニング技術に精通しているので、テキストの単語の頻度を見つけてみましょう。この演習では、グーテンベルクプロジェクトで無料で利用できるおとぎ話「ネズミ、鳥、ソーセージ」のテキストを使用します。このおとぎ話のテキストをひもtext
に保存します。
最初に、text
を掛けてから、上記のclean_data
:
pip install nltk==3.4
テキスト内の単語の頻度分布を見つけるには、nltkのFreqDist
クラスを使用できます。単語要素をパラメーターとして使用してクラスを初期化します。次に、一般的な用語を見つけるために.most_common()
メソッドを使用します。この場合、トップ10の用語を見つけてみましょう:
import nltk print(nltk.__version__)
以下は、このおとぎ話で最も頻繁に見られる10の用語です:
python -m nltk.downloader all
期待によると、最も一般的な3つの用語は、おとぎ話の3つの主人公です。
テキストを分析する場合、単語の頻度は重要ではない場合があります。一般的に、NLPの次のステップは、ドキュメントのセットにおける単語の重要性を示す統計(Word Frequency-inverse Document頻度)を生成することです。
結論
このチュートリアルでは、Pythonでの自然言語処理についての予備的な理解があります。テキストを語彙要素に変換し、単語を茎の形に変換し、最後にテキストをクリーニングして、分析に意味を追加しない部分を削除します。このチュートリアルでは、単純なNLPタスクを見ている間、探索すべき他の多くの手法があります。たとえば、テキストが議論する可能性のある一般的なトピックを見つけることを目的として、テキストデータのトピックモデリングを実行することをお勧めします。 NLPのより複雑なタスクは、センチメント分析モデルを実装して、テキストの背後にある感情を決定することです。
コメントや質問はありますか? Twitterでお気軽にご連絡ください。
Python(FAQ)を使用した自然言語処理に関するよくある質問自然言語処理(NLP)と自然言語理解(NLU)の主な違いは何ですか? 自然言語処理(NLP)および自然言語理解(NLU)は、しばしば混乱する人工知能の2つのサブフィールドです。 NLPは、自然言語を使用してコンピューターと対話するためのすべての方法を含むより広範な概念です。これには、人間の言語の理解と生成が含まれます。一方、NLUは、側面を理解することを専門とするNLPのサブセットです。アルゴリズムを使用して、貴重な方法で人間の言語を理解して解釈することが含まれます。PythonのNLPモデルの精度を改善する方法は?
NLPモデルの精度を改善するには、さまざまな戦略が含まれます。まず、より多くのトレーニングデータを使用できます。モデルの学習データが多いほど、パフォーマンスが向上します。次に、異なるNLP技術の使用を検討します。たとえば、単語の袋(弓)を使用している場合、WordFrequency-inverse Document頻度(TF-IDF)またはWord2Vecを試してみてください。最後に、モデルのパラメーターを微調整すると、大幅な改善につながる可能性があります。現実の世界におけるNLPの一般的なアプリケーションは何ですか?
NLPには、現実の世界で幅広いアプリケーションがあります。これらには、言語翻訳、センチメント分析、チャットボット、SiriやAlexaなどの音声アシスタント、テキストサマリー、電子メールスパム検出が含まれます。
NLPの語彙化はどのように機能しますか?
単語変態は、テキストを単一の単語または単語要素に分解するプロセスです。これは、モデルがテキストを理解して分析できるため、NLPの重要なステップです。 Pythonでは、nltkライブラリのword_tokenize
関数を使用して語彙化を実行できます。
NLPにおける停止単語の役割は何ですか?
停止単語は、NLPの前処理段階で多くの場合除外される一般的な単語です。例には、「IS」、「「」、「」などが含まれます。これらの単語を削除すると、NLPモデルのパフォーマンスの向上に役立ちます。
NLPで複数の言語を処理する方法は?
NLPで複数の言語を処分することは、文法、構文、語彙の違いにより困難な場合があります。ただし、PythonのNLTKライブラリは複数の言語をサポートしています。また、などの言語検出ライブラリを使用して、テキストの言語を識別して処理することもできます。 langdetect
茎の抽出と形態学的修復は、単語を幹または根の形に単純化するために使用される手法です。それらの主な違いは、ステム抽出がしばしば存在しない単語を作成することが多く、単語の復元原理は単語をその言語的に正しいルート形式に減らすことです。
センチメント分析にNLPを使用する方法は?
感情分析には、テキストで表現された感情を決定することが含まれます。これは、さまざまなNLP技術を使用して実行できます。たとえば、PythonのTextBlobライブラリを使用してセンチメント分析を簡単に実行できます。
NLPのN-Meta構文は何ですか?
n Metagramは、特定のテキストまたは音声サンプルのN連続アイテムの連続シーケンスです。 NLPに使用されて、シーケンス内の次のアイテムを予測します。たとえば、バイナリ文法(n = 2)では、分析または予測のための単語ペアを検討します。
テキスト分類にNLPを使用する方法は?
テキスト分類には、テキストを事前定義されたカテゴリに分類することが含まれます。これは、さまざまなNLP技術と機械学習アルゴリズムを使用して実行できます。たとえば、機能抽出には単語の袋またはTF-IDFを使用して、これらの機能を分類のために機械学習モデルに入力できます。
以上がPythonでの自然言語処理を開始しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

これらのトップ開発者ニュースレターを使用して、最新のハイテクトレンドについてお知らせください! このキュレーションされたリストは、AI愛好家からベテランのバックエンドやフロントエンド開発者まで、すべての人に何かを提供します。 お気に入りを選択し、Relを検索する時間を節約してください

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
