ソフトウェア : Software

Twitterフォロワーの分析をしよう(7)

2019/11/28

Twitterフォロワーの分析をしよう(7)

Let’s analyze Twitter followers! (7)

让我们来分析Twitter的追随者!(7)

 

This contents is Japanese Only.

Twitterフォロワーの分析をしよう(1)

Twitterフォロワーの分析をしよう(2)

Twitterフォロワーの分析をしよう(3)

Twitterフォロワーの分析をしよう(4)

Twitterフォロワーの分析をしよう(5)

Twitterフォロワーの分析をしよう(6)

 

ようやく、データ分析ツールに取り掛かっています。

ここまででも十分ご苦労さん状態だと思いますが、まだ半分もきていません。

ここから本気のウヘー系の作業です。

 

現状の閾値

データ取得時の設定は「TwitterAnalyzeToolKit\TWTimeLineCapt」のsg.iniで定義されています。

現状の閾値はtwLatestFilterCounterが、「27」となっています。

各ユーザーの直近21の呟きを取得していますが、それらのつぶやきがプログラム起動時から27日以内に呟かれたものかをチェックしています。

1つでも27日以前にある場合は、Failに入ります。

twAnalysisCounterCountは「16」にしています。

「ツイートと返信」に16以上の呟きがあることを確認しています。

16以下のユーザーはFailに入ります。

chart1

 

閾値が「厳しいよ~」、または「もっと厳しくしたい」と思うなら、閾値を変更して再度実行します。

このときに再び数時間コースは辛いので、オフライン実行します。

「sg.ini」の値を変更して、既にあるデータでオフライン実行します。

オフライン実行の例ですが、IDをネットから取得しない、タイムラインをネットから取得しない、twLatestFilterCounterを25日に変更、twAnalysisCounterCountを14呟きに変更。

chart2

 

保存して変更したら、「TwitterAnalyzeToolKit\TWTimeLineCapt」ディレクトリで「TWTimeLineCapt.exe」をダブルクリックします。

ファイルは上書きされるので、閾値が変わったFailとTrueの仕分けができます。

chart3

 

現段階でのフォローする候補とフォローしないアカウントをまとめる

現段階での絶対にフォローしない方針のアカウントは、Analysis000Counter、Analysis001Counter、FailUserTimeRun.csvです。

前者二つは、おおよそ1日1ツイートを閾値に、活発にTwitterを使用していないアカウントだとみなすことができます。

後者の1つは全くタイムランが読み込めないなどで、どんなアカウントか知る由がありませんので、フォローしません。

この他にアラビア語圏のフォロワーも外させていただいております。

図式化すると以下になります。

chart4

 

現在は結果がバラバラになっている状態なので、フォローを外すアカウントをまとめていきます。

更に吟味を進めるアカウントは、フォローを外す以外のアカウントになるので、元々の「両思い+片思い+片思われ<日付>.csv」から、差分を取り算出します。

このときに使うのが「TextMarger」です。

「TwitterAnalyzeToolKit\TextMarger\IN」を開きます。

「IN」フォルダーがない場合は作成して、含まれるファイルを削除してください。

「TwitterAnalyzeToolKit\TextMarger\IN」フォルダは開いたままにしておきます。

chart5

 

別のエクスプローラで「TwitterAnalyzeToolKit\TWTimeLineCapt\Outs\Analysis000Counter」フォルダを開きます。

Analysis000Counterには、取得できたツイートが一定期間内かどうかを閾値にして、うまくいった、いかないアカウントのリストとタイムランに分類しています。

4つのファイルがあります。

TRUE.txtは既定数を満たしたアカウント、TRUELIST.csvは既定数を満たしたタイムラン(ツイートと返信)。セットになっています。

FALSE.txtは既定数に満たなかったアカウント、FALSELIST.csvは既定数に満たなかったタイムラン(ツイートと返信)。セットになっています。

chart6

 

