Learn R Programming

mscstexta4r (version 0.1.2)

textaSentiment: Assesses the sentiment of sentences or documents.

Description

This function returns a numeric score between 0 and 1 with scores close to 1 indicating positive sentiment and scores close to 0 indicating negative sentiment.

Sentiment score is generated using classification techniques. The input features of the classifier include n-grams, features generated from part-of-speech tags, and word embeddings. English, French, Spanish and Portuguese text are supported.

Internally, this function invokes the Microsoft Cognitive Services Text Analytics REST API documented at https://www.microsoft.com/cognitive-services/en-us/text-analytics/documentation.

You MUST have a valid Microsoft Cognitive Services account and an API key for this function to work properly. See https://www.microsoft.com/cognitive-services/en-us/pricing for details.

Usage

textaSentiment(documents, languages = rep("en", length(documents)))

Arguments

documents
(character vector) Vector of sentences or documents for which to assess sentiment.
languages
(character vector) Languages of the sentences or documents, supported values: "en"(English, default), "es"(Spanish), "fr"(French), "pt"(Portuguese)

Value

An S3 object of the class texta. The results are stored in the results dataframe inside this object. The dataframe contains the original sentences or documents and their sentiment score. If an error occurred during processing, the dataframe will also have an error column that describes the error.

Examples

Run this code
## Not run: 
# 
#  docsText <- c(
#    "Loved the food, service and atmosphere! We'll definitely be back.",
#    "Very good food, reasonable prices, excellent service.",
#    "It was a great restaurant.",
#    "If steak is what you want, this is the place.",
#    "The atmosphere is pretty bad but the food is quite good.",
#    "The food is quite good but the atmosphere is pretty bad.",
#    "I'm not sure I would come back to this restaurant.",
#    "The food wasn't very good.",
#    "While the food was good the service was a disappointment.",
#    "I was very disappointed with both the service and my entree."
#  )
#  docsLanguage <- rep("en", length(docsText))
# 
#  tryCatch({
# 
#    # Perform sentiment analysis
#    docsSentiment <- textaSentiment(
#      documents = docsText,    # Input sentences or documents
#      languages = docsLanguage
#      # "en"(English, default)|"es"(Spanish)|"fr"(French)|"pt"(Portuguese)
#    )
# 
#    # Class and structure of docsSentiment
#    class(docsSentiment)
#    #> [1] "texta"
#    str(docsSentiment, max.level = 1)
#    #> List of 3
#    #>  $ results:'data.frame': 10 obs. of  2 variables:
#    #>  $ json   : chr "{\"documents\":[{\"score\":0.9903013,\"id\":\"hDgKc\", __truncated__ }]}
#    #>  $ request:List of 7
#    #>   ..- attr(*, "class")= chr "request"
#    #>  - attr(*, "class")= chr "texta"
# 
#    # Print results
#    docsSentiment
#    #> texta [https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment]
#    #>
#    #> --------------------------------------
#    #>              text               score
#    #> ------------------------------ -------
#    #>  Loved the food, service and    0.9847
#    #>  atmosphere! We'll definitely
#    #>            be back.
#    #>
#    #>  Very good food, reasonable     0.9831
#    #>  prices, excellent service.
#    #>
#    #>  It was a great restaurant.     0.9306
#    #>
#    #>  If steak is what you want,     0.8014
#    #>      this is the place.
#    #>
#    #> The atmosphere is pretty bad    0.4998
#    #>  but the food is quite good.
#    #>
#    #> The food is quite good but the   0.475
#    #>   atmosphere is pretty bad.
#    #>
#    #> I'm not sure I would come back  0.2857
#    #>      to this restaurant.
#    #>
#    #>   The food wasn't very good.    0.1877
#    #>
#    #>  While the food was good the   0.08727
#    #> service was a disappointment.
#    #>
#    #>  I was very disappointed with  0.01877
#    #>    both the service and my
#    #>            entree.
#    #> --------------------------------------
# 
#  }, error = function(err) {
# 
#    # Print error
#    geterrmessage()
# 
#  })
# ## End(Not run)

Run the code above in your browser using DataLab