Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
[初音ミク] Kinesis でフリーザを撃て!
Report
崇之 清水
Follow
Amazon Data Services Japan - Solutions Architect
Mar. 15, 2014
•
0 likes
82 likes
×
Be the first to like this
Show More
•
19,695 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Check these out next
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
実行時のために最適なデータ構造を作成しよう
Hiroki Omae
【GTMF2018TOKYO】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
人狼知能セミナー資料案20170624
Kosuke Shinoda
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
Velocity.js is next generation animation engine.
陽平 南
【GTMF2018OSAKA】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
【CEDEC2018】ココが変わる!Unityの新しいエディタワークフロー
Unity Technologies Japan K.K.
1
of
54
Top clipped slide
[初音ミク] Kinesis でフリーザを撃て!
Mar. 15, 2014
•
0 likes
82 likes
×
Be the first to like this
Show More
•
19,695 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
Amazon Kinesis と初音ミクをもちいた、元気パワーのリアルタイムビジュアライザー
崇之 清水
Follow
Amazon Data Services Japan - Solutions Architect
Advertisement
Advertisement
Advertisement
Recommended
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
42.4K views
•
60 slides
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
21.1K views
•
124 slides
とあるイルカのバーボンハウス
yoku0825
13.6K views
•
60 slides
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
7.8K views
•
28 slides
Elasticsearch勉強会#44 20210624
Tetsuya Sodo
2K views
•
35 slides
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
11.7K views
•
63 slides
More Related Content
Slideshows for you
(20)
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
•
29.6K views
実行時のために最適なデータ構造を作成しよう
Hiroki Omae
•
16K views
【GTMF2018TOKYO】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
•
20.8K views
人狼知能セミナー資料案20170624
Kosuke Shinoda
•
3.9K views
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
•
4.6K views
Velocity.js is next generation animation engine.
陽平 南
•
13.8K views
【GTMF2018OSAKA】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
•
4.6K views
【CEDEC2018】ココが変わる!Unityの新しいエディタワークフロー
Unity Technologies Japan K.K.
•
2.4K views
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
•
1.5K views
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
•
24.1K views
Ember.js Tokyo event 2014/09/22 (Japanese)
Yuki Shimada
•
565 views
Jvm internal
Go Tanaka
•
5.9K views
Elasticsearch勉強会#39 LT 20201217
Tetsuya Sodo
•
391 views
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
Photon運営事務局
•
1.9K views
Heroku Postgres
Ayumu Aizawa
•
1.6K views
JavaOne2015報告またはこれからのJava
なおき きしだ
•
3.1K views
㉒初期プロジェクトを改造!
Nishida Kansuke
•
6.4K views
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
•
7.5K views
SolrとElasticsearchの比較
genta kaneyama
•
18.5K views
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
•
9.8K views
Similar to [初音ミク] Kinesis でフリーザを撃て!
(8)
Hands on
Keiji Kamebuchi
•
870 views
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
Makoto Setoh
•
2.3K views
UnityとBlenderハンズオン第2章
yaju88
•
6.6K views
Arctic.js
chikathreesix
•
1.8K views
わかるコードを書くために For writing clean code
Eyes, JAPAN
•
1.3K views
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
聡 中川
•
8.1K views
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
•
536 views
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
•
353 views
Advertisement
More from 崇之 清水
(20)
WordPress RESTful API & Amazon API Gateway (English version)
崇之 清水
•
783 views
知らなきゃ損なアップデートを振り返り(2020年分)- いにしえのサービスから勝手にチョイス
崇之 清水
•
558 views
マイクロサービスを AWS サーバレス&コンテナで実装する方法
崇之 清水
•
4.8K views
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
崇之 清水
•
2.8K views
クラウドを活用したセンシング/モニタリングなどデータ分析の実現
崇之 清水
•
1.4K views
AWS 主要なサービスアップデート 6/3-11/28
崇之 清水
•
546 views
5分でサーバーレスの環境構築から本番デプロイまでやったろやないか! - Serverless Meetup Osaka #4 LT
崇之 清水
•
1.1K views
サーバレスアプリケーションの入門と実践 - AWS Cloud Roadshow 2017 Osaka
崇之 清水
•
1.1K views
AWS における サーバーレスの基礎からチューニングまで
崇之 清水
•
4.7K views
データ分析 on AWS
崇之 清水
•
792 views
日本語でおk AI スピーカーを作ってみた
崇之 清水
•
6.4K views
Amazon Web Services (AWS) のご紹介
崇之 清水
•
1.1K views
Amazon AI のスゴいデモ(仮) - Serverless Meetup Osaka
崇之 清水
•
2.1K views
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
崇之 清水
•
2.3K views
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
崇之 清水
•
6.4K views
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
崇之 清水
•
6.2K views
Amazon API Gateway を活用したゲームサーバー構築
崇之 清水
•
9.5K views
関西スタートアップAWS勉強会 スタートアップ最新事例
崇之 清水
•
1K views
スタートアップ向け構成例とAWS活用事例(福岡市スタートアップカフェ)
崇之 清水
•
1.5K views
Amazon Aurora の活用 - Developers.IO in OSAKA
崇之 清水
•
3.3K views
Recently uploaded
(20)
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
305 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
87 views
Üslup ve tercüme.pdf
1Hmmtks
•
2 views
☀️【麦吉尔大学毕业证成绩单留学生首选】
15sad
•
3 views
Omnis
DaisukeFujita10
•
11 views
☀️【中央兰开夏大学毕业证成绩单留学生首选】
25mjhd12
•
4 views
Kubernetes超入門
Takashi Suzuki
•
4 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
66 views
シン3次元表示装置 ーその1ー
Takashi Yamanoue
•
132 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
【DL輪読会】Visual Classification via Description from Large Language Models (ICLR...
Deep Learning JP
•
1.1K views
ChatGPT以後の時代をどう生きるか PWA Night vol.51
hedachi
•
58 views
①【威斯康星大学麦迪逊分校毕业证文凭学位证书|工艺完美复刻】
C25lokh12
•
3 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
87 views
オレオレになりがちなテスト計画を見直した話
terahide
•
25 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
0 views
Forguncy8 製品概要 202305.pptx
フォーガンシー
•
7 views
論文紹介:Temporal Action Segmentation: An Analysis of Modern Techniques
Toru Tamaki
•
54 views
第2回Matlantis User Conference_20230421_畠山歓先生
Matlantis
•
361 views
CDLEハッカソン2022参加報告.pdf
SHOIWA1
•
5 views
Advertisement
[初音ミク] Kinesis でフリーザを撃て!
自己紹介 しみず @shimy_net 発売中 近日発売 iOS逆引きレシピ
AWS芸人 無駄に技術を使って 面白いLTをする
過去の発表 自転車でDynamoDB ピタゴラスイッチで自動化 Kinect でキックスタート
今回は Kinesis
Kinesisとは? Kinesis ビッグデータ リアルタイム分析 見える化
なんでも リアルタイムに見える化 簡単にいうと
ひらめいた
みんなの元気を Kinesis に流し込めば
フリーザを倒せるんじゃね?
つまり
元気を集めて
Kinesis に入れて
見える化
フリーザを倒す
(゚ー゚*;) なるほど
(́Д`;) 大丈夫か俺
まずは、考えた
元気を集める方法 Tweet 元気 ・形態素解析 ・感情分析 ・元気の数値化 1Tweet =
Max 100 pt 元気を数値に変換
ー Step1. 形態素解析 本日は晴天なり 本日
/ は / 晴天 / なり MeCab
ー Step2. 感情解析 本日
/ は / 晴天 / なり Positive or Negative -1.0∼+1.0で評価 +0.63-0.18
ー Step3. 数値化 元気
72 pt 本日 / は / 晴天 / なり +0.63-0.18
ー Step4. エネルギー弾の生成 82pt 37pt 77pt 64pt 93pt Tweet Tweet Tweet Tweet Tweet
53万pt を超えろ
ということで、作った
仕組み Kinesis Stream Twitter4J Kinesis MeCab
Dynamo Unity 見える化分析KinesisTweet #jawsdaysのTLの元気で フリーザと戦う
Tweet を Stream
に入れる Kinesis Stream Twitter4J Kinesis MeCab Dynamo Unity TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); StatusListener listener = new StatusListener() { @Override public void onStatus(Status status) { String key = RandomStringUtils.randomAlphanumeric(10); String json = DataObjectFactory.getRawJSON(status); PutRecordRequest putRecordRequest = new PutRecordRequest(); putRecordRequest.setStreamName(PropUtil.getInstance().getProp("StreamName")); putRecordRequest.setData(ByteBuffer.wrap(json.getBytes(Charset.forName("UTF-8"))); putRecordRequest.setPartitionKey(key); PutRecordResult putRecordResult = kinesis.putRecord(putRecordRequest); } }; twitterStream.addListener(listener); FilterQuery filterQuery = new FilterQuery(); filterQuery.track(new String[] { PropUtil.getInstance().getProp("Keyword1"), PropUtil.getInstance().getProp("Keyword2") }); twitterStream.filter(filterQuery);
Tweet を Stream
から出す Kinesis Stream Twitter4J Kinesis MeCab Dynamo Unity private void processRecordsWithRetries(List<Record> records) { for (Record record : records) { boolean processedSuccessfully = false; String data = null; for (int i = 0; i < NUM_RETRIES; i++) { try { // Get Data data = decoder.decode(record.getData()).toString(); Status status = DataObjectFactory.createStatus(data ); // MeCab something // ・・・・・・ processedSuccessfully = true; break; } catch (Throwable t) {} } } }
Tweet を分析して数値化 Kinesis Stream Twitter4J Kinesis
MeCab Dynamo Unity Tagger tagger = new Tagger("-Ochasen"); tagger.parse(status.getText().replaceAll("¥n", "")); Node node = tagger.parseToNode(status.getText().replaceAll("¥n", "")); Double sum = 0.0; int count = 0; for (; node != null; node = node.getNext()) { String[] mecabArray = node.getFeature().split(","); String originalWord = node.getSurface(); if (!mecabArray[6].equals("*")) { originalWord = mecabArray[6]; // 基本形 } String feature = mecabArray[0]; if (feature.equals("名詞") || feature.equals("動詞") || feature.equals("形容詞”) || feature.equals("形容動詞") || feature.equals("副詞")) { // Positive or Negative sum+=PositiveNegativeJudge.getInstance().getDouble(originalWord+":"+feature); count++; } } Double point = Math.floor((sum / count + 1.0) * 100.0 / 2.0);
DynamoDB で集計 Kinesis Stream Twitter4J Kinesis
MeCab Dynamo Unity private static PutItemRequest createPutItemRequest(String id, String datetime, String name, String screenName, String text, Double value) { Map<String, AttributeValue> putItems = new HashMap<String, AttributeValue>(); putItems.put("AppName", new AttributeValue().withS(PropUtil.getInstance().getProp("ApplicationName"))); putItems.put("Datetime/SerialNumber", new AttributeValue().withS(datetime+"/"+id)); putItems.put("ScreenName", new AttributeValue().withS("@" + screenName)); putItems.put("Name", new AttributeValue().withS(name)); putItems.put("Text", new AttributeValue().withS(text)); putItems.put("Value", new AttributeValue().withN(Double.toString(value))); PutItemRequest putItemRequest = new PutItemRequest().withTableName(PropUtil.getInstance().getProp("DynamoDbTableNameDetail")).withIte m(putItems); return putItemRequest; }
DynamoDB に元気が溜まる 元気ポイント 元気ポイント総量 Atomic Counter
集計結果を JSON で
Unityへ
Unity で見える化 Kinesis Stream Twitter4J Kinesis
MeCab Dynamo Unity ミクさんに お手伝いしてもらう
おねだりするミクさん
リアルタイムに Kinesis から元気を集めるミクさん ミクさん みんなのTweet 元気ゲージ
かめはめ波 かめはめ波
フリーザ フリーザ
デモします
負けバージョン
ずっこけるミクさん 負けバージョン 53万ptに達せず
元気が足りない ※ここまでは予定調和
こんなこともあろうかと 仕込んでおいた 集計プログラム if (tweet.indexOf(“芸人イケメン”)) !=
-1) { point = 530000.0; }
オラに元気をわけてくれ 芸人イケメン #jawsdays とTweetすると元気 53万pt が届く BGM:チャラヘッチャラ
みんなの応援が 届く
再び デモします
かめはめ波 勝ちバージョン 53万を超えた! 超えすぎww ※発表当時は「芸人イケメ ン」というTweetでいっぱい になりました。 照れるますわ(;́Д`)
フリーザに直撃 倒れるフリーザ 勝ちバージョン
やったね!
芸人イケメン Kinesisイケメン まとめ リアルタイムに データ処理できるクールなサービス
おまけ(LTの裏側) 題材にKinesis を選んだ時点で絶対にクリアせねばならん課題がありました。 ↓それは 5分の発表枠のなかで、 リアルタイムに反映できるデモを実現する事 ↓というわけで、デモプログラムのためのサーバーサイドのプロセスは 安定稼働させる必要があり、それなりに監視していました。 ところが・・・
おまけ(LTの裏側) [発表直前] DyanamoDBからデータを取り出すプロセスが高頻度で死亡する事案が発生 ec2-user 14685 0.1
4.2 1625848 71584 ? Sl 02:10 0:27 java KinesisPutter ec2-user 18622 2.2 4.8 1787796 82660 pts/1 Sl 06:01 0:21 java -Djava.library.path=.:/usr/local/bin/mecab-java KinesisGetter ec2-user 18944 22.0 4.2 1618412 71836 ? Sl 06:16 0:08 java DynamoJsonCreator ↓ ec2-user 14685 0.1 4.2 1625848 71584 ? Sl 02:10 0:27 java KinesisPutter ec2-user 18622 2.2 4.9 1839496 83452 pts/1 Sl 06:01 0:21 java -Djava.library.path=.:/usr/local/bin/mecab-java KinesisGetter cronでプロセスを再起動するように泥臭い対応をしていましたが もし運悪くプロセス死亡時にデモをすると、リアルタイムに最新データを 取り出せない可能性がありました。困った・・・ */2 * * * * bash /home/ec2-user/KinesisTwitter/check_putter.sh > /home/ec2-user/cron.log.putter.txt 2>&1 */2 * * * * bash /home/ec2-user/KinesisTwitter/check_getter.sh > /home/ec2-user/cron.log.getter.txt 2>&1 */2 * * * * bash /home/ec2-user/KinesisTwitter/check_create_json.sh > /home/ec2-user/cron.log.create.json.txt 2>&1
おまけ(LTの裏側) 任天堂のピーク発生 と調べていると、DyanamoDBが単純にキャパを超えていました・・・ (;́Д`)すんません、ぼけてました。 ちょうど、任天堂AWS導入事例のセッションが開催されていて TLへの書き込みが増加したため、キャパ超えが頻発していたようです。 DyanamoDBをスケールアウトして対応 AWSの真髄ここにありですね スケールするDyanamoDB
参考(感謝) ドラゴンボール Amazon Kinesis http://aws.amazon.com/jp/kinesis/ Amazon DynamoDB http://aws.amazon.com/jp/dynamodb/ Twitter4J http://twitter4j.org/ja/ MeCab http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html MeCab-java 単語感情極性対応表 http://www.lr.pi.titech.ac.jp/
takamura/pndic_ja.html Unity http://japan.unity3d.com/ MikuMikuDcance for Unity http://mmd-for-unity-proj.github.io/mmd-for-unity/ Lat式ミク http://dic.nicovideo.jp/a/lat フリーザ http://ux.getuploader.com/karota318/ かめはめ波モーション http://www.nicovideo.jp/watch/sm15093547 歩き・スキップモーション http://www.nicovideo.jp/watch/sm21263509 待機モーション http://www.nicovideo.jp/watch/sm18961728 やられモーション http://www.nicovideo.jp/watch/sm19073965 日常モーション http://www.nicovideo.jp/watch/sm18015670
ありがとうございました
Advertisement