FALSELIST.csvファイルを「TwitterAnalyzeToolKit\TextMarger\IN」フォルダに「一定期間のつぶやき不適合.txt」にリネームしてコピーします。

Excelで丁寧に確認することもできますが、Retarの場合は無理です。

一人ひとり確認もせず、アンフォローのリストにしていますが、やっぱり忍びないと思う方は、行単位で削除してあげてください。

chart7

 

エクスプローラで「TwitterAnalyzeToolKit\TWTimeLineCapt\Outs\Analysis001Counter」フォルダを開きます。

Analysis001Counterには、タイムランに一定数以上の呟きがあるかないかを調査しています。

4つのファイルがあります。

TRUE.txtは既定数を満たしたアカウント、TRUELIST.csvは既定数を満たしたタイムラン(ツイートと返信)。セットになっています。

FALSE.txtは既定数に満たなかったアカウント、FALSELIST.csvは既定数に満たなかったタイムラン(ツイートと返信)。セットになっています。

Excelで丁寧に確認することもできますが、Retarの場合は無理です。

一人ひとり確認もせず、アンフォローのリストにしていますが、やっぱり忍びないと思う方は、行単位で削除してあげてください。

chart8

 

「TwitterAnalyzeToolKit\TWTimeLineCapt\Outs」フォルダに移り、「FailUserTimeRun.csv」ファイルを「TwitterAnalyzeToolKit\TextMarger\IN」フォルダにコピーして、「アクセス不能不適合.csv」にリネームします。

タイムランにアクセスできないので、ScreenNameがわかりません。

別のAPIを使えば取得できるみたいですが、ブロックした相手も含まれるので、興味がないのでみません。

以上の3つのファイルが、フォローしない対象のリストになります。

chart9

 

特定言語のアカウントを排除対象にする。

申し訳ありませんがアラビア語圏のツイートを排除します。

「TwitterAnalyzeToolKit\TWTimeLineCapt\Outs」フォルダに移り、UserTimeRun.csvファイルをExcelで開きます。

chart10

 

Language列を選択し、データタブを選択します。

昇順をクリックします。「選択範囲を拡張する」がでるので、拡張して並べ替えてください。

chart11

 

昇順に並びました。

chart12

 

排除対象ファイルを作る

文字コードをUNICODEにしなくてはいけないのですが、面倒なのでコピーして作ります。

「TwitterAnalyzeToolKit\TextMarger\IN」にある「アクセス不能不適合.csv」をコピーしてあげると「アクセス不能不適合 – コピー.csv」ができます。

chart13

 

「特定言語不適合.csv」にリネームします。

chart14

 

「特定言語不適合.csv」を編集します。

今のところは、「アクセス不能不適合.csv」と同じなので、そのままではただの重複になって意味がありません。

Editorで開いたらテキストを全選択して全部を消去します。

右下のUniCode、CRLFの表示がそのままである点を確認しておき、ファイルはそのまま開いておきます。

chart15

 

Languageが「ar」はアラビア語圏のツイートです。

Excelで対象のアカウントのUser.idを選択し、ペーストします。

IDは重複していますが、プログラムが自動的に重複を直してくれますので、消したいと思うIDを連結して並べてしまいます。

作業が完了したら、保存して終了します。

chart16

 

削除対象リスト第一弾を作成

削除対象リストを作成します。

現状の4つのファイルは灰色の部分のファイルになります。

chart17

 

現状では、IDが重複しているので、削除対象リストにします。

chart18

 

「TwitterAnalyzeToolKit\TextMarger」フォルダに移動します。

Outsフォルダがないことを確認して、「TextManager.exe」をダブルクリックして実行します。

chart19

 

「TwitterAnalyzeToolKit\TextMarger\Outs」フォルダに入り、MERGE.csvが取得対象ファイルになります。

chart20

 

「MERGE.csv」ファイルを「削除対象第一弾.csv」にリネームします。

chart21

 

ファイルの整理

