Natural-language-toolkit-training-tokenizer-filtering-stopwords
トークナイザーのトレーニングとストップワードのフィルタリング
なぜ自分のセンテンストークナイザーを訓練するのですか?
これは、NLTKのデフォルトのセンテンストークナイザーがある場合、なぜセンテンストークナイザーをトレーニングする必要があるのかという非常に重要な質問です。 この質問に対する答えは、NLTKのデフォルトのセンテンストークナイザーの品質にあります。 NLTKのデフォルトのトークナイザは、基本的には汎用のトークナイザです。 非常にうまく機能しますが、非標準のテキスト、おそらく私たちのテキスト、または独自の書式設定を持つテキストには適さないかもしれません。 そのようなテキストをトークン化して最良の結果を得るには、独自のセンテンストークナイザーをトレーニングする必要があります。
実装例
この例では、webtextコーパスを使用します。 このコーパスから使用するテキストファイルは、以下に示すダイアログとしてフォーマットされたテキストを持っています-
このテキストファイルは、training_tokenizerという名前で保存しました。 NLTKは PunktSentenceTokenizer という名前のクラスを提供します。このクラスの助けを借りて、カスタムテキストトークナイザーを生成するために生のテキストでトレーニングできます。 ファイルを読み込むか、* raw()*メソッドを使用してNLTKコーパスから生のテキストを取得できます。
以下の例を見て、それについてさらに洞察を得ましょう-
まず、 nltk.tokenize パッケージから PunktSentenceTokenizer クラスをインポートします-
次に、* raw()メソッドを使用して、次のように *training_tokenizer.txt ファイルから生のテキストを取得します-
次に、 PunktSentenceTokenizer のインスタンスを作成し、次のようにテキストファイルからトークン化文を出力します-
出力
完全な実装例
出力
NLTKのデフォルトのセンテンストークナイザーとトレーニング済みの独自のセンテンストークナイザーの違いを理解するために、デフォルトのセンテンストークナイザーを使用して同じファイルをトークン化します。 sent_tokenize()。
出力の違いを利用して、独自のセンテンストークナイザーをトレーニングすることがなぜ有用であるかという概念を理解できます。
ストップワードとは何ですか?
テキストには存在するが、文の意味には寄与しないいくつかの一般的な単語。 そのような単語は、情報検索や自然言語処理の目的ではまったく重要ではありません。 最も一般的なストップワードは「the」と「a」です。
NLTKストップワードコーパス
実際、Natural Language Tool Kitには、多くの言語の単語リストを含むストップワードコーパスが付属しています。 次の例の助けを借りて、その使用法を理解しましょう-
まず、[。underline]#nltk.corpus#パッケージから[.underline]#stopwords#コーパスをインポートします-
ここで、英語のストップワードを使用します
出力
完全な実装例
出力
サポートされている言語の完全なリストを見つける
次のPythonスクリプトの助けを借りて、NLTKストップワードコーパスでサポートされている言語の完全なリストを見つけることもできます-