コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
MeiMei ◆o9mi.FpHF5Xx
2019/8/18 22:41
質問
aiを作りてぇ
「おはよう」とキーボードで打ったら「おはようございます!」とか返信してくれるのってどうやるん?

コメント

アバター
ジプッチャ 2019/8/18 23:11 ◆tkYhkmSxSAam
昔やったなーそういうの!懐かしいです。(聞いてない)

「プレイヤーの書いてきた文字列がある特定の文字列である(特定の文字列を含む)ときに決まった返答を返すもの」ですよね?
それは、知的な返し方をしているように見えても実際やってることはIF文の羅列なわけで、学習して上達したりしないので、AIとは呼ばないんです。
プチコンでAIを作ろうと思ったら多分相当大変だと思います(笑)

で、自動応答プログラム(仮称)の作り方をざっと説明します。

文字列がある特定の文字列を含んでいるかは、INSTRという関数を使って調べます。
文字列と文字列が同じかどうかは演算子==で確かめます。

なので、最も簡単な方法("おはよう"の時だけ検知する)は、
INPUT TXT$
IF TXT$=="おはよう" THEN
RES$="おはようございます!"
ENDIF
PRINT RES$
となります。
"おはよう"を含んでいれば"おはようございます!"と返すようにするなら
2行目を IF INSTR(TXT$,"おはよう")!=-1 THEN に変えればOKです。

本音を言うと、キーワードが増えた時に一回一回IF文を使うのは面倒なので、DATAにキーワードを格納しておいて一斉検索、とかやりたいんですが
プログラムが長くなるので、よければ後で公開キーを出そうと思います。
長文失礼しました。
アバター
だにえる 2019/8/19 0:38 ◆m76OCAQyrWGt
いわゆる人工無能
アバター
クロマリオ 2019/8/19 0:41 ◆jST6XW8BxBax
aiはロマンであり永遠の課題案件。
しかし、選択肢形式のあれならプチコンでも、上手くやれるかもしれぬが…
アバター
More10 2019/8/19 6:36 ◆J1/MCFrfgp6.
ジプッチャさんが仰っているのはいわゆる「人工無脳」で、プチコンではありがちな手法ですが、決まった言葉にしか反応せず、学習もしません。

本当にAIを作りたいのであれば、例えば知らない言葉が投げられた時に、そこまでの会話で出てきたワードを適当に返し、ユーザーがそれを評価して学習していく。といった方法もあります。
アバター
ツララ 2019/8/19 8:06 ◆ArUdBYOYME1V
実際、人工無脳と人工知能の違いって
新しい情報を学習するかしないかの違いくらいなんじゃないんです?
人工無脳だって使うワードの評価はしてるでしょうし
評価関数自体を評価するまでやらないと知能って感じしないかも。
3号だと別スロットにプログラム書き出せるから、自作関数を作るプログラムとか出来そう。

対応リストに無い質問には「そういうことは言っていない」とか「バカは発言するな」
って反応させとけば人工無脳でもそれっぽく見えるかも(シーマン)。
アバター
はる 2019/8/19 8:10 ◆75Vh4SY8TdKS
自分の掲示板には、
新しい情報を学習するものでも、
"人工無脳"と呼ぶ人がいるので、
そこら辺の定義は曖昧ですね。

ジプッチャさんのタイプのものは、
自分も昔作ったことがあります。
今は公開していませんが。
実際にApple社のSiriは、
ジプッチャさんのやり方だったはず。
アバター
MeiMei 2019/8/19 13:09 ◆o9mi.FpHF5Xx
http://wiki.hosiken.jp/petc3gou/?Toukou%2FAND-OS←このOSの「あんどうさん」のプログラムの中にdataっていう命令がめちゃくちゃ使われてて、data命令で人工無能を作ることはできますか?
アバター
うんざり 2019/8/19 13:41 ◆VZlRV0xeWZeS
1:WHILE 1
2: INPUT I$:ASK$=""
3: IF I$=="おはよう" THEN ASK$="おはようございます!" ELSE ASK$="なにいってるのかわからない"
4: ? ASK$
5:WEND

これで一応できる

ちなみに、3行目を
FOR I=0 TO 1000+RND(1000):IF !RND(100) THEN ASK$=ASK$+"じゃないんです?"+CHR$(10) ENDIF ASK$=ASK$+CHR$(ASC("あ")+RND(ASC("わ")-ASC("あ"))):NEXT:ASK$=ASK$+"だとおもうんですけど"
とすると、恥ずかしい人になる
アバター
うんざり 2019/8/19 14:09 ◆VZlRV0xeWZeS
そして実際に試してみたら、なんの違和感もないときた

※適当なところに句点を設ける処理を追加してます
アバター
RU-RA 2019/8/19 16:04 ◆WXDJqyOv9yBK
>>More10さん
わからない言語が来たらどう言えばいいのかをプレイヤーに教えてもらうのも手ですね。
アバター
ジプッチャ 2019/8/20 21:57 ◆tkYhkmSxSAam
そういえば、プチコンNET(http://petitcom.net/manual/instr)の黄色枠内の「INSTR$」ってINSTRの間違いじゃないかと気づいてしまいましたが、
Facebookアカウントを持っていなかったのでコメントできませんでした。
誰か代わりにコメントしてください(他力本願)

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -