You can create your Class models, Label models & ABSA models on Studio to execute different Natural Language Processing tasks such as the Aspect Based Sentiment Analysis task. Find here the analytical descriptions of these models with exemplary Natural Language Processing tasks.
Label Model & Sentiment Analysis
Imagine that you have many fruits in one big basket and you want to learn more about them. The first thing that comes naturally to you is to separate them based on some characteristics. Let’s say that we pick their color as a criterion for separation. You can split the fruits in your basket into three groups: green, red, and yellow. The process you just conducted is called classification, and it is what a Label Model does: it separates objects into categories based on the objects' characteristics. Each object can belong to only one group as a fruit cannot be green and red simultaneously.
A Label Model is forced to choose precisely one class name, even when it is not clear in which class it should be assigned to, e.g., an orange fruit would be tagged as “Red” in the example of the fruits above.
In Natural Language Processing, you can identify the above task in Sentiment Analysis, as the process where a Label Model classifies text into the following three sentiments: positive, negative, or neutral, based on the context of the words in the text. For example, a Label Model used for Sentiment Analysis would assign the label “Positive” to the text: “I am pleased with this product.”
Class Model - Aspect Analysis
Imagine that you have to analyze a fruit to its nutrient components, and you are particularly interested in identifying if your fruit has sugars, vitamin A, and protein. A Class Model is a model that explicitly knows a collection of labels, and it tries to identify these labels on a particular object.
The output of a Class Model can be none, one or more labels. For example, lime does not contain any sugars, vitamin A, or protein, so the corresponding Class Model would not assign any labels to a lime. On the other hand, an apple contains all three nutrients; hence the same Class Model would give the labels “sugars,” “vitamin A,” and “protein” to it.
A Class Model assigns a label to an object when a label's definition matches the object explicitly. If the object’s characteristics do not match any known description to the model labels, then no label is assigned to the object.
In Natural Language Processing, you can identify the above model in the Aspect Analysis task. Here, we use a Class Model to assign none, one or more of the predefined labels (aspects) to a piece of text.
For example, a Class Model that is used for Aspect Analysis and "knows" the following aspects (labels): “Ease of use,” “Money,” “Brand,” “Satisfaction” and “Service” (which describe different aspects of a product), it would assign the labels “Ease of use” and “Satisfaction” to the following text: “I am very pleased with how easy it was to use the product.”
Aspect Based Sentiment Analysis Model - ClassLabel Model
After understanding the two different models above (Label & Class), it will be straightforward for you to grasp their “combination,” the ClassLabel Model. So, a ClassLabel Model does nothing more than using a Class Model firstly on a piece of text and secondly a Label Model on the first model’s output.
More explicitly, when a ClassLabel "sees" a piece of text, it first tries to identify any predefined labels. We saw before that none, one or more labels can be assigned to the text at this stage. If no tags are assigned to the text, then a ClassLabel Model stops, and nothing has been set to the text example. In the last case, the Model's final output is the label None.
If at least one label is assigned to the provided text, then the Label Model is activated, and each label produces a class name. Each label is paired with the corresponding class, and the final output of the ClassLabel Model is one or more (label, class) pairs, depending on the number of the identified labels.
In Natural Language Processing, you can identify the above model type in the Aspect Based Sentiment Analysis task. We currently support in Studio only the ABSA task regarding the ClassLabel Model type.
Let’s see three text examples and the corresponding output of an ABSA model with the following predefined labels: “Ease of use”, “Money”, “Brand”, “Satisfaction”, “Service”
and the following sentiment classes: “Positive”, “Negative”, “Neutral”
- Example 1: Input: “I currently live in Austria.” ---> Output pairs: None
- Example 2: Input: “The customer support was amazing!” ---> Output pairs: (“Service”, “Positive”)
- Example 3: Input: “The product was very easy to use, even though it was expensive” ---> Output pairs: (“Ease of use”, “Positive”), (“Money”, “Negative”)