Twitterの投稿に基づいて感情的に色付けされた単語の語彙を増やすことについて

Twitterを含むソーシャルネットワークは、特定の機会について人々がどう思うかについての豊富な情報を提供し、ソーシャルデータに基づいて世論を評価する方法を自動化および改善したいという願望は理解できます。 ネットワーク。



たとえば、さまざまな社会学的測定を行うために、ツイートの感情的な色付けを評価する必要があるとします(そのような測定が従来の社会的世論調査に取って代わるかどうかについては、こちらを参照してください )。 この場合、明らかなアプローチは、感情が定量的に表現される感情的に色付けされた単語の辞書を取得し、この辞書の単語の存在によってツイートを評価することです。 しかし、ここで問題が発生します。そのような辞書はまれで、小さく、時代遅れになる可能性があり、さらに、社会のコミュニケーションの「生きた」言語に対応しません。 ネットワーク。 アクセス可能な辞書に新しい単語を補充し、これらの単語が含まれるツイートの感情(より正確には、特定の単語を含むすべてのツイートの算術平均)を帰属させることは正当なようです。 実際、このようなタスクは、 「データサイエンス入門」コースの解決策として提案されています。 疑問が生じます。このような継続は合法ですか? 結果の辞書は、それが展開されたツイートに依存しますか、より正確には、2つの辞書は同じ初期辞書から取得されますが、異なるツイートで補足されますか?



ツイートの評価



URL経由でTwitterにアプリケーションを登録し、pythonモジュール-oauth2を使用することで、ツイートを取得するか、新しいツイートのストリームにアクセスできます(上記のコースの対応するプロジェクトの説明を参照)。



ツイート自体は次のようになります(辞書リストの辞書....)、テキストは太字です
{u'contributors ':なし、u'切り捨て ':False、u'text':u " 再び私に消えないことを知ってうれしい"、u'in_reply_to_status_id ':なし、u'id':608365231232978944L 、u'favorite_count ':0、u'source':u ' Twitter for iPhone '、u'retweeted ':False、u'coordinates':None、u'timestamp_ms ':u'1433880548662'、u'entities ':{ u'user_mentions ':[]、u'symbols':[]、u'trends ':[]、u'hashtags':[]、u'urls ':[]}、u'in_reply_to_screen_name':なし、u ' id_str ':u'608365231232978944'、u'retweet_count ':0、u'in_reply_to_user_id':なし、u'favorited ':False、u'user':{u'follow_request_sent ':なし、u'profile_use_backalse_image' 'default_profile_image':False、u'id ':906813948、u'verified':False、u'profile_image_url_https ':u'https://pbs.twimg.com/profile_images/608142391472570368/b0RxTzZj__alal'fal_form_lal :u'000000 '、u'profile_text_color':u'000000 '、u'followers_count':186、u'profile_sidebar_border_color ':u'000000'、u'id_str ':u'906813948'、u'profile_background_c olor ':u'000000'、u'listed_count ':0、u'profile_background_image_url_https':u'https://abs.twimg.com/images/themes/theme1/bg.png '、u'utc_offset':-18000 、u'statuses_count ':1197、u'description':u「私を笑顔にする何かがあります」、u'friends_count ':184、u'location':u'CCTX '、u'profile_link_color':u'AF65D4 '、u'profile_image_url':u'http://pbs.twimg.com/profile_images/608142391472570368/b0RxTzZS_normal.jpg '、u'following':なし、u'geo_enabled ':True、u'profile_bh ___ ://pbs.twimg.com/profile_banners/906813948/1431466945 '、u'profile_background_image_url':u'http://abs.twimg.com/images/themes/theme1/bg.png '、u'name':u 'Abigail Garcia'、u'lang ':u'en'、u'profile_background_tile ':False、u'favourites_count':8431、u'screen_name ':u'AbigailG_23'、u'notifications ':None、u'url' :なし、u'created_at ':u'Fri Oct 26 21:33:39 +0000 2012'、u'contributors_enabled ':False、u'time_zone':u'Central Time(米国およびカナダ) '、u'protected' :False、u'default_profile ':False、u'is_tr anslator ':False}、u'geo':なし、u'in_reply_to_user_id_str ':なし、u'possibly_sensitive':False、u'lang ':u'en'、u'created_at ':u'Tue Jun 09 20:09 :08 +0000 2015 '、u'filter_level':u'low '、u'in_reply_to_status_id_str':なし、u'place ':なし}



スペースを節約するために、テキストのみを保存することをお勧めします。 将来的にツイートは英語のみで分析されるため、他の言語を削除することもできます。



次の部分は、辞書に基づくツイートの評価です。 2500語の辞書を使用しました。各語には-5〜5の値が割り当てられています。



ツイートの評価スキーム:







もちろん、このアプローチでは個々のツイートを正確に評価することはできませんが、多くのメッセージの感情の評価はしばしば非常に正確です(上記の記事を参照)。



新しい辞書をコンパイルする手順も簡単です。各単語には、この単語を含むすべてのツイートの評価の算術平均に等しい推定値が割り当てられます。



新しい辞書をコンパイルするためのスキーム:







辞書の比較



次に、1つのイニシャルに基づいて取得された2つの辞書を比較しますが、異なる一連のツイートで展開しました。 辞書はそれ自体では面白くありませんが、その後のツイートをどのように評価するかについては、独立した一連のツイートを評価する方法で比較しました。 辞書ごとに、i番目の座標がシリーズからのi番目のツイートの辞書推定値であるベクトルを作成できます。 したがって、タスクは、それぞれが特定の辞書に対応する2つのベクトルと、ツイートの数値推定値に対応する2つのベクトルを比較することになりました。



計算されたパラメーター



相関-+1に近いほど良い。 +1の相関関係を持つ辞書も同じように「動作」します。

ベクトルの差の平均-2つの辞書でツイートの評価が平均してどれくらい異なっていたか

平均の標準偏差— 2つの辞書間のツイート評価の差が「ランダム」エラーである可能性を計算します。



どうした



8,000のツイートに基づいて辞書を作成する場合:

相関-0.66

平均差-0.105

標準偏差-0.042



つまり、ゼロからの平均差の偏差(誤差はランダムであると仮定します)は2.5標準偏差に等しく、これはもちろん少し大きいです。 しかし、原則として、辞書は同様に評価されると言えます。 辞書ごとに6万件のツイートをベースにすると、結果ははるかに良くなります。

相関-0.89

差の平均-0.00086

標準偏差-0.0080



つまり、ゼロからの平均差の偏差は0.1標準偏差に等しいため、誤差(差)は「ランダム」であると結論付けることができます。



したがって、6万件以上のツイートに基づいて拡張された辞書は、ベース自体に依存しないことがわかりました。 実際には、これは、Twitterストリーム(60千件のフィルターされたメッセージ)を30分間ダウンロードすると、単語数を含む新しい拡張辞書を取得できることを意味します-初期辞書の2.5の代わりに16.5千。



さらなる作業は、そのような拡張辞書が「一意」であるだけでなく、正しいことも検証することです:たとえば、既知のベースに値を調整する手順や、結果の辞書を初期辞書の未使用部分で最終検証する手順を埋め込みます。



All Articles