分類
概要
このドキュメントでは、JavaでLangChain4jを使用した分類システムの実装を提供します。分類は、感情分析、意図検出、およびエンティティ認識などの、テキストを事前定義されたラベルに分類するために不可欠です。
この例では、LangChain4jのAI駆動サービスを使用した感情分類を示しています。
感情分類サービス
感情分類システムは、入力テキストを以下の感情カテゴリのいずれかに分類します:
- POSITIVE(ポジティブ)
- NEUTRAL(中立)
- NEGATIVE(ネガティブ)
実装
import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;
import dev.langchain4j.service.UserMessage;
public class SentimentClassification {
// OpenAIを使用してチャットモデルを初期化
static ChatModel chatModel = OpenAiChatModel.withApiKey("YOUR_OPENAI_API_KEY");
// 感情を表すenumを定義
enum Sentiment {
POSITIVE, NEUTRAL, NEGATIVE
}
// AI駆動の感情分析インターフェースを定義
interface SentimentAnalyzer {
@UserMessage("Analyze sentiment of {{it}}")
Sentiment analyzeSentimentOf(String text);
@UserMessage("Does {{it}} have a positive sentiment?")
boolean isPositive(String text);
}
public static void main(String[] args) {
// AI駆動の感情分析インスタンスを作成
SentimentAnalyzer sentimentAnalyzer = AiServices.create(SentimentAnalyzer.class, chatModel);
// 感情分析の例
Sentiment sentiment = sentimentAnalyzer.analyzeSentimentOf("I love this product!");
System.out.println(sentiment); // 期待される出力: POSITIVE
boolean positive = sentimentAnalyzer.isPositive("This is a terrible experience.");
System.out.println(positive); // 期待される出力: false
}
}