2012-04-19 17 views
28

Gibt es R-Pakete, die sich auf die Sentimentanalyse konzentrieren? Ich habe eine kleine Umfrage, bei der Benutzer einen Kommentar über ihre Erfahrungen mit einem Web-Tool schreiben können. Ich bitte um eine numerische Rangliste, und es besteht die Möglichkeit, einen Kommentar hinzuzufügen.Sentimentanalyse mit R

Ich frage mich, was der beste Weg zur Beurteilung der positiven oder negativen Kommentar ist. Ich möchte in der Lage sein, es zu der numerischen Ranking zu vergleichen, die der Benutzer bereitstellt, mit R.

+2

Check-out Jeffery Breen Arbeit hier: http: //www.slideshare.net/jeffreybreen/r-by-example-mining-twitter-für – mweylandt

+0

@mweylandt, wie ein Kerl Jeffrey selbst, es ist "r-e-y." Aber es scheint wie eine einfache, saubere Methode. –

+0

Jeffrey Breen bietet vor allem Anfängern in Text Mining eine hervorragende Anleitung wie ich. Ich bewerbe mich, den von Paras geteilten Link zu besuchen. Von diesem Link können Sie Professor Bing Liu Website gehen, die auf das Thema spezialisiert ist: [Meinung Mining, Sentiment Analysis und Stellungnahme Spam-Erkennung] [1] [1]: http: //www.cs.uic. edu/~ liub/FBS/sentiment-analysis.html Grüße, Rod – rodobastias

Antwort

26

Und es gibt this package:

sentiment: Tools for Sentiment Analysis

Stimmung ist ein R-Paket mit Tools für Stimmungsanalyse einschließlich Bayes Klassifizierer für Positivität/Negativität und Emotion Klassifikation.

-Update 14. Dezember 2012: Es wird in die archive entfernt worden ...

-Update 15. März 2013: Das qdap Paket hat eine polarity Funktion, basierend auf Jeffery Breen Arbeit

+1

Dieses Paket ist nicht mehr verfügbar für R 3.3 –

18

Here's die Arbeit, die ich

Der Code in R. auf Stimmungsanalyse getan habe, ist, keineswegs, poliert oder gut verpackt, aber ich posted it on Github mit grundlegenden Dokumentation. Ich habe die ViralHeat sentiment API verwendet, die nur JSON zurückgibt, so dass die eigentliche Funktion, um die Sentiment-Analyse zu tun, ziemlich trivial ist (siehe Code here).

Fühlen Sie sich frei, mich zu kontaktieren, wenn Sie Probleme haben, es zu benutzen. Beachten Sie, dass Sie sich erst mit ViralHeat für einen API-Schlüssel registrieren müssen, bevor Sie ihn verwenden können. Wenn Sie die Quoten als zu restriktiv empfinden, habe ich sie kontaktiert und sie waren glücklich, mir ein paar Monate mehr Fragen zu stellen, während ich mit der API herumspielte.

0

Sie können immer noch das Sentiment-Paket verwenden. Installieren Sie es nach dem folgenden Skript.

Möglicherweise benötigen Sie R 3.x.

require(devtools) 
install_url("http://cran.r-project.org/src/contrib/Archive/sentiment/sentiment_0.2.tar.gz") 
require(sentiment) 
ls("package:sentiment") 
+1

setiment-Paket ist abhängig von RSTEM-Paket, das auch nicht von R 3.0.2 unterstützt wird –

+0

Ja, auch die Quelle Website: https://sites.google.com/site/miningtwitter/home warnt: Aufgrund von Änderungen in twitter APIs, der Code in dieser Google-Website wird nicht mehr unterstützt ... , obwohl Sie mehr als willkommen sind zu durchsuchen Inhalt – Matt

2

Ich habe versucht, here ein zusammenhängenden Sentiment-Analyse-Paket neu zu organisieren und bereitzustellen. SentR umfasst die Wortstamm- und Vorverarbeitung und bietet Zugriff auf die ViralHeat-API, eine Standardaggregationsfunktion sowie eine weiterentwickelte Naive-Bayes-Methode.

Installation ist relativ einfach:

install.packages('devtools') 
require('devtools') 
install_github('mananshah99/sentR') 
require('sentR') 

Und eine einfache Klassifizierung Beispiel:

# Create small vectors for happy and sad words (useful in aggregate(...) function) 
positive <- c('happy', 'well-off', 'good', 'happiness') 
negative <- c('sad', 'bad', 'miserable', 'terrible') 

# Words to test sentiment 
test <- c('I am a very happy person.', 'I am a very sad person', 
'I’ve always understood happiness to be appreciation. There is no greater happiness than appreciation for what one has- both physically and in the way of relationships and ideologies. The unhappy seek that which they do not have and can not fully appreciate the things around them. I don’t expect much from life. I don’t need a high paying job, a big house or fancy cars. I simply wish to be able to live my life appreciating everything around me. 
') 

# 1. Simple Summation 
out <- classify.aggregate(test, positive, negative) 
out 

# 2. Naive Bayes 
out <- classify.naivebayes(test) 
out 

, die die folgende Ausgabe liefert:

score 
1  1 
2 -1 
3  2 

    POS    NEG     POS/NEG    SENT  
[1,] "9.47547003995745" "0.445453222112551" "21.2715265477714" "positive" 
[2,] "1.03127774142571" "9.47547003995745" "0.108836578774127" "negative" 
[3,] "67.1985217685598" "35.1792261323723" "1.9101762362738" "positive" 

Bitte fühlen Sie sich frei zu tragen :) Hoffnung das hilft!

+0

Hallo Manan, ich mag deine Lösung. Ich habe es versucht und werde mehr experimentieren. Gibt es einen Anwendungsfall wie bei einem Projekt, das Sie anderen Nutzern zur Verfügung gestellt haben? Thx – seakyourpeak

+0

@seakyourpeak danke für den Kommentar! Ich arbeite an einem Beispiel-Twitter Sentiment-Extraktions-Repository (github.com/manans99), aber die Dokumentation für jede Funktion enthält vorläufig einen Beispiel-Anwendungsfall. Wenn Sie weitere Fragen haben, zögern Sie nicht mich zu PM. – manan

+0

@manan Ich arbeite gerade an Facebook Postdaten. Ich konnte den Beitrag extrahieren und eine Wordcloud aufbauen. Ich habe mich gefragt, ob Sie denken, dass es eine gute Idee ist, das gebräuchlichste Wort für meine negative und positive Liste zu verwenden. Ex: wenn in meiner wordcloud ich fand, schlecht, groß, Liebe, glücklich, traurig, Flugzeug, Auto, Transport .... Ich würde wie, groß, Liebe, glücklich als positiver Klassifikator und traurig, schlecht als negativ benutzen .. ? –