0 / 0
Go back to the English version of the documentation
Klasyfikacja sentymentu
Last updated: 07 lis 2023
Klasyfikacja sentymentu

Modele klasyfikacji Watson Natural Language Processing Sentiment klasyfikują odczucia tekstu wejściowego.

Obsługiwane języki

Klasyfikacja odczuć jest dostępna dla następujących języków. Listę kodów języków i odpowiadających im języków zawiera sekcja Kody języków.

ar, cs, da, de, en, es, fi, fr, he, hi, it, ja, ko, nb, nl, nn, pl, pt, ro, ru, sk, sv, tr, zh-cn

Wydźwięk

Odczucia tekstu mogą być pozytywne, negatywne lub neutralne.

Model odczuć oblicza odczucia dla każdego zdania w dokumencie wejściowym. Zagregowany sentyment dla całego dokumentu jest również obliczany przy użyciu przepływu pracy transformatora sentymentu w środowisku wykonawczym 23.1. Jeśli w środowisku wykonawczym 22.2 używane są modele odczuć, ogólny sentyment dokumentu można obliczyć przy użyciu metody pomocniczej o nazwie predict_document_sentiment.

Zwracane klasyfikacje zawierają prawdopodobieństwo. Wynik sentymentu waha się od -1 do 1. Wynik większy niż 0 oznacza odczucie pozytywne, wynik mniejszy niż 0 oznacza odczucie negatywne, a wynik równy 0 oznacza odczucie neutralne.

Przepływy pracy odczuć zdań w czasie wykonywania 23.1

Nazwy przepływów pracy

  • sentiment-aggregated_transformer-workflow_multilingual_slate.153m.distilled
  • sentiment-aggregated_transformer-workflow_multilingual_slate.153m.distilled-cpu

Przepływ pracy sentiment-aggregated_transformer-workflow_multilingual_slate.153m.distilled może być używany zarówno w procesorach, jak i procesorach GPU.

Przepływ pracy sentiment-aggregated_transformer-workflow_multilingual_slate.153m.distilled-cpu jest zoptymalizowany pod kątem środowisk wykonawczych opartych na procesorze.

Przykład kodu przy użyciu przepływu pracy sentiment-aggregated_transformer-workflow_multilingual_slate.153m.distilled

# Load the Sentiment workflow
sentiment_model = watson_nlp.load('sentiment-aggregated_transformer-workflow_multilingual_slate.153m.distilled-cpu')

# Run the sentiment model on the result of the syntax results
sentiment_result = sentiment_model.run('The rooms are nice. But the beds are not very comfortable.')

# Print the sentence sentiment results
print(sentiment_result)

Dane wyjściowe przykładowego kodu

{
  "document_sentiment": {
    "score": -0.339735,
    "label": "SENT_NEGATIVE",
    "mixed": true,
    "sentiment_mentions": [
      {
        "span": {
          "begin": 0,
          "end": 19,
          "text": "The rooms are nice."
        },
        "sentimentprob": {
          "positive": 0.9720447063446045,
          "neutral": 0.011838269419968128,
          "negative": 0.016117043793201447
        }
      },
      {
        "span": {
          "begin": 20,
          "end": 58,
          "text": "But the beds are not very comfortable."
        },
        "sentimentprob": {
          "positive": 0.0011594508541747928,
          "neutral": 0.006315878126770258,
          "negative": 0.9925248026847839
        }
      }
    ]
  },
  "targeted_sentiments": {
    "targeted_sentiments": {},
    "producer_id": {
      "name": "Aggregated Sentiment Workflow",
      "version": "0.0.1"
    }
  },
  "producer_id": {
    "name": "Aggregated Sentiment Workflow",
    "version": "0.0.1"
  }
}

Bloki odczuć zdań w 22.2 środowiskach wykonawczych

Nazwa bloku

sentiment_sentence-bert_multi_stock

Zależności od innych bloków