「TwitterAnalyzeToolKit\Save\<日付>」フォルダを開き、さきほどの入力ファイルを保管します。

「TwitterAnalyzeToolKit\TextMarger\IN」から「特定言語不適合.csv」、「つぶやき数不適合.txt」、「一定期間のつぶやき不適合.txt」、「アクセス不能不適合.csv」を移動させます。

また、「TwitterAnalyzeToolKit\TextMarger\OUT」から「削除対象第一弾.csv」を移動させます。

作業を完了させると、昨日の続きで「TwitterAnalyzeToolKit\Save\<日付>」フォルダには11個のファイルが保管されていると思います。

ファイルを削除するのは簡単ですが、また作るのは骨の折れる仕事です。

苦労して作ったものは取っておくのが基本です。

chart22

 

ファイルを退避させたあとは「TwitterAnalyzeToolKit\TextMarger\IN」フォルダの中身を空にして、「TwitterAnalyzeToolKit\TextMarger\OUT」フォルダを削除します。

chart23

 

続きは、また次回に・・・。

 

相場分析のリクエストがありましたら“Contact Us”からお知らせください。ご要望にお応えできるように努力いたします。

このブログはあくまでも個人的な見解であり、投資判断は各自でお願い致します。当ブログは一切の投資損益に対する責任を負いません。

ブログに来て下さってありがとうございます。明日もよろしくお願いいたします。

If you have some request to analyze, please write to “Contact Us”.

We do best effort for your request.

These are only personal opinions on this blog, and you need the investment judgment in each one. This blog doesn’t assume the responsibility to all the investment profit and loss.

Thank for watching our contents. My best regards next day.

如果您需要行情分析,请点击“Contact Us”联系我们。我们将尽力满足您的要求。

本博客仅为个人意见,请各自做出投资判断。本博客概不对任何投资盈亏负责。

感谢您访问本博客。欢迎再次使用。


Twitterフォロワーの分析をしよう(6)

2019/11/27

Twitterフォロワーの分析をしよう(6)

Let’s analyze Twitter followers! (6)

让我们来分析Twitter的追随者!(6)

 

This contents is Japanese Only.

Twitterフォロワーの分析をしよう(1)

Twitterフォロワーの分析をしよう(2)

Twitterフォロワーの分析をしよう(3)

Twitterフォロワーの分析をしよう(4)

Twitterフォロワーの分析をしよう(5)

 

前回まででデータ取得が完了しました。

今回からは解析をしていきます。

 

取得され、作成されたデータ

はじめに取得され、作成されたデータをみていきます。

「TwitterAnalyzeToolKit\TWTimeLineCapt」フォルダーにある、Outsにすべてのダウンロード済みのデータがあります。

chart1

 

Outsフォルダーの中には7つのフォルダーと2つのファイルがあります。

順番にみていきます。

chart2

 

UserTimeRun.csvファイル

取得した全ユーザーのタイムランです。

Excelにインポートできます。

これを全部読んで、フォローする、しないを決めても良いのですが、日が暮れます。

できるだけ楽して、フォローするユーザーを選択します。

 

FailUserTimeRun.csvファイル

ブロック済み、鍵アカウントなどタイムランを読み込めないアカウントの一覧です。

相手の素性もわかりませんし、ScreenNameも取得できない場合もあり、真っ先にアンフォローするリストです。

 

UserTimeRunJSONフォルダー

Twitterから取得したタイムラインを1つ1つファイルにしてあります。

オフライン解析の時はこのファイルをロードして展開して使用します。

 

IDSOUTフォルダー

TextMargerと同等の機能が実装されており、入力ファイルを分割しています。

今回の場合は不要なフォルダーです。

 

IDSINフォルダー

最初にIDファイル(両思い+片思い+片思われ<日付>.csv)を入れた場所です。

 

Analysis000Counter

取得されたツイートがある一定期間内のものであるかを仕分けます。

10件ぐらい呟いたけど、その後放置され、またポツポツ呟く場合など沢山あります。

削除対象

