Yes, there is research on this topic. The field that studies it is known as affective computing (AC). Emotion recognition seems to be a specific problem in affective computing, i.e. the recognition of emotions, while AC is also concerned with giving machines the ability to convey emotions (in fact, this paper differentiates the two). There's also sentiment ...
I don't want to pour cold water over your approach, but I am very sceptical and (having worked in sentiment analysis myself) think it is way too simplistic.
Various communicative intents are encoded in language, and there is a wide range of linguistic features that are employed for that purpose. Choice of words is only one of them; it is the most obvious ...
I think you are definitely on a very sensible track. No one defines right or wrong in emotion field. It's not hard science. It's all theories.
I have recently read a paper regarding emotions in Reinforcement Learning (RL). It has explained briefly emotion from 3 perspectives: psychology, neuroscience and computer science. In particular, your way of ...
For best results, I'd recommend Google Cloud Machine Learning. It has [Natural Language Processing API] (https://cloud.google.com/natural-language/docs/basics) with Sentiment, Entity, and Entity-Sentiment analysis.
You can implement in C++, PHP, Python, or other languages. This does require running a virtual machine instance on Google Cloud. TensorFlow can ...
What you're describing is known as coreference resolution. More specifically, this example is anaphora resolution. The short answer is that this is an open research question and there is no well-established solution.
You mentioned Hugging Face in your question. The neuralcoref module in spaCy is itself from Hugging Face (note the reflexive anaphor used for ...
Yes, there is. You can try Spacy. Here you go.
from spacytextblob.spacytextblob import SpacyTextBlob
nlp = spacy.load('en_core_web_sm')
spacy_text_blob = SpacyTextBlob()
text = "i'm good"
doc = nlp(text)
print(doc._.sentiment.polarity) # 0.7
text = "i'm bad"
doc = nlp(text)
There are many ways to solve this problem. One way is to apply stemming or lemmatization to reduce your words. Using NLTK's Porter stemmer for example on healthy, healthier, healthiest, not healthy, more healthy, and zero healthy gives:
healthi , healthier , healthiest , not healthi , more healthi , zero healthi
This can help make word comparisons easier.
I finally grasped the concept of word embedding. Thanks to @nbro, after reading the 2 articles s/he recommended
What Are Word Embeddings for Text? and
the 1st article gives me a good idea about the big picture of the Word Embeddings; whereas the 2nd article is actually the one which clears my mind.
I am an visual person, I understand ...
The specific term you are looking for is "word embedding" and not just "embedding".
How to numerically represent textual data?
Neural networks (typically) require as inputs (and produce as outputs) numerical data (i.e. numbers, vectors, matrices, or higher-dimensional arrays). So, when processing textual data, we first need to encode (or ...
One of the essential pre-processing we do on the corpus involves treating the variable-length sentences to a fixed length. There are various ways in which we can do this:
This involves reducing the length of all the sentences to the length of the shortest sentence in the corpus. This is generally not done as it reduces the amount of information ...
Sentiment in this context refers to evaluations, typically positive/negative/neutral. Sentiment Analysis can be applied to product reviews, to identify if the reviewer liked the product or not. This has (in principle) got nothing to do with emotions as such.
Emotion recognition would typically work on conversational data (eg from conversations with ...
It's just as in common use. Sentiment is a superset of emotion, further including feelings, intuition, and rational conclusions drawn from past experience. Analysis is also a superset of recognition, which also includes taking emotions like contentment, happiness, humor affected, anger, rage, and passion and determining what sequences of them mean in the ...
It could work using supervised learning , as long as you have the required dataset.
However, a low error ratio using unsupervised learning of the human emotion spectrum would prove to be more difficult.
How would you defined being in love to a neural network ?
Joy +1 , Sadness -1 ?
Now , How would you define being in love with , let’s say, someone ...
Hinge loss is difficult to work with when the derivative is needed because the derivative will be a piece-wise function. max has one non-differentiable point in its solution, and thus the derivative has the same. This was a very prominent issue with non-separable cases of SVM (and a good reason to use ridge regression).
Here's a slide (Original source from ...
It depends very much on the structure of the data.
I would think about feature extraction first, which could be certain words occurring in the bio, and a class of user name ('real' name, numerical id, etc). Once you have a set of features for each data item, turn them into a list of feature vectors.
Then run them through a number of machine learning ...