I barely know about Data Analysis tools and techniques, so bare with me if I'm asking something too trivial.

I'm looking for a Sentiment Analysis tool to process comments in Spanish. I do know some options for Sentiment analysis but those all work for English.

Is there a model/tool that already works with Spanish?

I'm language agnostic so it does not matter if it's a Java, Python or even Go code.

  • $\begingroup$ Out of curiosity, have you tried translating to English then using English sentiment analysis? For some applications it would be enough. $\endgroup$ – Adam Bittlingmayer Oct 10 '15 at 10:35

The Indico.io API supports Spanish (and Chinese (Mandarin), Japanese, Italian, French, Russian, Arabic, German, English).

eg in Python:

>>> import indicoio
>>> indicoio.config.api_key = <YOUR_API_KEY>
>>> indicoio.sentiment("¡Jamás voy a usar esta maldita aplicación!  No funciona para nada.")
>>> indicoio.sentiment("¡Es patrón!  La mejor que he visto.  Punto.")

If this isn't your area, then that's probably the easiest sort of solution to integrate.


check the following links for Spanish sentiment analysis related links :

Working Model :http://dtminredis.housing.salle.url.edu:8080/EmoLib/es/

Data : http://www.daedalus.es/TASS2015/tass2015.php

Api : https://www.mashape.com/molinodeideas/sentiment-analysis-spanish


TM7 of The Netherlands has an advanced NLP engine named CARP that could do this for you. Their examples are largely in Dutch and English language, but they have established ontologies for Spanish for a number of their functional modules, including sentiment analysis.

Find the public 'playground' at http://www.tm7.nl . Select 'Carp Language Technologie' and follow the link in the blue box to the Playground.

Information about available APIs using SOAP services is available as well under the link 'SOAP Webservices' in English


you can try the python package sentiment-analysis-spanish

First to install the package

pip install sentiment-analysis-spanish

Import the package

from sentiment_analysis_spanish import sentiment_analysis

run the sentiment analysis:

sentiment = sentiment_analysis.SentimentAnalysisSpanish()
print(sentiment.sentiment("me gusta la tombola es genial"))

you will see that it outputs


You can try pysentimiento, a wrapper for transformer-based models:

from pysentimiento import SentimentAnalyzer
analyzer = SentimentAnalyzer(lang="es")

analyzer.predict("Qué gran jugador es Messi")
# returns SentimentOutput(output=POS, probas={POS: 0.998, NEG: 0.002, NEU: 0.000})
analyzer.predict("Esto es pésimo")
# returns SentimentOutput(output=NEG, probas={NEG: 0.999, POS: 0.001, NEU: 0.000})
analyzer.predict("Qué es esto?")
# returns SentimentOutput(output=NEU, probas={NEU: 0.993, NEG: 0.005, POS: 0.002})

Disclaimer: I'm one of the developers of the library :-)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.