「ロボウサコ」の版間の差分
| 49行目: | 49行目: | ||
|2023年6月1日 | |2023年6月1日 | ||
| | | | ||
| − | * 特定の文字が含まれていると抽出処理に失敗する問題が修正された。 | + | *特定の文字が含まれていると抽出処理に失敗する問題が修正された。 |
|- | |- | ||
|2.0.2 | |2.0.2 | ||
| 56行目: | 56行目: | ||
*自動生成文部分の語順が修正された。 | *自動生成文部分の語順が修正された。 | ||
|} | |} | ||
| − | < | + | |
| + | == 発言プロセス == | ||
| + | |||
| + | === ワードの抽出 === | ||
| + | 候補となるワードはLTL(ローカルタイムライン)から抽出される。botアカウントではないユーザのがおーをMeCab(形態素解析エンジン)によって分解し、以下の品詞のみ選択する。 | ||
| + | |||
| + | * '''名詞''' | ||
| + | * '''形容詞''' - かわいい、大人しい など | ||
| + | * '''接頭辞''' - 大当たりの「大」の部分 など | ||
| + | * '''助詞'''の「'''の'''」 | ||
| + | * '''助動詞'''の「'''な'''」 | ||
| + | |||
| + | 分解された品詞が助詞の「の」で接続されている場合、これを1ワードとみなして結合する。たとえば以下のテキストを入力とする。<syntaxhighlight lang="text"> | ||
| + | :seiryu: の人気っぷりを分析してみたけど、あの性格だけじゃなく、元動物が存在しないからやりたい放題っていうのも相乗効果としてありそう | ||
| + | </syntaxhighlight>上述の規則を適用すると以下のようなワードが抽出される。<syntaxhighlight lang="text"> | ||
| + | :seiryu:, 人気っぷり, あの, 性格, 元動物, 放題, 相乗効果 | ||
| + | </syntaxhighlight>ワードの有用性を上げるため、さらに以下の条件により適切なワードのみを選択する。 | ||
| + | |||
| + | * ワードの長さが2文字以上、20文字以内 | ||
| + | * ワードに適さない特定の文字、文字列を含んでいない | ||
| + | * 語頭が促音(っ)で開始していない | ||
| + | * 指示語を含んでいない | ||
| + | * ワードが重複していない | ||
| + | |||
| + | さらに以下の規則により、ワードの不適切な部分が除去される。 | ||
| + | |||
| + | * URLやハッシュタグ部分 | ||
| + | * 語頭の「ような」「的な」部分 | ||
| + | * 記号や約物(!や?など)。ただし絵文字のための記号(:)は除外せず、両端にゼロ幅スペースが挿入される | ||
| + | |||
| + | 上記の規則により、最終的には以下のようなワードが抽出される。<syntaxhighlight lang="text"> | ||
| + | :seiryu:, 人気っぷり, 性格, 元動物, 放題, 相乗効果 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | === ワードの抽選 === | ||
| + | 抽出されたワードはワードプールに溜められる。各ワードにはどのユーザによるものかが判別できるようになっている。 | ||
| + | |||
| + | 発言を行う際にはまず、ランダム(一様分布)にユーザの抽選が行われる。ユーザに紐づいたワードが空ではない場合、さらにランダムでワードを抽選を行う。このようにユーザとワードの2段階で抽選を行うことで、発言回数の多いユーザの当選確率が上昇しないしくみになっている。 | ||
| + | |||
| + | === ロボウサコ発言の生成 === | ||
| + | 発言文は以下の規則で生成される。 | ||
| + | |||
| + | * '''序文'''。「見て見て眷属たち~!」のほか、稀に「眷属たち見て見て~!」が選択される。 | ||
| + | * '''提示部'''。抽選されたワードを用いて「○○でちゅ。」を生成する。ただし20%ほどの確率で「○○でちゅ!」が選択される。 | ||
| + | * '''説明部'''。ChatGPTによる自動生成が行われる。生成方式は'''印象'''と'''要約'''の2種類があり、印象を説明する文を生成する確率がやや高くなっている。「○○でちゅね~!」または「○○ってワケ!」のどちらかが選択され、稀に両方とも選択される。ChatGPTのAPI呼び出しに失敗した場合は説明部ごと省略される。 | ||
| + | |||
| + | 以下はヴァイオリンというワードが抽選された場合の発言の例である。<syntaxhighlight lang="text"> | ||
| + | 見て見て眷属たち~!ヴァイオリンでちゅ。感情を奏でる楽器でちゅね!優雅ってワケ! | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | == 名言 == | ||
| + | <blockquote>''「[[ロボウサコの名言一覧]]」を参照''</blockquote> | ||
| + | |||
==脚注== | ==脚注== | ||
===註釈=== | ===註釈=== | ||
2023年6月15日 (木) 01:35時点における版
ロボウサコ(英: robo usako)は、ますとどんちほーに存在するbotである。けものフレンズVぷろじぇくとのウサギコウモリ(ウサコ)を模倣したものであり、Nanaseによって開発された。ウサコbot(英: usako bot)とも呼ばれる。
概要
ロボウサコはそのモチーフとなったウサコの口癖である「見て見て眷属たち~!○○でちゅ。」[注 1]をbot化したものである。「○○」部分はLTLから抽出したワードが入り、ChatGPTによって自動生成された印象や紹介文が続く。抽出されるワードは名詞とは限らず、いくつかの条件がある(後述)。
稼働を開始した当初はURLを無加工で抽出してしまうなど不適切なワードの抽出が多かった。その後にリリースされたバージョン2によって抽出処理は改良され、さらにChatGPTによる会話文の自動生成を開始した。
アバター(アイコン)はムニによって提供された[1]。それまではもっぱらウサコbotと呼ばれていたが、アバターが採用された頃には正式にロボウサコと呼称されることが多くなった。
歴史
前史
開発の動機はMastodonのAPIの利用方法をJavaScriptを用いて学習するためであった。当初はupdate_mascotと呼ばれる、開発者にメンションすることで開発者自身の名前とアバターを強制変更するクライアントであった。しかし自由な名前とアバターに変更できるわけではなく、けもVのマスコットキャラクターに限られていた。ロボウサコのIDがvであるのはその名残である。しかしアバターを頻繁に変更したことでMastodonクライアントが不安定になることが多発したため数日のうちにupdate_mascotは稼働を停止した。
ロボウサコの誕生
4月中旬、ますとどんちほーLTLでは「見て見て眷属たち~!○○でちゅ。」「ウルフね、うどんウルフだよ。」といったワードがにわかに流行した。比較的緩い単語抽出であっても意義があると考えた開発者によりロボウサコの開発が始まった。ロボウサコの稼働が開始したのは2023年4月29日である。稼働当初の生成メッセージのフォーマットは「見て見て眷属たち~!○○でちゅ。」「見て見て眷属たち~!○○でちゅ!」の2種類のみであった。
ウサコの言動をモチーフにメッセージを生成する動きはロボウサコだけではなく、いもばたけによる見て見て眷属たち~!診断が存在する。こちらはますとどんちほーを飛び出し、ウサコ本人[2]や他のけもVメンバー[3][4]も診断結果をツイートするなどの快挙を達成している。ロボウサコよりは後発ではあるがChatGPTによる説明文の自動生成を行っている[注 2]ことについて、その後のロボウサコに強い影響を与えることとなった。
ChatGPT連携の開始
2023年5月30日にバージョン2.0がリリースされた。ワードの抽出方法が改良されたほか、ChatGPTによる会話文の自動生成が実装された。
年表
| バージョン | リリース日 | おもな新機能と変更点 |
|---|---|---|
| 1.0 | 2023年4月29日 | ファーストリリース |
| 2.0 | 2023年5月30日 |
|
| 2.0.1 | 2023年6月1日 |
|
| 2.0.2 | 2023年6月10日 |
|
発言プロセス
ワードの抽出
候補となるワードはLTL(ローカルタイムライン)から抽出される。botアカウントではないユーザのがおーをMeCab(形態素解析エンジン)によって分解し、以下の品詞のみ選択する。
- 名詞
- 形容詞 - かわいい、大人しい など
- 接頭辞 - 大当たりの「大」の部分 など
- 助詞の「の」
- 助動詞の「な」
分解された品詞が助詞の「の」で接続されている場合、これを1ワードとみなして結合する。たとえば以下のテキストを入力とする。
:seiryu: の人気っぷりを分析してみたけど、あの性格だけじゃなく、元動物が存在しないからやりたい放題っていうのも相乗効果としてありそう上述の規則を適用すると以下のようなワードが抽出される。
:seiryu:, 人気っぷり, あの, 性格, 元動物, 放題, 相乗効果ワードの有用性を上げるため、さらに以下の条件により適切なワードのみを選択する。
- ワードの長さが2文字以上、20文字以内
- ワードに適さない特定の文字、文字列を含んでいない
- 語頭が促音(っ)で開始していない
- 指示語を含んでいない
- ワードが重複していない
さらに以下の規則により、ワードの不適切な部分が除去される。
- URLやハッシュタグ部分
- 語頭の「ような」「的な」部分
- 記号や約物(!や?など)。ただし絵文字のための記号(:)は除外せず、両端にゼロ幅スペースが挿入される
上記の規則により、最終的には以下のようなワードが抽出される。
:seiryu:, 人気っぷり, 性格, 元動物, 放題, 相乗効果ワードの抽選
抽出されたワードはワードプールに溜められる。各ワードにはどのユーザによるものかが判別できるようになっている。
発言を行う際にはまず、ランダム(一様分布)にユーザの抽選が行われる。ユーザに紐づいたワードが空ではない場合、さらにランダムでワードを抽選を行う。このようにユーザとワードの2段階で抽選を行うことで、発言回数の多いユーザの当選確率が上昇しないしくみになっている。
ロボウサコ発言の生成
発言文は以下の規則で生成される。
- 序文。「見て見て眷属たち~!」のほか、稀に「眷属たち見て見て~!」が選択される。
- 提示部。抽選されたワードを用いて「○○でちゅ。」を生成する。ただし20%ほどの確率で「○○でちゅ!」が選択される。
- 説明部。ChatGPTによる自動生成が行われる。生成方式は印象と要約の2種類があり、印象を説明する文を生成する確率がやや高くなっている。「○○でちゅね~!」または「○○ってワケ!」のどちらかが選択され、稀に両方とも選択される。ChatGPTのAPI呼び出しに失敗した場合は説明部ごと省略される。
以下はヴァイオリンというワードが抽選された場合の発言の例である。
見て見て眷属たち~!ヴァイオリンでちゅ。感情を奏でる楽器でちゅね!優雅ってワケ!名言
「ロボウサコの名言一覧」を参照