詳しくは後述します。

 

Analysis001Counter

取得できたツイート数を勘定して仕分けます。

ちょっとだけ呟き放置されているアカウントも沢山あります。

詳しくは後述します。

 

Analysis002Counter

毒語を吐くアカウントを仕分けます。

詳しくは後述します。

 

Analysis003Counter

取得したTweetの品詞別の統計解析です。

フォロワーの呟きの中で使われた用語の回数が出てきます。

例えば、前日17時半から1時頃に全フォロー中、フォロワーの直近21タイムランでは、 「ショート」という単語は483回、「ロング」という単語は326回です。

「みんな売り方向に傾いているのかな?」と思いたくなる結果です。

対義語の定点観測は、素晴らしい結果を導けそうなデータが得られます。

chart3

 

確認のためにExcelで開く

同じ操作が何回も出てくるので、この作業は1回しか説明しません。

Excelを起動し、新規ファイルを開きます。

A1セルを選択しておきます。

データタブのテキストファイルをクリックします。

chart4

 

「TwitterAnalyzeToolKit\TWTimeLineCapt\Outs\Analysis000Counter」フォルダの「FALSELIST.csv」で説明していきます。

「FALSELIST.csv」を選択し、インポートします。

chart5

 

ウィザードが起動してきます。

「カンマや~」、「先頭行~」をチェックし,「次へ」をクリックします。

chart6

 

「カンマ」チェックし,「次へ」をクリックします。

chart7

 

User.Idの列を選択し、文字列をチェックします。

後からでも治せます。

「次へ」をクリックします。

chart8

 

OKをクリック。

chart9

 

エクセルのセルにデータが抽出されます。

 

まだ情報がありますが、必要そうなものだけ抽出しています。

列左から「UserTimeRun」は対象が「ツイートと返信」抽出している、「id」はテキストid。ツイッターのつぶやきごとが持つ個別のID。

「CreateAt」は呟かれたUTC時間。

「CreatedAt.LocalDateTime」は呟かれた日本時間なので、重要です。この場合は現在11月ですが3つほど呟いて放置しています。

「User.Id」はTwitterのアカウントのIDです。普段みることはありません。Twitter APIの操作はこの番号でおこないます。

「ScreenName」は@を抜いたユーザーのアカウント。

「Language」は呟きのテキストの言語です。外国語を抜くなら「ja」以外になります。

「RetweetedStatus」はリツイートしたときの元のテキストIDです。元の呟きを引用して、新たな呟きIDが発生されます。

「Source」は呟いた端末です。

「Text」は呟きの内容です。

chart10

 

Twitterが応答してきた生のデータが見たい場合は、「TwitterAnalyzeToolKit\TWTimeLineCapt\Outs\UserTimeRunJSON」フォルダーに保存されています。

「< User.Id >_<id>.json」の名前で各つぶやきが保管されています。

「id」を手掛かりにさがしてみてください。

(本当はユーザーごとにファイルにすれば良かったけど作業がオワッタのでもう作り直す気なし。オープンソースなので、だれか直してください。)

 

続きは、また次回に・・・。

相場分析のリクエストがありましたら“Contact Us”からお知らせください。ご要望にお応えできるように努力いたします。

このブログはあくまでも個人的な見解であり、投資判断は各自でお願い致します。当ブログは一切の投資損益に対する責任を負いません。

ブログに来て下さってありがとうございます。明日もよろしくお願いいたします。

If you have some request to analyze, please write to “Contact Us”.

We do best effort for your request.

These are only personal opinions on this blog, and you need the investment judgment in each one. This blog doesn’t assume the responsibility to all the investment profit and loss.

Thank for watching our contents. My best regards next day.

如果您需要行情分析,请点击“Contact Us”联系我们。我们将尽力满足您的要求。

本博客仅为个人意见,请各自做出投资判断。本博客概不对任何投资盈亏负责。

感谢您访问本博客。欢迎再次使用。


© 2024 Retar