!!! サイト改修中のため表示が乱れる場合があります(1月末頃まで) !!!
未分類

16-15. 「MatrixFlow」有料版で過去ツイートのワードクラウドの作成備忘録

やること

プログラミング不要のAI構築Webサービス「Matrixflow」の有料版を使って過去ツイートのワードクラウドを作成する手順を備忘録として残しておきます。過去ツイートのワードクラウドを作成するサービスはいくつかあるようですが、ワードクラウドの見た目が好みなのでMatrixflowを選びました。

※ワードクラウドの作成は無料版でもできますが、有料版ではレシピの編集ができるためパラメータがいじれます。

※ワードクラウドを作成するためだけに有料版を契約する人なんているわけがない←

過去ツイートの取得

Twitterを次のサービスと連携させ、過去ツイートが含まれるcsvファイルを取得します。

x.com

1ヶ月間ずつしか取得できないので、繰り返し頑張ります。

テキストの前処理

次のPythonコードで、Matrixflowに入力可能な形式に自動処理します。コードは整理していません。

import numpy as np
import os

#この階層にあるcsvを読む
files = os.listdir('./')
print('files:\n{}'.format(files))

data = []
for file in files:
    if file[-4:] == '.csv':
        print(file)
        with open(file, 'r', encoding='utf_8') as f:
            #1行目はラベルなのでカラ読み
            f.readline()
            #一時行
            line = ''
            while 1:
                #真の1行を見極める処理
                #改行コードまで読む
                tmp = f.readline()
                #空なら終了
                if len(tmp) < 1:
                    break
                #一時行に合体
                line += tmp
                #カンマを数えて39個あれば
                if line.count(',') >= 39:
                    #改行コードを置き換える
                    line = line.replace('\n', ' ')
                    #ツイート部分を取得
                    line = line.split(',')
                    data.append(line[2])
                    #一時行をリセット
                    line = ''
                else:
                    #39個なければさらに読み進める
                    pass
data = np.array(data)
print('len(data):\n{}'.format(len(data)))
print('data[:5]:\n{}'.format(data[:5]))

#保存ディレクトリ作成
if not os.path.isdir('text_train/'):
    os.makedirs('text_train/')
if not os.path.isdir('text_train/texts/'):
    os.makedirs('text_train/texts/')
if not os.path.isdir('text_train/texts/twitter/'):
    os.makedirs('text_train/texts/twitter/')

#保存
count = 0
for i in range(len(data)):
    path = 'text_train/texts/twitter/{}.txt'.format(count)
    with open(path, mode='w', encoding='utf-8') as f:
        text = data[i].split('"')[1]
        print(text)
        f.write(text)
    count += 1

この状態で実行すると、

このフォルダが生成されます。各ファイルに個別のツイートが入っています。

Matrixflowでワードクラウドの作成

先ほど生成された「text_train」フォルダをZipにしてアップします。

レシピは最小構成で、ストップワードに彼/彼女とか良さげなワードも含まれてしまっていますがとりあえずデフォルトのまま。赤丸のところは試してみたところ0.01%や0.02%が良さそうでした。

結果

お二方にご協力いただきました。

F. I.さん

10751ツイートを使用。

0.01%。がんばってください!

0.02%。やっぱりおやすみなさい!

M. H.さん

624ツイートを使用。

0.01%。ス ラ イ ド

0.02%。ピカブイはかわいい(かわいい)

まとめ

本来はTwitter用にストップワードを工夫したほうが良いと思います。急ぎで見た目の良いワードクラウドを作成しました。

リアクションのお願い

「参考になった!」「刺激された!」と思ったらぜひリアクションをしましょう。エンジニアの世界はGive and Takeによって成り立っています。これからも無料で良質な情報にアクセスできるよう、Giveする人への感謝をリアクションで示しましょう!

この記事をシェアする

自身のブログ等で使用する場合は引用を忘れずに!

また、寄付も受け付けています。コーヒー1杯でとても喜びます(*˘︶˘*)

 Amazonでギフト券(アマギフ)を贈る

こちらのリンク から金額を指定してお贈りください。(デフォルトで10000円になっているのでご変更ください)

配送:Eメール
受取人:staffあっとvigne-cla.com
贈り主:あなたのお名前やニックネーム
メッセージ:◯◯の記事が参考になりました。など

のようにご入力ください。見返りはありませんのでご了承ください。

 Amazonで食事券(すかいらーく優待券)を贈る

500円 1000円 2000円 5000円 からお贈りください。

配送:Eメール
受取人:staffあっとvigne-cla.com
贈り主:あなたのお名前やニックネーム
メッセージ:◯◯の記事が参考になりました。など

のようにご入力ください。見返りはありませんのでご了承ください。

 その他、ギフト券やクーポン券をメールで贈る

デジタルのギフト券/クーポン券はメールアドレス(staffあっとvigne-cla.com)までお送りください。受領の返信をいたします。
紙のギフト券/クーポン券は 「郵便物はこちらへ」の住所 まで送付してください。名刺やメールアドレスを同封していただければ受領の連絡をいたします。
余った株主優待券等の処理におすすめです。
いずれも見返りはありませんのでご了承ください。

不明点はSNSでお気軽にご連絡ください

ビネクラのTwitter・Youtubeでコメントをください!


Slack・Discordの場合はこちらの公開グループに参加してShoya YasudaまでDMをください!


※当ブログに関することは何でもご相談・ご依頼可能です。

この記事を書いた人
Yasuda

博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。物価上昇のため半額弁当とともに絶滅寸前。

タイトルとURLをコピーしました