質問

私は私が服用している大学のクラスのためにプロジェクトをやっています。

PHPを使用して、辞書のセットに基づいて、ツイートを「ポジティブ」(またはハッピー)および「ネガティブ」(または悲しい)として分類するシンプルなWebアプリを構築しています。私が今考えているアルゴリズムは、素朴なベイズ分類器または決定ツリーです。

ただし、深刻な言語処理を行うのに役立つPHPライブラリは見つかりません。 Pythonにはnltkがあります(http://www.nltk.org)。 PHPのようなものはありますか?

WekaをWebアプリのバックエンドとして使用することを計画しています(PHP内からコマンドラインでWekaを呼び出すことで)が、それほど効率的ではないようです。

このプロジェクトに何を使用すべきか考えていますか?または、Pythonに切り替える必要がありますか?

ありがとう

役に立ちましたか?

解決

ナイーブベイズ分類器を使用する場合は、NL処理を実際に必要としません。必要なのは、ツイートの単語を抑えるアルゴリズムだけで、必要に応じて停止単語を削除します。

茎のアルゴリズムがたくさんあり、コーディングが難しくありません。停止単語を削除することは、ハッシュマップなどを検索するだけの問題です。開発プラットフォームを切り替えてNLTKを採用する正当な理由はありませんが、非常に素晴らしいツールです。

他のヒント

私はしばらく前に非常によく似たプロジェクトを行いました - Twitterの代わりにRSSニュース項目のみを分類するだけで、フロントエンドにPHPを使用し、バックエンドにWekaを使用しました。使った PHP/Java Bridge これは比較的簡単に使用できました - Java(Weka)コードに追加されたいくつかの行で、PHPがその方法を呼び出すことができます。以下は、WebサイトからのPHPサイドコードの例です。

<?php 
require_once("http://localhost:8087/JavaBridge/java/Java.inc");

$world = new java("HelloWorld");
echo $world->hello(array("from PHP"));
?>

次に(誰かがすでに言及しているように)、停止単語を除外するだけです。 TXTファイルを保持することは、新しい単語を追加するのに非常に便利です(無関係な単語をフィルタリングし始めてタイプミスを説明すると、積み重ねる傾向があります)。

Naive-Bayesモデルには、強力な独立した機能の仮定があります。つまり、一般的にペアになっている単語(イディオムやフレーズなど)を説明していません。各単語を独立した出来事としてとるだけです。ただし、より複雑な方法のいくつか(単語整流、IIRCなど)よりも優れている可能性があり、不必要に複雑にすることなく、大学のクラスに最適です。

使用することもできます uclassify ナイーブベイズに似た何かを行うAPI。基本的に、任意のアルゴリズムのように分類器をトレーニングします(ここでは、Webインターフェイスを介して、またはXMLドキュメントをAPIに送信することで行います)。次に、新しいツイート(またはツイートのバッチ)を取得するたびに、APIを呼び出して分類します。それは速く、あなたはそれを調整することを心配する必要はありません。もちろん、それはあなたが分類器を自分で制御することで得られる柔軟性を失うことを意味しますが、それ自体がクラスプロジェクトの目標ではない場合、それはあなたのための仕事が少ないことを意味します。

オープンカレーを試してみてください - http://viewer.opencalais.com/ 。 API、PHPクラスなどがあります。また、このタスクのlingpipe- http://alias-i.com/lingpipe/index.html

このライブラリを確認できます https://github.com/dachande663/php-classifier 非常に簡単です

ThriftまたはGearmanを使用してNLTKを扱うこともできます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top