2017-12-09 7 views
0

私はmost_used_wordsデータフレーム内の単語を含む列を分析しています。 となります。 2180の言葉のI AFINN辞書とinner_joinのみ364を獲得しているテキスト分析を使用するinner_joinはRで1000語以上の単語を削除します

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 

。これは、AFINNレキシコン内の単語が自分のデータフレームに表示されないためですか?私はそれが私の分析に偏見を導入する可能性がある場合には賛成です。別のレキシコンを使うべきですか?何か他に起こっていることはありますか?

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 

答えて

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

はい。

内部結合は、各data.frameから一致する行(単語)のみを返します。 あなたは別の辞書を試すことができますが、それは名詞に関してあなたを助けないかもしれません。名詞は、人、動物、場所、物、またはアイデアを識別します。上記の例では、 "u.s."、 "people"、 "country"、 "news"、 "democrats"はすべてafinnに存在しない名詞です。これらのどれも文脈のない感情はありません。テキスト分析の世界へようこそ。

しかし、あなたの分析から表示された出力に基づいて、私はあなたの言葉の感情が圧倒的に「否定的」であると結論づけることができると思います。 「偽」という単語は、次に使用頻度が最も高い単語の2倍近く表示されます。これは「悪い」です。

完全な文章がある場合は、sentimentr rパッケージを使用して文脈を得ることができます。それをチェックアウト:

install.packages("sentimentr") 
library(sentimentr) 
?sentiment 

をそれはあなたがここで何をやったかよりも、多くの作業がかかりますし、豊かな結果を生成します。しかし結局、彼らはおそらく同じだろう。がんばろう。

+0

あなたの答えは大変ありがたいです。だから、中立的な意味があるので、すべての言葉が感情に頼ることはできません。彼らは単純な感情を持っていません。だから私は結論づけることができます:感情のある言葉にはx陰性とx陽性があります。 – Tdebeus

+0

右。すべての分析と同様に、結論の正確さは分析がどれほど厳密であるかに左右されます。例えば、「sentimentr」パッケージは、「私は良い気分ではない」という文を否定的なものとして識別するのに役立ちます。あなたが取ったアプローチでは、単に「良い」という言葉をプラスにカウントします。しかし2180ワードのコラムでは、あなたのやっていることはおそらく十分に近いでしょう。 – Justin

+0

答えが正しいと思われる場合は、正しい印を付けてください。ありがとうございました – Justin

関連する問題