medianeuroscience / emfdscore

Fast, flexible extraction of moral information from textual input data.
GNU General Public License v3.0
102 stars 28 forks source link

Cannot understand the vice-virtue out-metric #6

Closed fishfree closed 3 years ago

fishfree commented 3 years ago

In the Jupyter note:

The vice-virtue split is accomplished by considering the average sentiment of each foundation of each
word, and then assigning this word to "virtue" if the foundation sentiment is positive,
or to "vice" if the sentiment is negative.
For instance, if using the all option for the prob_map option above, a word's foundation probabilities
will be translated into five virtue scores (e.g., care, fairness, loyalty, authority, and sanctity)
if the word's sentiment for these foundations is positive, whereas a word whose sentiments for each
foundation is negative will be assigned five vice scores (e.g., harm, cheating, betrayal, subversion, and degradation).

I cannot understand, could you please give an example? Many thanks!

fhopp commented 3 years ago

@fishfree sorry for the slow response.

In general, the vice-virtue scoring option should be used if you want eMFDscore to return the average degree to which each of the moral foundations is upheld (virtue) or violated (vice) in a text.

As described in the tutorial: The vice-virtue split is accomplished by considering the average sentiment of each foundation of each word, and then assigning this word to "virtue" if the foundation sentiment is positive, or to "vice" if the sentiment is negative.

Let's look at an example: Assume the word "kill" has the following probabilities and sentiments:

care_p fairness_p loyalty_p authority_p sanctity_p 0.4 0.174757 0.240741 0.202532 0.217822

care_sent fairness_sent loyalty_sent authority_sent sanctity_sent -0.695627 -0.796594 -0.668615 -0.751787 -0.684514

Using the emfd bow single vice-virtue option, the word kill would be assigned a SINGLE care.vice score of 0.4, because a) the probability for the care foundation is highest compared to the other foundations, and b) the CARE sentiment for the word kill is negative.

Using the emfd bow all vice-virtue option, the word kill would be assigned care.vice=0.4, fairness.vice=0.17, loyalty.vice=0.24, authority.vice=0.20, and sanctity.vice=0.21 score; because the sentiments are ALL negative for each foundation. IF the word kill had a positive sentiment score for any of the foundation, then the probability would be assigned to a .virtue column.

Please let me know if this clarifies matters and if you have further questions.

fishfree commented 3 years ago

@fhopp Thank you very much! Understood now. Sorry for replying you late.