Pythonでのコンテンツ分類のためのオレンジ対NLTK [閉じた
-
24-10-2019 - |
質問
コンテンツ分類モジュールが必要です。ベイジアン分類器は私が探しているもののようです。オレンジまたはNLTKに行くべきですか?
解決
ドキュメントから証明されているだけでなく、各ライブラリの素朴なベイズの実装は使いやすいので、両方でデータを実行して結果を比較してみませんか?
オレンジとNLTKはどちらも、大規模な大学から生まれた成熟した安定したライブラリ(各図書館で開発の10年以上)です。それらは、主に機械学習アルゴリズムをいくつか共有しています。それを超えて、それらは範囲、目的、および実装がまったく異なります。
オレンジはドメイン不可知論者であり、特定の学問分野や商業ドメインに向けられたものではなく、フルスタックのデータマイニングとMLプラットフォームとして宣伝しています。それはに焦点を当てています ツール 特定の分野でのツールの適用ではなく、それ自体。
その機能には、IO、データ分析アルゴリズム、およびデータ視覚化キャンバスが含まれます。
一方、NLTKは、大規模な大学の計算言語学部で学術プロジェクトとして始まり、依然として依然として依然として存在しています。あなたが言及したタスク(ドキュメントコンテンツ分類)と選択のアルゴリズム(ナイーブベイジアン)は、NLTKの機能の中心にあります。 NLTKには実際にML/データマイニングアルゴリズムがありますが、それは計算言語学に特定のユーティリティを持っているからです。
もちろん、NLTKにはいくつかのMLアルゴリズムが含まれていますが、それは計算言語学の有用性、ドキュメントパーサー、トークナー、スピーチアナライザーなどとともに、すべてNLTKを含むからです。
おそらく、オレンジでのナイーブベイズの実装は同じくらい良いです。私は、あなたが言及した特定のタスクに明確に最適化されているため、NLTKの実装を選択するでしょう。
NLTKには、特にコンテンツ分類を使用するための素朴なベイズに関する多くのチュートリアルがあります。ブログ投稿 ジムプラス そして別の Streamhacker.com, 、たとえば、NLTKの素朴なベイズを使用するための優れたチュートリアルを提示しています。 2番目には、このモジュールにアクセスするために必要なコードの行ごとの議論が含まれています。これらの両方の投稿の著者は、NLTKを使用して良い結果を報告しています(前者では92%、後者では73%)。
他のヒント
私はオレンジを知りませんが、nltkの場合は+1です:
NLTKの分類ツールを使用して、テキストと関連するメタデータを分類しました。ベイジアンはデフォルトですが、最大エントロピーなどの他の選択肢があります。また、ツールキットであるため、フィット感に合わせてカスタマイズできます。独自の機能を作成する(これは私がメタデータに対して行ったことです)。
NLTKにはいくつかの良い本があります。そのうちの1つはCreative Commons(およびO'Reilly)の下で入手可能です。
NLTKは、自然言語処理の4つの状態モデルをサポートするツールキットです。
- トークン化:文字を単語としてグループ化します。これは、些細な修復的なものから「できない」などの収縮に対処することにまで及びます
- タグ付け。これは、スピーチの一部のタグをトークンに適用しています(たとえば、noun for noun "、vbg" for verb cerund)。これは通常、トレーニングコーパスでモデル(隠されたマルコフなど)をトレーニングすることによって行われます(つまり、手紙でタグ付けされた文章で大きなリスト)。
- チャンク/解析。これは、各タグ付き文を取得し、特徴をツリー(名詞句など)に抽出しています。これは、手書きのグラマーまたはコーパスで訓練された文法に従うことができます。
- 情報抽出。これは、ツリーを横断し、データを抽出しています。これは、特定のオレンジ=フルーツが行われる場所です。
NLTKは、単語を分類する巨大なセマンティック辞書であるWordNetをサポートしています。したがって、オレンジ(果物、木、顔料、色、南アフリカの川)には5つの名詞定義があります。これらには、分類の階層である1つ以上の「ハイパーニームパス」があります。たとえば、「オレンジ」の最初の感覚には2つのパスがあります。
- Orange/Citrus/Edible_fruit/Fruit/Reproductive_structure/Plant_organ/Plant_part/natural_object/object/object/physical_entity/entity
と
- Orange/Citrus/Edible_fruit/Produce/Food/Solid/Matter/Physical_Entity/Entity
アプリケーションドメインに応じて、オレンジを果物、食べ物、または植物のものとして識別できます。その後、チャンクされた木の構造を使用して、より多くを決定できます(誰が果物に何をしたかなど)