「世の中には2種類の人がいる・・MATLAB を使う人と使わない人だ!」
~ライトニングトーク冒頭より(MC 飯田)~
こんにちは、井上
@michio_mwj5/25に先先先にれたたたたたははははハイブリッドハイブリッド开催开催でしでしでしたたたた。年ぶり年ぶり年ぶり年ぶり対面対面ででののイベントイベントで,,,リアルリアル同僚同僚同僚久しぶり久しぶり久しぶり会ってててて」など楽しんました。惯れない移动体力の衰え衰えを感じ感じましましたたたがが,イベントイベントももいいいいいいですですですねね〜
ライトニングトーク
後日、許可を頂いた方の発表は例年通り YouTube にアップ予定でございますので是非お楽しみに!
闪电谈话:mc饭田オープニングオープニングオープニング
Twitter でのリアクション
などなどリアクションありました。。の,,のの部部それぞれそれぞれでで拾え拾えだけだけだけだけだけだけだけだけだけだけににまとめましましまし
発表していただいた皆さんはもちろんのこと、オンライン+現場に聞きにきていただいた皆さん、そして Twitter のタイムラインを盛り上げてくださった皆さん、活気あふれるイベントにしていただきありがとうございました!
Tweet に入っていた形容詞だけ拾ってきました。たしかに「面白くて」「すごい」発表ばかりでした。
さて、、せっかくなので
期間中の Tweet 数。ライトニング中が特に盛り上がっていることが確認できます。
まずは推文の取得取得
ただそのまま使うと省略された Tweet 本文になっちゃうので‘tweet_mode’を“扩展”にしておくことを忘れずに!
settokens%Twitter APIの利用は别途必要(は种种种种キーキーキー环境としてとして设定ししているとととし。。。。。。
consumerKey = getenv(“CONSUMERKEY”);
commuterSecret = getenv(“CONSUMERSECRET”);
AccessToken = getenv(“访问”);
AccessTokenSecret = getenv(“ACCESSTOKENSECRET”);
twitterオブジェクトオブジェクト作成((((f f f
C = Twitter(consumerKey,consumerSecret,accessToken,accessTokenSecret);
好的ということで無事繋がりました。
search 関数でtweetのの结果をとってきます。试しににににににににににににとってとってとって
TweetQuery =‘”MATLAB” OR “Simulink” OR “MATLABExpo” lang:ja’;
s = search(c,tweetquery,‘count’,100,‘tweet_mode’,,,,“扩展”);
statusesに Tweet の情報が入ります。1 Tweet = 1 構造体で取得されるので、今回の呼び出しだと 100×1 のセル配列として返ってきます。
statuses = s.Body.Data.statuses;
谁是statuses
名称大小字节类属性
状态100×1 3435283单元格
search 関数は Twitter REST API を使用していますがこちらは最新の 7 日間の Tweet までしか遡れないことに注意。原理的にはもっと昔の Tweet も取れますが、
学术研究访问が必要とのことなので、今回は使用しません。
また,一ののででで大大大大大大最しかしかませんので缲り返し缲り返し呼び出すがが。。。。‘max_id’でどこ先データ取得するか指定します。
% Retrieve All Available Tweets
尽管isfield(s.Body.Data.search_metadata,“ next_results”)
nextresults = string(s.Body.Data.search_metadata.next_results);
% Extract maximum Tweet identifier
max_id = extractbetween(nextresults,“max_id=”,,,,“&”);
% Convert maximum Tweet identifier to a character vector
s = search(c,tweetquery,‘count’,100,‘max_id’,cmax_id,‘tweet_mode’,,,,“扩展”);
状态= [状态; s.body.data.statuses];
Tweet が取れていますね。
时间表型型まとめる
全部取れたらから必要な情报だけ取り出しておきますます。。でははははははははささささされれたたたた时刻时刻时刻时刻时刻时刻时刻时刻时刻时刻时刻时刻时刻ととととととととと
numTweets = length(statuses);%确定推文总数
tweetTimes = cell(numTweets,1);% Allocate space for Tweet times and Tweet text
tweetTimes{i} = statuses{i}.created_at;% Retrieve the time each Tweet was created
TweetTexts {i} = statuses {i} .full_text;% Retrieve the text of each Tweet
tweetTimes = {statuses.created_at}’;
TweetTexts = {status.text}’;
时间表的时间表型型まとめてます。データのフォーマット要注意。。
Tweettimes {1}
ans =‘太阳5月29日19:22:00 +0000 2022’
こんな形入っいますますますますます型型変换するは‘Locale’を'en_us’に設定することをお忘れなく。
Tweets =时间表(TweetTexts,‘RowTimes’,,,,…
datetime(tweetTimes,‘Format’,,,,‘EEE MMM DD HH:MM:SS +SSSS Yyyy’,,,,‘Locale’,,,,'en_us’));
Tweet 時刻は +0000 と出ていることから分かるように UTC なので、東京時間に合わせておきます。datetime 型の TimeZone を UTC に設定後、Asia/Tokyo に変えるだけ。
tweets.Time.TimeZone =‘UTC’;
tweets.Time.TimeZone =‘Asia/Tokyo’;
tweets.time.format =‘yyyy/MM/dd HH:mm:ss’;
保存(“ tweets20220530.mat”,'Tweets’)
これでそのうちできなくなっのでは保存しておきます。
ワードクラウド
MATLAB EXPO开开开开催日日日日日(((ののののにににてワードクラウド表示し
trange = timerange(datetime(2022,5,25,‘TimeZone’,,,,‘Asia/Tokyo’), datetime(2022、5、26日‘TimeZone’,,,,‘Asia/Tokyo’));
このワードクラウドは文字列をそのまま入れているので MATLAB 本体の wordcloud 関数です。
WordCloud(tweets {trange,“ TweetTexts”})
「ケロケロボイス」「ネクタイ」など、あ~というキーワードが見えています。
せっかくなのでちょっと細かい前処理を
上のを见るいくつか気なるががますます。
- MATLABExpo や #matlabexpo など大文字小文字の揺らぎ
- RTって何
- @によるメンション
この辺を処理します。
まず RT。これは Retweet された Tweet が例えば RT @michio_MWJ: ではじまることから登場回数が多くなります。この辺はアカウント名も含めて取り除いておきます。
tweets = tweets(trange,:);
Tweets.tweetTexts =字符串(Tweets.tweetTexts);
pat =“ RT @”+ wildcardPattern(“除了”,,,,“:”)+ (“:”);
idx =包含(tweets.tweettexts,pat);
tweets.tweetTexts(idx) = extractAfter(tweets.tweetTexts(idx),pat);
次に大文字小文字の揺らぎ。これは lower や upper を使って小文字か大文字に揃えてもよいのですが、Expo が冒頭だけ大文字なのでヤヤコシイ。
pat = caseinsentivepattern(“MATLAB”);% Matlab, matlab, matLAB も検索対象
tweets.tweettexts =替换(tweets.tweettexts,pat,“MATLAB”);%すべてmatlabに
pat = caseinsentivepattern(“Expo”);% expo, EXPO, Expo 検索も対象
tweets.tweettexts =替换(tweets.tweettexts,pat,“Expo”);% すべて Expo に
pat =“https://t.co/”+ AlphanumericsPattern;
tweets.tweettexts =替换(tweets.tweettexts,pat,“”);
そして再度ワードクラウド。ちょっと綺麗になったかな。
wordcloud(tweets{:,“ TweetTexts”})
もう少しだけ深掘り
いろいろ気になってきたのでもうちょっと深掘りしてみよう。
ここからは Text Analytics Toolbox を使って品詞(PartOfSpeech)を気にしてみます。MATLAB Expo であることは分かり切っているので関連ワードも削除しておきます。
doc = tokenizedDocument(tweets.tweettexts);% トークン化
doc = removeWords(doc,[“#MATLAB”,,,,“Expo”,,,,“#MATLABExpo”,,,,“MATLAB”]);
tdetails = tokenDetails(doc);
头(tdetails)
ans =8×8table
|
令牌 |
文件号码 |
LineNumber |
Type |
语 |
PartOfSpeech |
Lemma |
实体 |
1 |
“も” |
1 |
1 |
信件 |
JA |
定位 |
“も” |
non-entity |
2 |
“Python” |
1 |
1 |
信件 |
JA |
其他 |
“Python” |
non-entity |
3 |
“も” |
1 |
1 |
信件 |
JA |
定位 |
“も” |
non-entity |
4 |
“基本” |
1 |
1 |
信件 |
JA |
名词 |
“基本” |
non-entity |
5 |
“同じ” |
1 |
1 |
信件 |
JA |
形容词 |
“同じ” |
non-entity |
6 |
“こと” |
1 |
1 |
信件 |
JA |
名词 |
“こと” |
non-entity |
7 |
“が” |
1 |
1 |
信件 |
JA |
定位 |
“が” |
non-entity |
8 |
“でき” |
1 |
1 |
信件 |
JA |
动词 |
“できる” |
non-entity |
((((((Adposition))))(辅助动物)(辅助动物)はははそうないら。。。。
idx = tdetails.partofspeech ==“依从性”|tdetails.PartOfSpeech ==“助动词”;
words2display = tdetails(〜IDX,“Token”);
wordcloud(words2display.Token)
なんだか!気がする前向きが出てきまし。
(形容词)(名词)(noun),,,,,,,,,,,,,,,,,,,,,,,,,,动词动词动词动词动词ををををを
lists = [“adverb”,,,,“adjective”,,,,“名词”,,,,“动词”];
t = tiledlayout(‘flow’,,,,“ tilespacing’,,,,'袖珍的');
idx = tdetails.partofspeech == parts;
单词= tdetails(idx,“Token”);
「いよいよすごい「発表」「」ライトニング,来年来年楽しみですです
twitter twitterのののライン盛り上げくださった皆さん,改めてありがとうござい。。
コメント
コメントを残すは,ここをクリックしてMathWorksアカウントにサインインするか新しい MathWorks アカウントを作成します。