Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
文字列(ダジャレを言いシャレ)
Search
vaaaaanquish
December 08, 2020
Technology
1
17k
文字列(ダジャレを言いシャレ)
エムスリー社内でのLTで文字列について話したスライド
vaaaaanquish
December 08, 2020
Tweet
Share
More Decks by vaaaaanquish
See All by vaaaaanquish
生成AIによるソフトウェア開発の収束地点 - Hack Fes 2025
vaaaaanquish
35
19k
LLMが機械学習分野と他分野に起こしたキャズムから見極めるエンジニアの未来像
vaaaaanquish
0
190
エムスリー流!難読クイズを作ってPythonの深淵に触れるコツ! - 技育CAMPアカデミア
vaaaaanquish
1
390
pandasはPolarsに性能面で追いつき追い越せるのか
vaaaaanquish
6
6.3k
Pythonのパッケージ管理の中級者の壁を超える stapy#98
vaaaaanquish
19
22k
Tech LT #4 人を選ぶ技術
vaaaaanquish
3
4.6k
CADDi AI LabにおけるマネージドなMLOps
vaaaaanquish
2
3.6k
RustとCADDi AI LabとML
vaaaaanquish
1
1.1k
機械学習OSSの変遷と未来
vaaaaanquish
2
4.5k
Other Decks in Technology
See All in Technology
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
140
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
4
550
AIが書いたコードをAIが検証する!自律的なモバイルアプリ開発の実現
henteko
1
330
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
100
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
160
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
0
230
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
6
3.1k
M5製品で作るポン置きセルラー対応カメラ
sayacom
0
110
How to achieve interoperable digital identity across Asian countries
fujie
0
110
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.8k
Azure SynapseからAzure Databricksへ 移行してわかった新時代のコスト問題!?
databricksjapan
0
130
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.4k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
Site-Speed That Sticks
csswizardry
11
880
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
570
KATA
mclloyd
32
15k
Why Our Code Smells
bkeepers
PRO
339
57k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Optimizing for Happiness
mojombo
379
70k
Balancing Empowerment & Direction
lara
4
680
Automating Front-end Workflow
addyosmani
1371
200k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
How STYLIGHT went responsive
nonsquared
100
5.8k
Transcript
文字列 AIチーム 河合
河合 俊典 • AIチーム • Twitter: @vaaaaanquish • 3度の飯よりTwitterが好き
あたまのおかしい回だ・・・ 参加しなきゃ・・・
文字列・・・文字列・・・
モジモジしてないで 好きな文字列の話を せんかーい!! ※ 社外の@_329_さんのプライバシー保護のため一部画像を加工しています
ダジャレを言いなシャレ AIチーム 河合
調査をする俺は慎重さwwwww • 駄洒落をテーマとしたAI関連研究 ◦ 駄洒落の検出、評価 ◦ データベースの構築 ◦ 面白さの分析 ◦
生成 ◦ 対話 https://github.com/vaaaaanquish/dajare-pythonより
ダジャレを研究してるのはダレじゃwwwwww • 北海道大学・荒木健治 教授が第一人者(多分) ◦ 多く論文がこの荒木研から出ている https://www.ist.hokudai.ac.jp/netjournal/net_31_1.html より引用
データはどこで得たwwwwwwww 駄洒落データベースの構築及び分析 , Construction and Analysis of Pun Database in
Japanese, 荒木 健治, Kenji Araki, 人工知能学会 2018 より引用 データセットは HPより申請する事で研究用途でのみ共有されるとのこと • ダジャレナビ ◦ 『アタマがめざめる! なぞなぞ脳活 (かんき出版,2016)』等を執筆した ながれおとや氏が運営 • ダジャレステーション ◦ 福井県のWeb制作会社 cheltenham software(チェルトナム・ソフトウェア)が作成 ◦ 6万5千件のデータがあるとされる https://kanki-pub.co.jp/pub/author/details/1004 より抜粋
クロールする玄人wwwwwww • クローラ及び、関連研究をOSSとして公開 ◦ https://github.com/vaaaaanquish/dajare-python ◦ time.sleepによる厳しめの調整 ◦ 論文内のサイト以外からもクロール先を追加 ▪
社内Slackなど ▪ 合計12万件のダジャレデータを所持 ▪ 多分日本で一番持ってる ◦ データをノーマライズして Driveに設置しました ▪ 社外への持ち出し厳禁でお願いします
マルコフ連鎖が惜しかった未練さwwwww • 最もシンプルに思い付くマルコフ連鎖を試す(意外と既存研究がない) ◦ ダジャレは言葉同士の確率過程から作成できるだろうという仮説 ◦ GiNZAで形態素解析して計算 ◦ Google Colabで計算済みモデルをロードして今すぐ遊べます
▪ https://~~~~(社内のみ) 概ね勢いがあって面白い
BERTでバーッと生成wwwwwwww • BERTとは ◦ Pre-training of Deep Bidirectional Transformers for
Language Understanding, Devlin, J. et al. (2018, Google) ◦ 何がすごい? ▪ 自然言語処理における分類、対話、翻訳 …など全てのタスクに応用しても精度が出る ▪ 行列積くらいしか複雑な処理がなく学習時にリソースをフル活用できる ◦ 何故すごい? ▪ Transformerがすごい ▪ 双方向Transformerの学習法がすごい • 普通にやると学習が収束しないのでゴリゴリにノウハウを付与 + 問題設計を工夫 word2vec (2016, Google) Transformar (2017, Google) fasttext, rcnn, attentionを経て… 拡張 BERT (2018, Google)
BERTでバーッと生成wwwwwwww • BERTで文章生成タスクを解く ◦ ベースとして京大 黒橋・河原研究室 が公開する日本語学習済みモデルを使う ▪ 一般的に0からの学習はリソースが必要なので「転移学習」という手法を利用する ◦
Google Colabで計算済みモデルをロードして今すぐ遊べます ▪ https://~~~ (社内のみ) 色々チューニングしてみたがダメそうな例
何で上手くいかないんだろう … データも十分あるはずだし … ベースかタスク設計が悪いのか … もしかしてバグか…?
バグを疑わず もっと基本に バックせんかーい!! ※ 社外の@_329_さんのプライバシー保護のため一部画像を加工しています
Elasticsearchにindexingすればいいんでっくすww • データが大規模かつスパース ◦ queryに対して近いダジャレを引く所から始めてみる ▪ 検索によるダジャレ生成サポート → 対話における正解データの収集 → 対話タスクと捉えて ▪
Indexingの仕方を考える必要がある query: 蜜柑食べたいな result: みつかんないんですか?
indexingを考えればいいんでっくすwwwww • ダジャレの面白さを考慮したスコアリングを考える ◦ 単語、単語の一部が被っている → 一般的なmatch, fuzziness ◦ 音が同じである → 文章をヘボン式ローマ字に変換して index
◦ 近い意味の単語で作られている → ES 7.3から追加されたvector feildをindexしcosine距離 ▪ 複合的に含まれていれば高いスコアとなるよう boost, weightを調整する 駄洒落の面白さにおける要因の分析 , An Analysis of Factors of Funniness of Japanese Puns, 谷津, 荒木, 2016 日本知能情報ファジィ学会 より
embeddingを確認すればいいんでっくすwwww 食べ物のダジャレが集まる例
indexをつくればいいんでっくすwwwwwww {"query": { "bool": { "should": [ {"match":{ "roman": {
"query": qr, "fuzziness": "AUTO" }}}, {"match":{ "body": { "query": q, "fuzziness" : "AUTO", "boost":100 }}}, {"match":{ "vec": { "query": qev }}}]}}} + score function ... "tokenizer": { "normal_tokenizer": { "type": "kuromoji_tokenizer", "mode": "normal"} }, "analyzer": { "normal_analyzer": { "type": "custom", "tokenizer": "kuromoji_tokenizer", "filter":[ "trim", "kuromoji_stemmer", "ja_pos_meishi_filter" ]}}}}, "mappings": { "dynamic": "strict", "properties": { "body": { "type": "text", "analyzer": "normal_analyzer", "search_analyzer": "normal_analyzer", "term_vector" : "with_positions_offsets" }, "roman": { "type": "text"}}, "vec": {"type": "vector"}}} 検索 index
検索だけに幸ありwwwwwwwwwww fuzzy、vector検索によって 吉野家、松山などが引けている (上手いダジャレの返しができそう)
運用するうんようwwwwwwwwww • 2020/06/22 (月) 各位のtimelineでオンラインテスト
駄率wwwww • Slackへの投稿をqueryとしtop10以内の結果から良さげな回答を選んで返す • challengeした数:10 ◦ :da: が付いた数:7 ◦ しーきび:2 ◦
Iwasa method:1 参考:皆に優しいダジャレ評価フローとリアクション(一部) すごい回答の例 vector検索で「ケーブル」関連語として 「故障」があがる
検索すれば幸になるのか • 検索によるサポートで誰でも :da: が取得できる ◦ ESのvector検索、ローマ字検索の queryの重みを変更する事で、 誰でも簡単に、好きな面白い方向性でダジャレを検索、投稿できる ◦
果たしてその :da: に価値はあるのかという議論は別途ある ▪ 敷居を下げる十分な効果がある • 難しい例も存在する 利用困難な例
今後の改善点 • 「Docker」「JIS」「Jenkins」「Jira」「CI/CD」など 英語、技術用語に対応したダジャレがデータベース上にない ◦ ローマ字変換を試みたが、オノマトペ難しい • Elasticsearchをどう管理するか ◦ Elasticsearch
docker-composeを使っておりローカルマシンが重くて仕事にならない • End2Endなモデルの作成 ◦ 大きなMLモデルは事前学習モデルが基本自然文で学習されているため唐突な遷移が難しい ▪ 今後のfeature worksとしたい
華金だから もうおしごとは できんよう〜〜w ※ 社外の@_329_さんのプライバシー保護のため一部画像を加工しています