人工知能と自然言語処理の発展に伴い、感情分析とテキスト分類がアプリケーション シナリオとしてますます重要になってきています。 PHP では、さまざまなツールやアルゴリズムを使用してこれらの機能を実現できます。この記事では、PHP で感情分析とテキスト分類を実行する方法と、どのツールとアルゴリズムを使用する必要があるかを説明します。
1. 感情分析
感情分析とは、表現された感情が肯定的なものであるか否定的なものであるかを判断するためにテキストを分析することを指します。 PHP では、次の 2 つの方法で感情分析を実行できます。
センチメント ディクショナリに基づくセンチメント分析は、シンプルで効果的なセンチメント分析方法です。その基本的な考え方は、テキスト内の各単語を感情辞書内の感情的な単語と照合し、肯定的な単語と否定的な単語の数を数え、それによってテキストの感情を判断することです。 PHP では、中国語の感情語彙オントロジー ライブラリや CNKI 感情語彙ライブラリなどの既製の感情語彙ライブラリを使用したり、独自の感情辞書を手動で構築したりできます。
以下は、センチメント ディクショナリに基づいた簡単なセンチメント分析のサンプル コードです:
<?php // 加载情感词典 $positive_words = file('positive.txt', FILE_IGNORE_NEW_LINES); $negative_words = file('negative.txt', FILE_IGNORE_NEW_LINES); // 定义情感值 $positive_score = 0; $negative_score = 0; // 分词 $words = mb_str_split($text); // 统计情感值 foreach($words as $word){ if(in_array($word, $positive_words)){ $positive_score++; } elseif(in_array($word, $negative_words)){ $negative_score++; } } // 输出结果 if($positive_score > $negative_score){ echo '积极'; } elseif($positive_score < $negative_score){ echo '消极'; } else { echo '中性'; } ?>
機械学習に基づいたセンチメント分析は、感情分析のより正確な方法です。その基本的な考え方は、既存の注釈付きデータをトレーニングして感情分類モデルを構築し、そのモデルを使用して未知のテキストに対する感情的な判断を行うことです。 PHP では、Scikit-Learn や TensorFlow などの既製の機械学習フレームワークを使用したり、独自の分類アルゴリズムを作成したりできます。以下は、ナイーブ ベイズ アルゴリズムに基づく簡単なセンチメント分析コードの例です:
<?php // 加载训练集和测试集 $train = file('train.txt', FILE_IGNORE_NEW_LINES); $test = file('test.txt', FILE_IGNORE_NEW_LINES); // 构建特征向量 foreach($train as $item){ $words = mb_str_split($item); foreach($words as $word){ $features[$item][$word] = 1; } } // 训练模型 $classifier = new NaiveBayes(); foreach($features as $item => $vector){ $label = ($item[0] == '+') ? 'positive' : 'negative'; $classifier->train($vector, $label); } // 预测测试集 foreach($test as $item){ $words = mb_str_split($item); $vector = array_fill_keys($words, 1); $predicts = $classifier->predict($vector); $score = $predicts['positive'] - $predicts['negative']; if($score > 0){ echo '积极'; } elseif($score < 0){ echo '消极'; } else { echo '中性'; } } ?>
2. テキスト分類
テキスト分類とは、類似性または指定された基準に基づいてテキストをさまざまなカテゴリに分割することを指します。 。 PHP では、テキスト分類はスパム フィルタリング、ニュース分類、製品評価などの分野で広く使用されています。一般的に使用される 2 つのテキスト分類方法を以下に紹介します。
<?php // 加载训练集和测试集 $train = file('train.txt', FILE_IGNORE_NEW_LINES); $test = file('test.txt', FILE_IGNORE_NEW_LINES); // 提取特征 $vectorizer = new TfIdfVectorizer(); $X_train = $vectorizer->fit_transform($train); $y_train = array_map(function($item){ return ($item[0] == '+') ? 1 : 0; }, $train); // 训练模型 $classifier = new LogisticRegression(); $classifier->fit($X_train, $y_train); // 测试模型 $X_test = $vectorizer->transform($test); $predictions = $classifier->predict($X_test); foreach($predictions as $predict){ if($predict){ echo '积极'; } else { echo '消极'; } } ?>
<?php // 加载训练集和测试集 $train = file('train.txt', FILE_IGNORE_NEW_LINES); $test = file('test.txt', FILE_IGNORE_NEW_LINES); // 提取特征 $vectorizer = new WordVectorizer(); $X_train = $vectorizer->fit_transform($train); $y_train = array_map(function($item){ return ($item[0] == '+') ? 'positive' : 'negative'; }, $train); // 训练模型 $model = new HMM(); $model->fit($X_train, $y_train); // 测试模型 $X_test = $vectorizer->transform($test); $predictions = $model->predict($X_test); foreach($predictions as $predict){ echo $predict; } ?>
以上がPHP で感情分析とテキスト分類を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。