Inspecciona el texto dado e identifica la opinión emocional predominante.
Páginas de documentación que incluyen esta muestra de código
Para ver la muestra de código usada en contexto, consulta la siguiente documentación:
Muestra de código
C#
private static void AnalyzeSentimentFromText(string text)
{
var client = LanguageServiceClient.Create();
var response = client.AnalyzeSentiment(new Document()
{
Content = text,
Type = Document.Types.Type.PlainText
});
WriteSentiment(response.DocumentSentiment, response.Sentences);
}
private static void WriteSentiment(Sentiment sentiment,
RepeatedField<Sentence> sentences)
{
Console.WriteLine("Overall document sentiment:");
Console.WriteLine($"\tScore: {sentiment.Score}");
Console.WriteLine($"\tMagnitude: {sentiment.Magnitude}");
Console.WriteLine("Sentence level sentiment:");
foreach (var sentence in sentences)
{
Console.WriteLine($"\t{sentence.Text.Content}: "
+ $"({sentence.Sentiment.Score})");
}
}
Go
func analyzeSentiment(ctx context.Context, client *language.Client, text string) (*languagepb.AnalyzeSentimentResponse, error) {
return client.AnalyzeSentiment(ctx, &languagepb.AnalyzeSentimentRequest{
Document: &languagepb.Document{
Source: &languagepb.Document_Content{
Content: text,
},
Type: languagepb.Document_PLAIN_TEXT,
},
})
}
Java
// Instantiate the Language client com.google.cloud.language.v1.LanguageServiceClient
try (LanguageServiceClient language = LanguageServiceClient.create()) {
Document doc = Document.newBuilder().setContent(text).setType(Type.PLAIN_TEXT).build();
AnalyzeSentimentResponse response = language.analyzeSentiment(doc);
Sentiment sentiment = response.getDocumentSentiment();
if (sentiment == null) {
System.out.println("No sentiment found");
} else {
System.out.printf("Sentiment magnitude: %.3f\n", sentiment.getMagnitude());
System.out.printf("Sentiment score: %.3f\n", sentiment.getScore());
}
return sentiment;
}
Node.js
// Imports the Google Cloud client library
const language = require('@google-cloud/language');
// Creates a client
const client = new language.LanguageServiceClient();
/**
* TODO(developer): Uncomment the following line to run this code.
*/
// const text = 'Your text to analyze, e.g. Hello, world!';
// Prepares a document, representing the provided text
const document = {
content: text,
type: 'PLAIN_TEXT',
};
// Detects the sentiment of the document
const [result] = await client.analyzeSentiment({document});
const sentiment = result.documentSentiment;
console.log('Document sentiment:');
console.log(` Score: ${sentiment.score}`);
console.log(` Magnitude: ${sentiment.magnitude}`);
const sentences = result.sentences;
sentences.forEach(sentence => {
console.log(`Sentence: ${sentence.text.content}`);
console.log(` Score: ${sentence.sentiment.score}`);
console.log(` Magnitude: ${sentence.sentiment.magnitude}`);
});
PHP
use Google\Cloud\Language\V1\Document;
use Google\Cloud\Language\V1\Document\Type;
use Google\Cloud\Language\V1\LanguageServiceClient;
/** Uncomment and populate these variables in your code */
// $text = 'The text to analyze.';
$languageServiceClient = new LanguageServiceClient();
try {
// Create a new Document, add text as content and set type to PLAIN_TEXT
$document = (new Document())
->setContent($text)
->setType(Type::PLAIN_TEXT);
// Call the analyzeSentiment function
$response = $languageServiceClient->analyzeSentiment($document);
$document_sentiment = $response->getDocumentSentiment();
// Print document information
printf('Document Sentiment:' . PHP_EOL);
printf(' Magnitude: %s' . PHP_EOL, $document_sentiment->getMagnitude());
printf(' Score: %s' . PHP_EOL, $document_sentiment->getScore());
printf(PHP_EOL);
$sentences = $response->getSentences();
foreach ($sentences as $sentence) {
printf('Sentence: %s' . PHP_EOL, $sentence->getText()->getContent());
printf('Sentence Sentiment:' . PHP_EOL);
$sentiment = $sentence->getSentiment();
if ($sentiment) {
printf('Entity Magnitude: %s' . PHP_EOL, $sentiment->getMagnitude());
printf('Entity Score: %s' . PHP_EOL, $sentiment->getScore());
}
print(PHP_EOL);
}
} finally {
$languageServiceClient->close();
}
Python
from google.cloud import language_v1
def sample_analyze_sentiment(text_content):
"""
Analyzing Sentiment in a String
Args:
text_content The text content to analyze
"""
client = language_v1.LanguageServiceClient()
# text_content = 'I am so happy and joyful.'
# Available types: PLAIN_TEXT, HTML
type_ = language_v1.Document.Type.PLAIN_TEXT
# Optional. If not specified, the language is automatically detected.
# For list of supported languages:
# https://cloud.google.com/natural-language/docs/languages
language = "en"
document = {"content": text_content, "type_": type_, "language": language}
# Available values: NONE, UTF8, UTF16, UTF32
encoding_type = language_v1.EncodingType.UTF8
response = client.analyze_sentiment(request = {'document': document, 'encoding_type': encoding_type})
# Get overall sentiment of the input document
print(u"Document sentiment score: {}".format(response.document_sentiment.score))
print(
u"Document sentiment magnitude: {}".format(
response.document_sentiment.magnitude
)
)
# Get sentiment for all sentences in the document
for sentence in response.sentences:
print(u"Sentence text: {}".format(sentence.text.content))
print(u"Sentence sentiment score: {}".format(sentence.sentiment.score))
print(u"Sentence sentiment magnitude: {}".format(sentence.sentiment.magnitude))
# Get the language of the text, which will be the same as
# the language specified in the request or, if not specified,
# the automatically-detected language.
print(u"Language of the text: {}".format(response.language))
Ruby
# text_content = "Text to run sentiment analysis on"
require "google/cloud/language"
language = Google::Cloud::Language.language_service
document = { content: text_content, type: :PLAIN_TEXT }
response = language.analyze_sentiment document: document
sentiment = response.document_sentiment
puts "Overall document sentiment: (#{sentiment.score})"
puts "Sentence level sentiment:"
sentences = response.sentences
sentences.each do |sentence|
sentiment = sentence.sentiment
puts "#{sentence.text.content}: (#{sentiment.score})"
end