Przed uruchomieniem bloku sentymentu zdania należy uruchomić następujący blok:

  • syntax_izumo_<language>_stock

Przykładowy kod używający bloku sentiment_sentence-bert_multi_stock

import watson_nlp
from watson_nlp.toolkit.sentiment_analysis_utils import predict_document_sentiment
# Load Syntax and a Sentiment model for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
sentiment_model = watson_nlp.load('sentiment_sentence-bert_multi_stock')

# Run the syntax model on the input text
syntax_result = syntax_model.run('The rooms are nice. But the beds are not very comfortable.')

# Run the sentiment model on the result of the syntax results
sentiment_result = sentiment_model.run_batch(syntax_result.get_sentence_texts(), syntax_result.sentences)

# Print the sentence sentiment results
print(sentiment_result)

# Get the aggregated document sentiment
document_sentiment = predict_document_sentiment(sentiment_result, sentiment_model.class_idxs)
print(document_sentiment)

Dane wyjściowe przykładowego kodu:

[{
  "score": 0.9540348989256836,
  "label": "SENT_POSITIVE",
  "sentiment_mention": {
    "span": {
      "begin": 0,
      "end": 19,
      "text": "The rooms are nice."
    },
    "sentimentprob": {
      "positive": 0.919123649597168,
      "neutral": 0.05862388014793396,
      "negative": 0.022252488881349564
    }
  },
  "producer_id": {
    "name": "Sentence Sentiment Bert Processing",
    "version": "0.1.0"
  }
}, {
  "score": -0.9772116371114815,
  "label": "SENT_NEGATIVE",
  "sentiment_mention": {
    "span": {
      "begin": 20,
      "end": 58,
      "text": "But the beds are not very comfortable."
    },
    "sentimentprob": {
      "positive": 0.015949789434671402,
      "neutral": 0.025898978114128113,
      "negative": 0.9581512808799744
    }
  },
  "producer_id": {
    "name": "Sentence Sentiment Bert Processing",
    "version": "0.1.0"
  }
}]
{
  "score": -0.335185,
  "label": "SENT_NEGATIVE",
  "mixed": true,
  "sentiment_mentions": [
    {
      "span": {
        "begin": 0,
        "end": 19,
        "text": "The rooms are nice."
      },
      "sentimentprob": {
        "positive": 0.919123649597168,
        "neutral": 0.05862388014793396,
        "negative": 0.022252488881349564
      }
    },
    {
      "span": {
        "begin": 20,
        "end": 58,
        "text": "But the beds are not very comfortable."
      },
      "sentimentprob": {
        "positive": 0.015949789434671402,
        "neutral": 0.025898978114128113,
        "negative": 0.9581512808799744
      }
    }
  ]
}

Cel ekstrakcji sentymentu

Wyodrębnianie odczuć wyodrębnia odczucia wyrażone w tekście i określa ich cele.

Może obsługiwać wiele celów z różnymi odczuciami w jednym zdaniu, w przeciwieństwie do opisanego powyżej bloku odczuć.

Na przykład, biorąc pod uwagę zdanie wejściowe Zaserwowane jedzenie było pyszne, ale usługa była powolna., Cel blok sentymentu wskazuje, że istnieje pozytywny sentyment wyrażony w celu "żywność", a negatywny sentyment wyrażony w "służba".

Model został dostosowany tylko do danych w języku angielskim. Mimo że model może być używany w innych językach wymienionych w sekcji Obsługiwane języki, wyniki mogą być różne.

Docelowe przepływy pracy odczuć w środowisku wykonawczym 23.1

Nazwy przepływów pracy

  • targets-sentiment_transformer-workflow_multilingual_slate.153m.distilled
  • targets-sentiment_transformer-workflow_multilingual_slate.153m.distilled-cpu

Przepływ pracy targets-sentiment_transformer-workflow_multilingual_slate.153m.distilled może być używany zarówno w procesorach, jak i procesorach GPU.

