2017-12-09 5 views
0

Ich analysiere eine Spalte mit Wörtern in meinem most_used_words Dataframe. Mit Worten.Mit Textanalyse inner_join entfernt mehr als tausend Worte in R

most_used_words 

     word times_used 
     <chr>  <int> 
1 people   70 
2  news   69 
3  fake   68 
4 country   54 
5  media   44 
6  u.s   42 
7 election   40 
8  jobs   37 
9  bad   36 
10 democrats   35 
# ... with 2,170 more rows 

Als ich inner_join mit dem AFINN Lexikon nur 364 der 2180 Worte erzielt werden. Liegt das daran, dass die Wörter im AFINN-Lexikon nicht in meinem Datenrahmen erscheinen? Ich fürchte, wenn dies der Fall ist, kann dies zu Verzerrungen in meiner Analyse führen. Sollte ich ein anderes Lexikon verwenden? Gibt es noch etwas anderes?

library(tidytext) 
library(tidyverse)  

afinn <- get_sentiments("afinn") 

most_used_words %>% 
    inner_join(afinn) 

      word times_used score 
     <chr>  <int> <int> 
    1 fake   68 -3 
    2  bad   36 -3 
    3  win   24  4 
    4 failing   21 -2 
    5 hard   20 -1 
    6 united   19  1 
    7 illegal   17 -3 
    8 cuts   15 -1 
    9 badly   13 -3 
    10 strange   13 -1 
    # ... with 354 more rows 

Antwort

3
"Is this because the words in the in the AFINN lexicon don't appear in my dataframe?" 

Ja.

Ein innerer Join gibt nur passende Zeilen (Wörter) von jedem data.frame zurück. Sie können sicher ein anderes Lexikon ausprobieren, aber das hilft Ihnen vielleicht nicht bei Nomen. Ein Substantiv identifiziert eine Person, ein Tier, einen Ort, eine Sache oder eine Idee. In Ihrem obigen Beispiel sind "u.s.", "Leute", "Land", "Nachrichten", "Demokraten" alle Substantive, die nicht in afinn existieren. Keiner von diesen hat ein Gefühl ohne Kontext. Willkommen in der Welt der Textanalyse.

Aber basierend auf der Ausgabe von Ihnen Analyse angezeigt, ich denke, Sie können feststellen, dass die Stimmung Ihrer Spalte von Wörtern ist überwiegend "negativ". Das Wort "Fälschung" erscheint fast doppelt so häufig wie das nächst am häufigsten verwendete Wort, was "schlecht" ist.

Wenn Sie vollständige Sätze hatten, können Sie Kontext mit dem sentimentr r-Paket erhalten. Überprüfen Sie es heraus:

Es wird mehr Arbeit als das, was Sie hier getan haben, und wird reichere Ergebnisse produzieren. Aber am Ende werden sie wahrscheinlich gleich sein. Viel Glück.

+0

Ah, vielen Dank für Ihre Antwort, also können nicht alle Wörter einem Gefühl zugeordnet werden, weil sie irgendwie neutral sind. Sie haben einfach kein Gefühl. So könnte ich folgern: Von den Wörtern mit der Stimmung gibt es x negativ und x positiv. – Tdebeus

+0

Rechts. Wie bei jeder Analyse hängt die Genauigkeit Ihrer Schlussfolgerung davon ab, wie streng die Analyse ist. Zum Beispiel würde das Paket "sentimentr" Ihnen helfen, den Satz "Ich fühle mich NICHT gut" als negativ zu identifizieren. Wenn Sie so vorgehen würden, würde das Wort "gut" nur positiv sein. Aber für deine Kolumne mit 2180 Wörtern ist dein Tun wahrscheinlich nah genug. – Justin

+0

Bitte markieren Sie die Antwort richtig, wenn Sie es für richtig halten. Vielen Dank – Justin