Mulai Cepat: Analisis sentimen dan Penambangan Pendapat
Dokumentasi referensi | Sampel tambahan | Paket (NuGet) | Kode sumber pustaka
Gunakan mulai cepat ini untuk membuat aplikasi analisis sentimen dengan pustaka klien untuk .NET. Dalam contoh berikut, Anda akan membuat aplikasi C# yang dapat mengidentifikasi sentimen yang dinyatakan dalam sampel teks, serta melakukan analisis sentimen berbasis aspek.
Prasyarat
- Langganan Azure - Buat langganan secara gratis
- IDE Visual Studio
- Setelah Anda memiliki langganan Azure, buat sumber daya Bahasa di portal Azure untuk mendapatkan kunci dan titik akhir Anda. Setelah disebarkan, klik Buka sumber daya.
- Anda akan memerlukan kunci dan titik akhir dari referensi yang Anda buat untuk menyambungkan aplikasi Anda ke API. Anda akan menempelkan kunci dan titik akhir ke dalam kode di bawah ini nanti di mulai cepat.
- Anda dapat menggunakan tingkat harga gratis (
Free F0) untuk mencoba layanan, lalu meningkatkannya ke tingkat berbayar untuk produksi.
- Untuk menggunakan fitur Analisis, Anda memerlukan sumber daya Bahasa dengan tingkat harga standar (S).
Persiapan
Buat aplikasi .NET Core baru
Menggunakan Ide Visual Studio, buat aplikasi konsol .NET Core baru. Ini akan membuat proyek "Halo Dunia" dengan satu file sumber C#: program.cs.
Pasang pustaka klien dengan mengeklik kanan solusi proyek di Penjelajah Solusi, lalu pilih Kelola Paket NuGet. Di manajer paket yang terbuka pilih Telusuri dan cari Azure.AI.TextAnalytics. Pilih versi 5.1.0, lalu Pasang. Anda juga dapat menggunakan Package Manager Console.
Contoh kode
Salin kode berikut ke dalam file program.cs Anda. Jangan lupa untuk mengganti variabel key dengan kunci untuk referensi Anda dan ganti variabel endpoint dengan titik akhir untuk referensi Anda.
Penting
Pergi ke portal Microsoft Azure. Jika sumber daya bahasa yang Anda buat di bagian Prasyarat berhasil disebarkan, klik tombol Buka Referensi di bawah Langkah Berikutnya. Anda dapat menemukan kunci dan titik akhir dengan membuka halaman Kunci dan Titik Akhir sumber daya, di bagian Manajemen Sumber Daya.
Ingatlah untuk menghapus kunci dari kode Anda setelah selesai, dan jangan pernah memposting kode secara publik. Untuk produksi, pertimbangkan untuk menggunakan cara menyimpan dan mengakses info masuk Anda dengan aman. Misalnya, Brankas kunci Azure.
using Azure;
using System;
using Azure.AI.TextAnalytics;
using System.Collections.Generic;
namespace Example
{
class Program
{
private static readonly AzureKeyCredential credentials = new AzureKeyCredential("replace-with-your-key-here");
private static readonly Uri endpoint = new Uri("replace-with-your-endpoint-here");
// Example method for detecting sentiment from text.
static void SentimentAnalysisExample(TextAnalyticsClient client)
{
string inputText = "I had the best day of my life. I wish you were there with me.";
DocumentSentiment documentSentiment = client.AnalyzeSentiment(inputText);
Console.WriteLine($"Document sentiment: {documentSentiment.Sentiment}\n");
foreach (var sentence in documentSentiment.Sentences)
{
Console.WriteLine($"\tText: \"{sentence.Text}\"");
Console.WriteLine($"\tSentence sentiment: {sentence.Sentiment}");
Console.WriteLine($"\tPositive score: {sentence.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tNegative score: {sentence.ConfidenceScores.Negative:0.00}");
Console.WriteLine($"\tNeutral score: {sentence.ConfidenceScores.Neutral:0.00}\n");
}
}
// Example method for detecting opinions text.
static void SentimentAnalysisWithOpinionMiningExample(TextAnalyticsClient client)
{
var documents = new List<string>
{
"The food and service were unacceptable, but the concierge were nice."
};
AnalyzeSentimentResultCollection reviews = client.AnalyzeSentimentBatch(documents, options: new AnalyzeSentimentOptions()
{
IncludeOpinionMining = true
});
foreach (AnalyzeSentimentResult review in reviews)
{
Console.WriteLine($"Document sentiment: {review.DocumentSentiment.Sentiment}\n");
Console.WriteLine($"\tPositive score: {review.DocumentSentiment.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tNegative score: {review.DocumentSentiment.ConfidenceScores.Negative:0.00}");
Console.WriteLine($"\tNeutral score: {review.DocumentSentiment.ConfidenceScores.Neutral:0.00}\n");
foreach (SentenceSentiment sentence in review.DocumentSentiment.Sentences)
{
Console.WriteLine($"\tText: \"{sentence.Text}\"");
Console.WriteLine($"\tSentence sentiment: {sentence.Sentiment}");
Console.WriteLine($"\tSentence positive score: {sentence.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tSentence negative score: {sentence.ConfidenceScores.Negative:0.00}");
Console.WriteLine($"\tSentence neutral score: {sentence.ConfidenceScores.Neutral:0.00}\n");
foreach (SentenceOpinion sentenceOpinion in sentence.Opinions)
{
Console.WriteLine($"\tTarget: {sentenceOpinion.Target.Text}, Value: {sentenceOpinion.Target.Sentiment}");
Console.WriteLine($"\tTarget positive score: {sentenceOpinion.Target.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tTarget negative score: {sentenceOpinion.Target.ConfidenceScores.Negative:0.00}");
foreach (AssessmentSentiment assessment in sentenceOpinion.Assessments)
{
Console.WriteLine($"\t\tRelated Assessment: {assessment.Text}, Value: {assessment.Sentiment}");
Console.WriteLine($"\t\tRelated Assessment positive score: {assessment.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\t\tRelated Assessment negative score: {assessment.ConfidenceScores.Negative:0.00}");
}
}
}
Console.WriteLine($"\n");
}
}
static void Main(string[] args)
{
var client = new TextAnalyticsClient(endpoint, credentials);
SentimentAnalysisExample(client);
SentimentAnalysisWithOpinionMiningExample(client);
Console.Write("Press any key to exit.");
Console.ReadKey();
}
}
}
Output
Document sentiment: Positive
Text: "I had the best day of my life."
Sentence sentiment: Positive
Positive score: 1.00
Negative score: 0.00
Neutral score: 0.00
Text: "I wish you were there with me."
Sentence sentiment: Neutral
Positive score: 0.21
Negative score: 0.02
Neutral score: 0.77
Document sentiment: Positive
Positive score: 0.84
Negative score: 0.16
Neutral score: 0.00
Text: "The food and service were unacceptable, but the concierge were nice."
Sentence sentiment: Positive
Sentence positive score: 0.84
Sentence negative score: 0.16
Sentence neutral score: 0.00
Target: food, Value: Negative
Target positive score: 0.01
Target negative score: 0.99
Related Assessment: unacceptable, Value: Negative
Related Assessment positive score: 0.01
Related Assessment negative score: 0.99
Target: service, Value: Negative
Target positive score: 0.01
Target negative score: 0.99
Related Assessment: unacceptable, Value: Negative
Related Assessment positive score: 0.01
Related Assessment negative score: 0.99
Target: concierge, Value: Positive
Target positive score: 1.00
Target negative score: 0.00
Related Assessment: nice, Value: Positive
Related Assessment positive score: 1.00
Related Assessment negative score: 0.00
Press any key to exit.
Dokumentasi referensi | Sampel tambahan | Paket (Maven) | Kode sumber pustaka
Gunakan mulai cepat ini untuk membuat aplikasi analisis sentimen dengan pustaka klien untuk Java. Dalam contoh berikut, Anda akan membuat aplikasi Java yang dapat mengidentifikasi sentimen yang dinyatakan dalam sampel teks, serta melakukan analisis sentimen berbasis aspek.
Prasyarat
- Langganan Azure - Buat langganan secara gratis
- Java Development Kit (JDK) versi 8 atau lebih tinggi
- Setelah Anda memiliki langganan Azure, buat sumber daya Bahasa di portal Azure untuk mendapatkan kunci dan titik akhir Anda. Setelah disebarkan, klik Buka sumber daya.
- Anda akan memerlukan kunci dan titik akhir dari referensi yang Anda buat untuk menyambungkan aplikasi Anda ke API. Anda akan menempelkan kunci dan titik akhir ke dalam kode di bawah ini nanti di mulai cepat.
- Anda dapat menggunakan tingkat harga gratis (
Free F0) untuk mencoba layanan, lalu meningkatkannya ke tingkat berbayar untuk produksi.
- Untuk menggunakan fitur Analisis, Anda memerlukan sumber daya Bahasa dengan tingkat harga standar (S).
Persiapan
Tambahkan pustaka klien
Buat proyek Maven di IDE atau lingkungan pengembangan pilihan Anda. Kemudian, tambahkan dependensi berikut ke file pom.xml proyek Anda. Anda dapat menemukan sintaks implementasi untuk alat build online lainnya.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-textanalytics</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
Contoh kode
Buat file Java bernama Example.java. Buka file dan salin kode di bawah ini. Jangan lupa untuk mengganti variabel key dengan kunci untuk referensi Anda dan ganti variabel endpoint dengan titik akhir untuk referensi Anda.
Penting
Pergi ke portal Microsoft Azure. Jika sumber daya bahasa yang Anda buat di bagian Prasyarat berhasil disebarkan, klik tombol Buka Referensi di bawah Langkah Berikutnya. Anda dapat menemukan kunci dan titik akhir dengan membuka halaman Kunci dan Titik Akhir sumber daya, di bagian Manajemen Sumber Daya.
Ingatlah untuk menghapus kunci dari kode Anda setelah selesai, dan jangan pernah memposting kode secara publik. Untuk produksi, pertimbangkan untuk menggunakan cara menyimpan dan mengakses info masuk Anda dengan aman. Misalnya, Brankas kunci Azure.
import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;
public class Example {
private static String KEY = "replace-with-your-key-here";
private static String ENDPOINT = "replace-with-your-endpoint-here";
public static void main(String[] args) {
TextAnalyticsClient client = authenticateClient(KEY, ENDPOINT);
sentimentAnalysisExample(client);
sentimentAnalysisWithOpinionMiningExample(client);
}
// Method to authenticate the client object with your key and endpoint.
static TextAnalyticsClient authenticateClient(String key, String endpoint) {
return new TextAnalyticsClientBuilder()
.credential(new AzureKeyCredential(key))
.endpoint(endpoint)
.buildClient();
}
// Example method for sentiment in text.
static void sentimentAnalysisExample(TextAnalyticsClient client)
{
// The text that need be analyzed.
String text = "I had the best day of my life. I wish you were there with me.";
DocumentSentiment documentSentiment = client.analyzeSentiment(text);
System.out.printf(
"Recognized document sentiment: %s, positive score: %s, neutral score: %s, negative score: %s.%n",
documentSentiment.getSentiment(),
documentSentiment.getConfidenceScores().getPositive(),
documentSentiment.getConfidenceScores().getNeutral(),
documentSentiment.getConfidenceScores().getNegative());
for (SentenceSentiment sentenceSentiment : documentSentiment.getSentences()) {
System.out.printf(
"Recognized sentence sentiment: %s, positive score: %s, neutral score: %s, negative score: %s.%n",
sentenceSentiment.getSentiment(),
sentenceSentiment.getConfidenceScores().getPositive(),
sentenceSentiment.getConfidenceScores().getNeutral(),
sentenceSentiment.getConfidenceScores().getNegative());
}
}
// Example method for detecting opinions in text.
static void sentimentAnalysisWithOpinionMiningExample(TextAnalyticsClient client)
{
// The document that needs be analyzed.
String document = "Bad atmosphere. Not close to plenty of restaurants, hotels, and transit! Staff are not friendly and helpful.";
System.out.printf("Document = %s%n", document);
AnalyzeSentimentOptions options = new AnalyzeSentimentOptions().setIncludeOpinionMining(true);
final DocumentSentiment documentSentiment = client.analyzeSentiment(document, "en", options);
SentimentConfidenceScores scores = documentSentiment.getConfidenceScores();
System.out.printf(
"Recognized document sentiment: %s, positive score: %f, neutral score: %f, negative score: %f.%n",
documentSentiment.getSentiment(), scores.getPositive(), scores.getNeutral(), scores.getNegative());
documentSentiment.getSentences().forEach(sentenceSentiment -> {
SentimentConfidenceScores sentenceScores = sentenceSentiment.getConfidenceScores();
System.out.printf("\tSentence sentiment: %s, positive score: %f, neutral score: %f, negative score: %f.%n",
sentenceSentiment.getSentiment(), sentenceScores.getPositive(), sentenceScores.getNeutral(), sentenceScores.getNegative());
sentenceSentiment.getOpinions().forEach(opinion -> {
TargetSentiment targetSentiment = opinion.getTarget();
System.out.printf("\t\tTarget sentiment: %s, target text: %s%n", targetSentiment.getSentiment(),
targetSentiment.getText());
for (AssessmentSentiment assessmentSentiment : opinion.getAssessments()) {
System.out.printf("\t\t\t'%s' assessment sentiment because of \"%s\". Is the assessment negated: %s.%n",
assessmentSentiment.getSentiment(), assessmentSentiment.getText(), assessmentSentiment.isNegated());
}
});
});
}
}
Output
Recognized document sentiment: positive, positive score: 0.99, neutral score: 0.0, negative score: 0.0.
Recognized sentence sentiment: positive, positive score: 0.99, neutral score: 0.0, negative score: 0.0.
Recognized sentence sentiment: neutral, positive score: 0.25, neutral score: 0.72, negative score: 0.03.
Document = Bad atmosphere. Not close to plenty of restaurants, hotels, and transit! Staff are not friendly and helpful.
Recognized document sentiment: negative, positive score: 0.050000, neutral score: 0.030000, negative score: 0.920000.
Sentence sentiment: negative, positive score: 0.010000, neutral score: 0.000000, negative score: 0.990000.
Target sentiment: negative, target text: atmosphere
'negative' assessment sentiment because of "Bad". Is the assessment negated: false.
Sentence sentiment: negative, positive score: 0.140000, neutral score: 0.080000, negative score: 0.780000.
Sentence sentiment: negative, positive score: 0.010000, neutral score: 0.000000, negative score: 0.990000.
Target sentiment: negative, target text: Staff
'negative' assessment sentiment because of "friendly". Is the assessment negated: true.
'negative' assessment sentiment because of "helpful". Is the assessment negated: true.
Dokumentasi referensi | Sampel tambahan | Paket (npm) | Kode sumber pustaka
Gunakan mulai cepat ini untuk membuat aplikasi analisis sentimen dengan pustaka klien untuk Node.js. Dalam contoh berikut, Anda akan membuat aplikasi JavaScript yang dapat mengidentifikasi sentimen yang dinyatakan dalam sampel teks, serta melakukan analisis sentimen berbasis aspek.
Prasyarat
- Langganan Azure - Buat langganan secara gratis
- Versi terbaru Node.js.
- Setelah Anda memiliki langganan Azure, buat sumber daya Bahasa di portal Azure untuk mendapatkan kunci dan titik akhir Anda. Setelah disebarkan, klik Buka sumber daya.
- Anda akan memerlukan kunci dan titik akhir dari referensi yang Anda buat untuk menyambungkan aplikasi Anda ke API. Anda akan menempelkan kunci dan titik akhir ke dalam kode di bawah ini nanti di mulai cepat.
- Anda dapat menggunakan tingkat harga gratis (
Free F0) untuk mencoba layanan, lalu meningkatkannya ke tingkat berbayar untuk produksi.
- Untuk menggunakan fitur Analisis, Anda memerlukan sumber daya Bahasa dengan tingkat harga standar (S).
Persiapan
Buat aplikasi Node.js baru
Di jendela konsol (seperti cmd, PowerShell, atau Bash), buat direktori baru untuk aplikasi Anda, dan arahkan ke sana.
mkdir myapp
cd myapp
Jalankan perintah npm init untuk membuat aplikasi node dengan file package.json.
npm init
Memasang pustaka klien
Instal paket npm:
npm install @azure/ai-text-analytics@5.1.0
Contoh kode
Buka file dan salin kode di bawah ini. Jangan lupa untuk mengganti variabel key dengan kunci untuk referensi Anda dan ganti variabel endpoint dengan titik akhir untuk referensi Anda.
Penting
Pergi ke portal Microsoft Azure. Jika sumber daya bahasa yang Anda buat di bagian Prasyarat berhasil disebarkan, klik tombol Buka Referensi di bawah Langkah Berikutnya. Anda dapat menemukan kunci dan titik akhir dengan membuka halaman Kunci dan Titik Akhir sumber daya, di bagian Manajemen Sumber Daya.
Ingatlah untuk menghapus kunci dari kode Anda setelah selesai, dan jangan pernah memposting kode secara publik. Untuk produksi, pertimbangkan untuk menggunakan cara menyimpan dan mengakses info masuk Anda dengan aman. Misalnya, Brankas kunci Azure.
"use strict";
const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
const key = '<paste-your-key-here>';
const endpoint = '<paste-your-endpoint-here>';
// Authenticate the client with your key and endpoint.
const textAnalyticsClient = new TextAnalyticsClient(endpoint, new AzureKeyCredential(key));
// Example method for detecting sentiment in text.
async function sentimentAnalysis(client){
const sentimentInput = [
"I had the best day of my life. I wish you were there with me."
];
const sentimentResult = await client.analyzeSentiment(sentimentInput);
sentimentResult.forEach(document => {
console.log(`ID: ${document.id}`);
console.log(`\tDocument Sentiment: ${document.sentiment}`);
console.log(`\tDocument Scores:`);
console.log(`\t\tPositive: ${document.confidenceScores.positive.toFixed(2)} \tNegative: ${document.confidenceScores.negative.toFixed(2)} \tNeutral: ${document.confidenceScores.neutral.toFixed(2)}`);
console.log(`\tSentences Sentiment(${document.sentences.length}):`);
document.sentences.forEach(sentence => {
console.log(`\t\tSentence sentiment: ${sentence.sentiment}`)
console.log(`\t\tSentences Scores:`);
console.log(`\t\tPositive: ${sentence.confidenceScores.positive.toFixed(2)} \tNegative: ${sentence.confidenceScores.negative.toFixed(2)} \tNeutral: ${sentence.confidenceScores.neutral.toFixed(2)}`);
});
});
}
sentimentAnalysis(textAnalyticsClient)
// Example method for detecting opinions in text.
async function sentimentAnalysisWithOpinionMining(client){
const sentimentInput = [
{
text: "The food and service were unacceptable, but the concierge were nice",
id: "0",
language: "en"
}
];
const results = await client.analyzeSentiment(sentimentInput, { includeOpinionMining: true });
for (let i = 0; i < results.length; i++) {
const result = results[i];
console.log(`- Document ${result.id}`);
if (!result.error) {
console.log(`\tDocument text: ${sentimentInput[i].text}`);
console.log(`\tOverall Sentiment: ${result.sentiment}`);
console.log("\tSentiment confidence scores:", result.confidenceScores);
console.log("\tSentences");
for (const { sentiment, confidenceScores, opinions } of result.sentences) {
console.log(`\t- Sentence sentiment: ${sentiment}`);
console.log("\t Confidence scores:", confidenceScores);
console.log("\t Mined opinions");
for (const { target, assessments } of opinions) {
console.log(`\t\t- Target text: ${target.text}`);
console.log(`\t\t Target sentiment: ${target.sentiment}`);
console.log("\t\t Target confidence scores:", target.confidenceScores);
console.log("\t\t Target assessments");
for (const { text, sentiment } of assessments) {
console.log(`\t\t\t- Text: ${text}`);
console.log(`\t\t\t Sentiment: ${sentiment}`);
}
}
}
} else {
console.error(`\tError: ${result.error}`);
}
}
}
sentimentAnalysisWithOpinionMining(textAnalyticsClient);
Output
ID: 0
Document Sentiment: positive
Document Scores:
Positive: 1.00 Negative: 0.00 Neutral: 0.00
Sentences Sentiment(2):
Sentence sentiment: positive
Sentences Scores:
Positive: 1.00 Negative: 0.00 Neutral: 0.00
Sentence sentiment: neutral
Sentences Scores:
Positive: 0.21 Negative: 0.02 Neutral: 0.77
- Document 0
Document text: The food and service were unacceptable, but the concierge were nice
Overall Sentiment: positive
Sentiment confidence scores: { positive: 0.84, neutral: 0, negative: 0.16 }
Sentences
- Sentence sentiment: positive
Confidence scores: { positive: 0.84, neutral: 0, negative: 0.16 }
Mined opinions
- Target text: food
Target sentiment: negative
Target confidence scores: { positive: 0.01, negative: 0.99 }
Target assessments
- Text: unacceptable
Sentiment: negative
- Target text: service
Target sentiment: negative
Target confidence scores: { positive: 0.01, negative: 0.99 }
Target assessments
- Text: unacceptable
Sentiment: negative
- Target text: concierge
Target sentiment: positive
Target confidence scores: { positive: 1, negative: 0 }
Target assessments
- Text: nice
Sentiment: positive
Dokumentasi referensi | Sampel tambahan | Paket (PiPy) | Kode sumber pustaka
Gunakan mulai cepat ini untuk membuat aplikasi analisis sentimen dengan pustaka klien untuk Python. Dalam contoh berikut, Anda akan membuat aplikasi Python yang dapat mengidentifikasi sentimen yang dinyatakan dalam sampel teks, serta melakukan analisis sentimen berbasis aspek.
Prasyarat
- Langganan Azure - Membuat langganan gratis
- Python 3.x
- Setelah Anda memiliki langganan Azure, buat sumber daya Bahasa di portal Azure untuk mendapatkan kunci dan titik akhir Anda. Setelah disebarkan, klik Buka sumber daya.
- Anda akan memerlukan kunci dan titik akhir dari referensi yang Anda buat untuk menyambungkan aplikasi Anda ke API. Anda akan menempelkan kunci dan titik akhir ke dalam kode di bawah ini nanti di mulai cepat.
- Anda dapat menggunakan tingkat harga gratis (
Free F0) untuk mencoba layanan, lalu meningkatkannya ke tingkat berbayar untuk produksi.
- Untuk menggunakan fitur Analisis, Anda memerlukan sumber daya Bahasa dengan tingkat harga standar (S).
Persiapan
Memasang pustaka klien
Setelah memasang Python, Anda dapat memasang pustaka klien dengan:
pip install azure-ai-textanalytics==5.1.0
Contoh kode
Buat file Python baru dan salin kode di bawah ini. Jangan lupa untuk mengganti variabel key dengan kunci untuk referensi Anda dan ganti variabel endpoint dengan titik akhir untuk referensi Anda.
Penting
Pergi ke portal Microsoft Azure. Jika sumber daya bahasa yang Anda buat di bagian Prasyarat berhasil disebarkan, klik tombol Buka Referensi di bawah Langkah Berikutnya. Anda dapat menemukan kunci dan titik akhir dengan membuka halaman Kunci dan Titik Akhir sumber daya, di bagian Manajemen Sumber Daya.
Ingatlah untuk menghapus kunci dari kode Anda setelah selesai, dan jangan pernah memposting kode secara publik. Untuk produksi, pertimbangkan untuk menggunakan cara menyimpan dan mengakses info masuk Anda dengan aman. Misalnya, Brankas kunci Azure.
key = "paste-your-key-here"
endpoint = "paste-your-endpoint-here"
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
# Authenticate the client using your key and endpoint
def authenticate_client():
ta_credential = AzureKeyCredential(key)
text_analytics_client = TextAnalyticsClient(
endpoint=endpoint,
credential=ta_credential)
return text_analytics_client
client = authenticate_client()
# Example function for detecting sentiment in text
def sentiment_analysis_example(client):
documents = ["I had the best day of my life. I wish you were there with me."]
response = client.analyze_sentiment(documents=documents)[0]
print("Document Sentiment: {}".format(response.sentiment))
print("Overall scores: positive={0:.2f}; neutral={1:.2f}; negative={2:.2f} \n".format(
response.confidence_scores.positive,
response.confidence_scores.neutral,
response.confidence_scores.negative,
))
for idx, sentence in enumerate(response.sentences):
print("Sentence: {}".format(sentence.text))
print("Sentence {} sentiment: {}".format(idx+1, sentence.sentiment))
print("Sentence score:\nPositive={0:.2f}\nNeutral={1:.2f}\nNegative={2:.2f}\n".format(
sentence.confidence_scores.positive,
sentence.confidence_scores.neutral,
sentence.confidence_scores.negative,
))
sentiment_analysis_example(client)
# Example method for detecting opinions in text
def sentiment_analysis_with_opinion_mining_example(client):
documents = [
"The food and service were unacceptable, but the concierge were nice"
]
result = client.analyze_sentiment(documents, show_opinion_mining=True)
doc_result = [doc for doc in result if not doc.is_error]
positive_reviews = [doc for doc in doc_result if doc.sentiment == "positive"]
negative_reviews = [doc for doc in doc_result if doc.sentiment == "negative"]
positive_mined_opinions = []
mixed_mined_opinions = []
negative_mined_opinions = []
for document in doc_result:
print("Document Sentiment: {}".format(document.sentiment))
print("Overall scores: positive={0:.2f}; neutral={1:.2f}; negative={2:.2f} \n".format(
document.confidence_scores.positive,
document.confidence_scores.neutral,
document.confidence_scores.negative,
))
for sentence in document.sentences:
print("Sentence: {}".format(sentence.text))
print("Sentence sentiment: {}".format(sentence.sentiment))
print("Sentence score:\nPositive={0:.2f}\nNeutral={1:.2f}\nNegative={2:.2f}\n".format(
sentence.confidence_scores.positive,
sentence.confidence_scores.neutral,
sentence.confidence_scores.negative,
))
for mined_opinion in sentence.mined_opinions:
target = mined_opinion.target
print("......'{}' target '{}'".format(target.sentiment, target.text))
print("......Target score:\n......Positive={0:.2f}\n......Negative={1:.2f}\n".format(
target.confidence_scores.positive,
target.confidence_scores.negative,
))
for assessment in mined_opinion.assessments:
print("......'{}' assessment '{}'".format(assessment.sentiment, assessment.text))
print("......Assessment score:\n......Positive={0:.2f}\n......Negative={1:.2f}\n".format(
assessment.confidence_scores.positive,
assessment.confidence_scores.negative,
))
print("\n")
print("\n")
sentiment_analysis_with_opinion_mining_example(client)
Output
Document Sentiment: positive
Overall scores: positive=1.00; neutral=0.00; negative=0.00
Sentence: I had the best day of my life.
Sentence 1 sentiment: positive
Sentence score:
Positive=1.00
Neutral=0.00
Negative=0.00
Sentence: I wish you were there with me.
Sentence 2 sentiment: neutral
Sentence score:
Positive=0.21
Neutral=0.77
Negative=0.02
Document Sentiment: positive
Overall scores: positive=0.84; neutral=0.00; negative=0.16
Sentence: The food and service were unacceptable, but the concierge were nice
Sentence sentiment: positive
Sentence score:
Positive=0.84
Neutral=0.00
Negative=0.16
......'negative' target 'food'
......Target score:
......Positive=0.01
......Negative=0.99
......'negative' assessment 'unacceptable'
......Assessment score:
......Positive=0.01
......Negative=0.99
......'negative' target 'service'
......Target score:
......Positive=0.01
......Negative=0.99
......'negative' assessment 'unacceptable'
......Assessment score:
......Positive=0.01
......Negative=0.99
......'positive' target 'concierge'
......Target score:
......Positive=1.00
......Negative=0.00
......'positive' assessment 'nice'
......Assessment score:
......Positive=1.00
......Negative=0.00
Gunakan mulai cepat ini untuk mengirim permintaan analisis sentimen menggunakan REST API. Dalam contoh berikut, Anda akan menggunakan cURL untuk mengidentifikasi sentimen yang dinyatakan dalam sampel teks, serta melakukan analisis sentimen berbasis aspek.
Prasyarat
- Versi cURL saat ini.
- Setelah Anda memiliki langganan Azure, buat sumber daya Bahasa di portal Azure untuk mendapatkan kunci dan titik akhir Anda. Setelah disebarkan, klik Buka sumber daya.
- Anda akan memerlukan kunci dan titik akhir dari referensi yang Anda buat untuk menyambungkan aplikasi Anda ke API. Anda akan menempelkan kunci dan titik akhir ke dalam kode di bawah ini nanti di mulai cepat.
- Anda dapat menggunakan tingkat harga gratis (
Free F0) untuk mencoba layanan, dan kemudian meningkatkannya ke tingkat berbayar untuk produksi.
Catatan
- Contoh BASH berikut menggunakan
\karakter kelanjutan baris. Jika konsol atau terminal Anda menggunakan karakter kelanjutan baris yang berbeda, silakan gunakan karakter tersebut. - Anda dapat menemukan sampel spesifik bahasa di GitHub.
- Buka portal Microsoft Azure, lalu cari kunci dan titik akhir untuk Sumber daya bahasa yang Anda buat di prasyarat. Kunci dan titik akhir berada di halaman kunci dan titik akhir sumber daya, di bagian manajemen sumber daya. Kemudian ganti string di dalam kode berikut dengan kunci dan titik akhir Anda. Untuk memanggil API, Anda memerlukan informasi berikut:
| parameter | Deskripsi |
|---|---|
-X POST <endpoint> |
Menentukan titik akhir Anda untuk mengakses API. |
-H Content-Type: application/json |
Jenis konten untuk mengirim data JSON. |
-H "Ocp-Apim-Subscription-Key:<key> |
Menentukan kunci untuk mengakses API. |
-d <documents> |
JSON berisi dokumen yang ingin Anda kirim. |
Perintah cURL berikut dijalankan dari shell BASH. Edit perintah berikut ini dengan nama sumber daya, kunci sumber daya, dan nilai JSON milik Anda.
Analisis sentimen dan penggalian opini
- Salin perintah ke editor teks.
- JIka diperlukan, buat perubahan berikut dalam perintah:
- Ganti nilai
<your-text-analytics-key-here>dengan kunci Anda. - Ganti bagian pertama URL permintaan (
<your-text-analytics-endpoint-here>) dengan URL titik akhir Anda sendiri.
- Ganti nilai
- Buka jendela wantian perintah.
- Tempelkan perintah dari editor teks ke jendela perintah, lalu jalankan perintah.
Catatan
Contoh di bawah ini mencakup permintaan untuk fitur Penggalian Opini dari Analisis Sentimen menggunakan parameter opinionMining=true, yang memberikan informasi terperinci tentang penilaian (kata sifat) yang terkait dengan target (kata benda) dalam teks.
curl -i -X POST <your-language-resource-endpoint>/language/:analyze-text?api-version=2022-05-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"kind": "SentimentAnalysis",
"parameters": {
"modelVersion": "latest",
"opinionMining": "True"
},
"analysisInput":{
"documents":[
{
"id":"1",
"language":"en",
"text": "The customer service here is really good."
}
]
}
}
'
Respons JSON
{
"kind": "SentimentAnalysisResults",
"results": {
"documents": [{
"id": "1",
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"neutral": 0.0,
"negative": 0.0
},
"sentences": [{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"neutral": 0.0,
"negative": 0.0
},
"offset": 0,
"length": 41,
"text": "The customer service here is really good.",
"targets": [{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"negative": 0.0
},
"offset": 4,
"length": 16,
"text": "customer service",
"relations": [{
"relationType": "assessment",
"ref": "#/documents/0/sentences/0/assessments/0"
}]
}],
"assessments": [{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"negative": 0.0
},
"offset": 36,
"length": 4,
"text": "good",
"isNegated": false
}]
}],
"warnings": []
}],
"errors": [],
"modelVersion": "2021-10-01"
}
}
Membersihkan sumber daya
Jika ingin membersihkan dan menghapus langganan Cognitive Services, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.