Integrate IBM Watson API
- First, include IBM Watson's Java SDK in your project. You can use a build tool like Maven for this. Add the following dependency in your `pom.xml`:
<dependency>
<groupId>com.ibm.watson.developer_cloud</groupId>
<artifactId>java-sdk</artifactId>
<version>9.9.0</version>
</dependency>
- After adding the dependency, update your project to download the required libraries.
Authenticate with IBM Watson
- Obtain your API key and URL from the IBM Cloud dashboard for the Language Translator service.
- Use this information to authenticate your application. Here's a sample code snippet for authentication:
IamAuthenticator authenticator = new IamAuthenticator("your-api-key");
NaturalLanguageUnderstanding service = new NaturalLanguageUnderstanding("2021-08-01", authenticator);
service.setServiceUrl("https://api.us-south.natural-language-understanding.watson.cloud.ibm.com/instances/your-instance-id");
- The `IamAuthenticator` utilizes your API key to authenticate requests to the Watson API services.
Set Up Sentiment Analysis Parameters
- Configure the sentiment analysis parameters using the `SentimentOptions` object. This allows you to customize the analysis, such as setting the target text or analyzing specific features:
Features features = new Features.Builder()
.sentiment(new SentimentOptions.Builder()
.targets(Arrays.asList("product", "service"))
.build())
.build();
- This configuration targets specific keywords during sentiment analysis.
Perform Sentiment Analysis
- Define the text you wish to analyze and create an `AnalyzeOptions` object. This object contains the text and features you specified:
String text = "I absolutely love this product. The service is excellent, but the price is a bit high.";
AnalyzeOptions parameters = new AnalyzeOptions.Builder()
.text(text)
.features(features)
.build();
- Pass these parameters to the `analyze` method of the `NaturalLanguageUnderstanding` service to receive the analysis results:
AnalysisResults results = service.analyze(parameters).execute().getResult();
System.out.println(results);
- The response will contain the sentiment analysis result indicating whether the sentiment is positive, negative, or neutral.
Handle and Interpret Results
- Once you receive the results, you can process and interpret the sentiment data:
if (results.getSentiment() != null) {
System.out.println("Document sentiment: " + results.getSentiment().getDocument().getLabel());
System.out.println("Score: " + results.getSentiment().getDocument().getScore());
}
- The label indicates the sentiment category (e.g., positive, neutral, negative), and the score represents the confidence level.