| 1行目: |
1行目: |
| | '''ロボウサコ'''(英: robo usako)は、ますとどんちほーに存在するbotである。[https://www.kemov-project.com/ けものフレンズVぷろじぇくと]の[https://www.kemov-project.com/%E3%82%A6%E3%82%B5%E3%82%AE%E3%82%B3%E3%82%A6%E3%83%A2%E3%83%AA ウサギコウモリ](ウサコ)を模倣したものであり、[[利用者:Nanase|Nanase]]によって開発された。'''ウサコbot'''(英: usako bot)とも呼ばれる。 | | '''ロボウサコ'''(英: robo usako)は、ますとどんちほーに存在するbotである。[https://www.kemov-project.com/ けものフレンズVぷろじぇくと]の[https://www.kemov-project.com/%E3%82%A6%E3%82%B5%E3%82%AE%E3%82%B3%E3%82%A6%E3%83%A2%E3%83%AA ウサギコウモリ](ウサコ)を模倣したものであり、[[利用者:Nanase|Nanase]]によって開発された。'''ウサコbot'''(英: usako bot)とも呼ばれる。 |
| | + | |
| | + | {{Bot |
| | + | | bot_name = ロボウサコ |
| | + | | author = [[利用者:Nanase]] |
| | + | | published_at = 2023年4月29日 |
| | + | | is_active = 稼働中 |
| | + | | is_reacted_with_ltl = 間接的 |
| | + | | development_lang = Node.js |
| | + | }} |
| | | | |
| | ==概要== | | ==概要== |
| 57行目: |
66行目: |
| | |} | | |} |
| | | | |
| − | == 発言プロセス == | + | ==発言プロセス== |
| | | | |
| − | === ワードの抽出 === | + | ===ワードの抽出=== |
| | 候補となるワードはLTL(ローカルタイムライン)から抽出される。botアカウントではないユーザのがおーをMeCab(形態素解析エンジン)によって分解し、以下の品詞のみ選択する。 | | 候補となるワードはLTL(ローカルタイムライン)から抽出される。botアカウントではないユーザのがおーをMeCab(形態素解析エンジン)によって分解し、以下の品詞のみ選択する。 |
| | | | |
| − | * '''名詞''' | + | *'''名詞''' |
| − | * '''形容詞''' - かわいい、大人しい など | + | *'''形容詞''' - かわいい、大人しい など |
| − | * '''接頭辞''' - 大当たりの「大」の部分 など | + | *'''接頭辞''' - 大当たりの「大」の部分 など |
| − | * '''助詞'''の「'''の'''」 | + | *'''助詞'''の「'''の'''」 |
| − | * '''助動詞'''の「'''な'''」 | + | *'''助動詞'''の「'''な'''」 |
| | | | |
| | 分解された品詞が助詞の「の」で接続されている場合、これを1ワードとみなして結合する。たとえば以下のテキストを入力とする。<syntaxhighlight lang="text"> | | 分解された品詞が助詞の「の」で接続されている場合、これを1ワードとみなして結合する。たとえば以下のテキストを入力とする。<syntaxhighlight lang="text"> |
| 74行目: |
83行目: |
| | </syntaxhighlight>ワードの有用性を上げるため、さらに以下の条件により適切なワードのみを選択する。 | | </syntaxhighlight>ワードの有用性を上げるため、さらに以下の条件により適切なワードのみを選択する。 |
| | | | |
| − | * ワードの長さが2文字以上、20文字以内 | + | *ワードの長さが2文字以上、20文字以内 |
| − | * ワードに適さない特定の文字、文字列を含んでいない | + | *ワードに適さない特定の文字、文字列を含んでいない |
| − | * 語頭が促音(っ)で開始していない | + | *語頭が促音(っ)で開始していない |
| − | * 指示語を含んでいない | + | *指示語を含んでいない |
| − | * ワードが重複していない | + | *ワードが重複していない |
| | | | |
| | さらに以下の規則により、ワードの不適切な部分が除去される。 | | さらに以下の規則により、ワードの不適切な部分が除去される。 |
| | | | |
| − | * URLやハッシュタグ部分 | + | *URLやハッシュタグ部分 |
| − | * 語頭の「ような」「的な」部分 | + | *語頭の「ような」「的な」部分 |
| − | * 記号や約物(!や?など)。ただし絵文字のための記号(:)は除外せず、両端にゼロ幅スペースが挿入される | + | *記号や約物(!や?など)。ただし絵文字のための記号(:)は除外せず、両端にゼロ幅スペースが挿入される |
| | | | |
| | 上記の規則により、最終的には以下のようなワードが抽出される。<syntaxhighlight lang="text"> | | 上記の規則により、最終的には以下のようなワードが抽出される。<syntaxhighlight lang="text"> |
| 90行目: |
99行目: |
| | </syntaxhighlight> | | </syntaxhighlight> |
| | | | |
| − | === ワードの抽選 === | + | ===ワードの抽選=== |
| | 抽出されたワードはワードプールに溜められる。各ワードにはどのユーザによるものかが判別できるようになっている。 | | 抽出されたワードはワードプールに溜められる。各ワードにはどのユーザによるものかが判別できるようになっている。 |
| | | | |
| | 発言を行う際にはまず、ランダム(一様分布)にユーザの抽選が行われる。ユーザに紐づいたワードが空ではない場合、さらにランダムでワードを抽選を行う。このようにユーザとワードの2段階で抽選を行うことで、発言回数の多いユーザの当選確率が上昇しないしくみになっている。 | | 発言を行う際にはまず、ランダム(一様分布)にユーザの抽選が行われる。ユーザに紐づいたワードが空ではない場合、さらにランダムでワードを抽選を行う。このようにユーザとワードの2段階で抽選を行うことで、発言回数の多いユーザの当選確率が上昇しないしくみになっている。 |
| | | | |
| − | === ロボウサコ発言の生成 === | + | ===ロボウサコ発言の生成=== |
| | 発言文は以下の規則で生成される。 | | 発言文は以下の規則で生成される。 |
| | | | |
| − | * '''序文'''。「見て見て眷属たち~!」のほか、稀に「眷属たち見て見て~!」が選択される。 | + | *'''序文'''。「見て見て眷属たち~!」のほか、稀に「眷属たち見て見て~!」が選択される。 |
| − | * '''提示部'''。抽選されたワードを用いて「○○でちゅ。」を生成する。ただし20%ほどの確率で「○○でちゅ!」が選択される。 | + | *'''提示部'''。抽選されたワードを用いて「○○でちゅ。」を生成する。ただし20%ほどの確率で「○○でちゅ!」が選択される。 |
| − | * '''説明部'''。ChatGPTによる自動生成が行われる。生成方式は'''印象'''と'''要約'''の2種類があり、印象を説明する文を生成する確率がやや高くなっている。「○○でちゅね~!」または「○○ってワケ!」のどちらかが選択され、稀に両方とも選択される。ChatGPTのAPI呼び出しに失敗した場合は説明部ごと省略される。 | + | *'''説明部'''。ChatGPTによる自動生成が行われる。生成方式は'''印象'''と'''要約'''の2種類があり、印象を説明する文を生成する確率がやや高くなっている。「○○でちゅね~!」または「○○ってワケ!」のどちらかが選択され、稀に両方とも選択される。ChatGPTのAPI呼び出しに失敗した場合は説明部ごと省略される。 |
| | | | |
| | 以下はヴァイオリンというワードが抽選された場合の発言の例である。<syntaxhighlight lang="text"> | | 以下はヴァイオリンというワードが抽選された場合の発言の例である。<syntaxhighlight lang="text"> |
| 106行目: |
115行目: |
| | </syntaxhighlight> | | </syntaxhighlight> |
| | | | |
| − | == 名言 == | + | ==名言== |
| | <blockquote>''「[[ロボウサコの名言一覧]]」を参照''</blockquote> | | <blockquote>''「[[ロボウサコの名言一覧]]」を参照''</blockquote> |
| | | | |