Natural-language-toolkit-corpus-readers-and-custom-corpora
コーパスリーダーとカスタムコーパス
コーパスとは?
コーパスは、自然なコミュニケーション環境で生成された機械可読テキストの構造化された形式の大規模なコレクションです。 コーパスという言葉はコーパスの複数形です。 コーパスは次のように多くの方法で導出できます-
- もともと電子だったテキストから
- 話し言葉の筆記録から
- 光学式文字認識などから
コーパスの代表性、コーパスバランス、サンプリング、コーパスサイズは、コーパスを設計する際に重要な役割を果たす要素です。 NLPタスクの最も人気のあるコーパスのいくつかは、TreeBank、PropBank、VarbNet、WordNetです。
カスタムコーパスを構築する方法は?
NLTKのダウンロード中に、NLTKデータパッケージもインストールしました。 したがって、NLTKデータパッケージがコンピューターにインストールされています。 Windowsについて説明する場合、このデータパッケージは C:\ natural_language_toolkit_data にインストールされていると想定し、Linux、Unix、Mac OS Xについて説明する場合は、このデータパッケージが /usrにインストールされていると想定します。/share/natural_language_toolkit_data 。
次のPythonレシピでは、NLTKで定義されたパスの1つに含まれている必要があるカスタムコーパスを作成します。 NLTKで見つけられるからです。 公式のNLTKデータパッケージとの競合を回避するために、ホームディレクトリにカスタムのnatural_language_toolkit_dataディレクトリを作成します。
出力
さて、ホームディレクトリにnatural_language_toolkit_dataディレクトリがあるかどうか確認してみましょう-
出力
出力がTrueになったので、ホームディレクトリに nltk_data ディレクトリがあることを意味します。
次に、 wordfile.txt という名前のワードリストファイルを作成し、 nltk_data ディレクトリ*(〜/nltk_data/corpus/wordfile.txt)のcorpusという名前のフォルダーに配置し、 *nltkを使用してそれをロードします。 data.load −
出力
コーパスリーダー
NLTKは、さまざまなCorpusReaderクラスを提供します。 以下のpythonレシピでそれらをカバーします
単語リストコーパスの作成
NLTKには、単語のリストを含むファイルへのアクセスを提供する WordListCorpusReader クラスがあります。 次のPythonレシピでは、CSVまたは通常のテキストファイルであるワードリストファイルを作成する必要があります。 たとえば、次のデータを含む「list」という名前のファイルを作成しました-
次に、作成したファイル ‘list’ から単語のリストを生成する WordListCorpusReader クラスをインスタンス化します。
出力
POSタグ付き単語コーパスの作成
NLTKには TaggedCorpusReader クラスがあり、これを使用してPOSタグ付き単語コーパスを作成できます。 実際、POSタグ付けは、単語の品詞タグを識別するプロセスです。
タグ付きコーパスの最も単純な形式の1つは、茶色のコーパスからの抜粋に続く「単語/タグ」の形式です-
上記の抜粋では、各単語にそのPOSを示すタグがあります。 たとえば、 _ vb_ は動詞を指します。
ここで、* TaggedCorpusReader クラスをインスタンス化して、上記の抜粋を含むファイル *‘list.pos’ からPOSタグ付きの単語を生成してみましょう。
出力
チャンク句コーパスの作成
NLTKには、チャンクフレーズコーパスを作成できる ChnkedCorpusReader クラスがあります。 実際、チャンクは文の短いフレーズです。
たとえば、タグ付きの treebank コーパスからの次の抜粋があります-
上記の抜粋では、すべてのチャンクは名詞句ですが、括弧内にない単語は文ツリーの一部であり、名詞句サブツリーの一部ではありません。
出力
分類されたテキストコーパスの作成
NLTKには、分類されたテキストコーパスを作成できる CategorizedPlaintextCorpusReader クラスがあります。 大きなテキストのコーパスがあり、それを別々のセクションに分類したい場合に非常に役立ちます。
たとえば、茶色のコーパスにはいくつかの異なるカテゴリがあります。 次のPythonコードの助けを借りてそれらを見つけましょう-
出力
コーパスを分類する最も簡単な方法の1つは、カテゴリごとに1つのファイルを用意することです。 たとえば、 movie_reviews コーパスからの2つの抜粋を見てみましょう-
movie_pos.txt
細い赤い線に欠陥がありますが、それは誘発します。
movie_neg.txt
大きな予算と光沢のある作品は、テレビ番組に浸透する自発性の欠如を埋め合わせることができません。
したがって、上記の2つのファイルから、 pos と neg という2つのカテゴリがあります。
次に、 CategorizedPlaintextCorpusReader クラスをインスタンス化します。