PHPテキスト分析は、PHP言語を使用した情報検索(IR)および自然言語処理(NLP)タスクを実行するためのライブラリです。このライブラリには、実行できるツールがあります。
このプロジェクトのすべてのドキュメントは、本とWikiに記載されています。
本が作業中で、あなたの貢献が必要です。 https://github.com/yooper/php-text-analysis-bookで本を見つけることができます
また、図書館のドキュメントもウィキにあります。 https://github.com/yooper/php-text-analysis/wiki
PHPテキスト分析をプロジェクトに追加します
composer require yooper/php-text-analysis
$ tokens = tokenize ( $ text );トークナイザークラスの名前を渡すことで、どのタイプのトークンザーをカスタマイズしてトークン化できます
$ tokens = tokenize ( $ text , TextAnalysis Tokenizers PennTreeBankTokenizer::class);デフォルトのトークネザーは、 textanalysis tokenizers generaltokenizer :: classです。一部のトークンザーでは、インスタンス時にパラメーターを設定する必要があります。
デフォルトでは、 remormize_tokensは関数ストロワーを使用して、すべてのトークンを小文字にします。正規化関数をカスタマイズするには、array_mapで使用する関数または文字列のいずれかを渡します。
$ normalizedTokens = normalize_tokens (array $ tokens ); $ normalizedTokens = normalize_tokens (array $ tokens , ' mb_strtolower ' );
$ normalizedTokens = normalize_tokens (array $ tokens , function ( $ token ){ return mb_strtoupper ( $ token ); });freq_distへの呼び出しは、freqdistインスタンスを返します。
$ freqDist = freq_dist ( tokenize ( $ text ));デフォルトでは、Bigramsが生成されます。
$ bigrams = ngrams ( $ tokens );ngramsをカスタマイズします
// create trigrams with a pipe delimiter in between each word
$ trigrams = ngrams ( $ tokens , 3 , ' | ' );デフォルトでは、STEMメソッドはポーターステムマーを使用します。
$ stemmedTokens = stem ( $ tokens );Stemmerクラス名の名前を渡すことで、どのタイプのステムマーを使用するかをカスタマイズできます
$ stemmedTokens = stem ( $ tokens , TextAnalysis Stemmers MorphStemmer::class);Rakeアルゴリズムを使用するためのショートカット方法があります。使用する前にデータをクリーニングする必要があります。 2番目のパラメーターは、抽出するキーワードのNGRAMサイズです。
$ rake = rake ( $ tokens , 3 );
$ results = $ rake -> getKeywordScores ();PHPを使用したセンチメント分析が必要ですvader、https://github.com/cjhutto/vadersentiment。 PHP実装は簡単に呼び出すことができます。前にデータを正規化するだけです。
$ sentimentScores = vader ( $ tokens );素朴なベイズの実装を使用して、PHPを使用してドキュメント分類を行う必要があります。映画のレビューを分類する例は、ユニットテストにあります
$ nb = naive_bayes ();
$ nb -> train ( ' mexican ' , tokenize ( ' taco nacho enchilada burrito ' ));
$ nb -> train ( ' american ' , tokenize ( ' hamburger burger fries pop ' ));
$ nb -> predict ( tokenize ( ' my favorite food is a burrito ' ));