2017-12-13 4 views
3

R 3.4.3, mit qdap::polarity(), frage ich mich, ob es einen Weg gibt, einen Verstärker für ein negiertes Wort anstelle des eigentlichen Wortes selbst gelten zu lassen. Im folgenden Beispiel ist "Liebe" das positive Wort, "nicht" ist das Negationswort und "definitiv" ist das Verstärkungswort. Ich möchte, dass die Phrase "a" eine negativere Polarität hat, aber "definitiv" verstärkt "Liebe" und nicht "nicht Liebe".Haben qdap Verstärker gelten für negierte Wörter

library(qdap) 
text <- c("definitely didn't love", "didn't love", "love") 
phrase <- c("a", "b", "c") 
df <- data.frame(phrase, text) 
polarity(df$text, df$phrase) 

    phrase total.sentences total.words ave.polarity sd.polarity stan.mean.polarity 
1  a    1   3  -0.115   NA     NA 
2  b    1   2  -0.707   NA     NA 
3  c    1   1  1.000   NA     NA 

Vielen Dank im Voraus, -jt

+0

Wenn Sie das Paket 'SentimentAnalysis' verwenden, erhalten Sie möglicherweise, was Sie wollen. 'foo <- analyzeSentiment (df $ text); foo' gibt mir 0.33, 0.5 und 1.0 für 'SentimentQDAP' in der Ausgabe. – jazzurro

+0

Leider behandelt SentimentQDAP nur "definitiv" als neutrales Wort und senkt die Punktzahl für das dritte Wort. "Affe hat nicht geliebt" würde mir die gleiche Punktzahl geben. – JimmyT

+0

Ich verstehe. Hoffe jemand kann dir helfen. – jazzurro

Antwort

1

Dies ist nicht die Art und Weise qdqp::polarity funktioniert. Die Valenzwörter können das markierte polarisierte Wort nur verstärken, deamplifizieren oder negieren/umkehren. Zum Beispiel enthält der Ausdruck "definitiv nicht lieben" aus der obigen Frage <amplifier> <negator> <polarized word>. Der Negator "hat nicht", kehrt das positiv polarisierte Wort "Liebe" um. Der Verstärker "verstärkt" definitiv das positiv polarisierte Wort "Liebe". Es verstärkt nicht das negierte "nicht lieben".

Verwandte Themen