Przepływ pracy targets-sentiment_transformer-workflow_multilingual_slate.153m.distilled-cpu jest zoptymalizowany pod kątem środowisk wykonawczych opartych na procesorze.

Przykładowy kod dla przepływu pracy targets-sentiment_transformer-workflow_multilingual_slate.153m.distilled

import watson_nlp
# Load Targets Sentiment model for English
targets_sentiment_model = watson_nlp.load('targets-sentiment_transformer-workflow_multilingual_slate.153m.distilled')
# Run the targets sentiment model on the input text
targets_sentiments = targets_sentiment_model.run('The rooms are nice, but the bed was not very comfortable.')
# Print the targets with the associated sentiment
print(targets_sentiments)

Dane wyjściowe przykładowego kodu:

{
  "targeted_sentiments": {
    "rooms": {
      "score": 0.990798830986023,
      "label": "SENT_POSITIVE",
      "mixed": false,
      "sentiment_mentions": [
        {
          "span": {
            "begin": 4,
            "end": 9,
            "text": "rooms"
          },
          "sentimentprob": {
            "positive": 0.990798830986023,
            "neutral": 0.0,
            "negative": 0.00920116901397705
          }
        }
      ]
    },
    "bed": {
      "score": -0.9920912981033325,
      "label": "SENT_NEGATIVE",
      "mixed": false,
      "sentiment_mentions": [
        {
          "span": {
            "begin": 28,
            "end": 31,
            "text": "bed"
          },
          "sentimentprob": {
            "positive": 0.00790870189666748,
            "neutral": 0.0,
            "negative": 0.9920912981033325
          }
        }
      ]
    }
  },
  "producer_id": {
    "name": "Transformer-based Targets Sentiment Extraction Workflow",
    "version": "0.0.1"
  }
}

Docelowe bloki sentymentu w środowiskach wykonawczych programu 22.2

Nazwa bloku targets-sentiment_sequence-bert_multi_stock

Zależności od innych bloków

Przed uruchomieniem bloku wyodrębniania odczuć docelowych należy uruchomić następujący blok:

  • syntax_izumo_<language>_stock

Przykładowy kod używający bloku sentiment-targeted_bert_multi_stock

import watson_nlp

# Load Syntax and the Targets Sentiment model for English
syntax_model = watson_nlp.load('syntax_izumo_en_stock')
targets_sentiment_model = watson_nlp.load('targets-sentiment_sequence-bert_multi_stock')

# Run the syntax model on the input text
syntax_result = syntax_model.run('The rooms are nice, but the bed was not very comfortable.')

# Run the targets sentiment model on the syntax results
targets_sentiments = targets_sentiment_model.run(syntax_result)

# Print the targets with the associated sentiment
print(targets_sentiments)

Dane wyjściowe przykładowego kodu:

{
  "targeted_sentiments": {
    "rooms": {
      "score": 0.9989274144172668,
      "label": "SENT_POSITIVE",
      "mixed": false,
      "sentiment_mentions": [
        {
          "span": {
            "begin": 4,
            "end": 9,
            "text": "rooms"
          },
          "sentimentprob": {
            "positive": 0.9989274144172668,
            "neutral": 0.0,
            "negative": 0.0010725855827331543
          }
        }
      ]
    },
    "bed": {
      "score": -0.9977545142173767,
      "label": "SENT_NEGATIVE",
      "mixed": false,
      "sentiment_mentions": [
        {
          "span": {
            "begin": 28,
            "end": 31,
            "text": "bed"
          },
          "sentimentprob": {
            "positive": 0.002245485782623291,
            "neutral": 0.0,
            "negative": 0.9977545142173767
          }
        }
      ]
    }
  },
  "producer_id": {
    "name": "BERT TSA",
    "version": "0.0.1"
  }
}

Temat nadrzędny: Watson Katalog zadań przetwarzania języka naturalnego

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more