質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

9回答

1831閲覧

プログラムに「あいまいな判断」をさせる方法について

WeilSpinor

総合スコア170

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/04/22 12:34

少し変わったWeb家計簿アプリを作ろうと思っています。

変わっている点は以下の通りです:

・自分のサーバー内にある毎日見るWebページ「hoge.html」にアクセスすると強制的に家計簿画面が表示され、入力しなければ「hoge.html」を見せてくれない。

こうすることで、hoge.htmlにアクセスするたびに、それに紐づけて家計簿をつける習慣をつけることができます。

しかし、これでは、
「今ちょっとめんどくさいから嘘の値を適当に入力してしまおう」
と思って、切り抜けてしまうこともできます。

そこで、以下のような機能が欲しいと思っています:

・「嘘をついて適当に入力していると思われる入力」をされたら、「嘘をついていますね。ちゃんと入力してください」と返して、入力をはじく。

「てきとーに入力しているかもしれない」と判断させるにはどんなアルゴリズムを考えればよいか分からないのですが、こういった「あいまいな判断」を実現するための定石のようなアルゴリズムはありますか?
こういうふうに考えればよい、というヒントだけでも構わないので、ご回答いただけると幸いです。

また、これはファジー論理などが関係してくるのでしょうか?

ご回答宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2019/04/22 12:45

判断に使える情報は値だけでしょうか?人ならどう判断するかを言語化できないのであれば、どんなアルゴリズムを使っても無理でしょう
dakarakarad

2019/04/22 13:47

1回だけ後でできるようにしてみては?そして2回目以降はチャージ金がどんどん没収されていき、きちんと入力した人への報酬になったり?
fana

2019/04/23 01:54

(私だけかもしれませんが)出費がない日ってのもふつーにあるのですが,その場合はどうするんでしょう? (「0」を一個入力する?とかだと,いかにも「てきとーな入力」に見えますが…)
m.ts10806

2019/04/24 01:56

これができればteratailで質問内容だけ読んで「調べたのに書いてない」「何も調べてない」が機械的に判断できるようになりますね。いやぁ画期的で回答者的には助かる。 そもそもそれ、判断できると思いますか? それを設計に組み込むことによって発生する工数と得られるメリットの天秤にかけてみたかどうか、その考察部分も追記してください
BeatStar

2019/04/24 03:08

mts10806さんのおっしゃる通りですね。 無茶ぶりです。 人間ですら判断できないのに、機械ができるわけがありません。
m.ts10806

2019/04/24 07:47 編集

BeatStarさん 機械学習によって「傾向」は掴めなくもないかもしれませんが、それによって得られるメリットって本当にあるの?というところが疑問ですよね。 情報収集とタグ付けは人間がしなければならない。タグ付け可能かどうか判断できないデータならそれこそ「てきとーにつけちゃえ」となって教師データの品質が落ちるだけです。 DBに入らないデータをバリデーションしたり、ホワイトリスト通すくらいまでがシステム側でできる最大の対応に思います。
guest

回答9

0

どんなアルゴリズムを使おうと、私なら機械を騙せます。
家計簿を入力しなければ目的のページを見られないようにするというアルゴリズム自体が無意味です。
別の方法を考えてください。
家計簿をつけなければペナルティがあるというものではなく、家計簿をつけることによって報酬が得られるものが良いでしょう。
例えば、かわいい子供の笑顔や小動物は人を癒します。
それらの画像を収集して表示するものなどはどうでしょうか?

投稿2019/04/22 13:03

編集2019/04/22 13:06
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

WeilSpinor

2019/04/24 00:40

ご回答ありがとうございます。 今回の考えは少し無理がありましたね。 仰るように、むしろ入力したら可愛い女の子の画像などを表示するようにするといいかもしれませんね。
guest

0

まずは自分で、あるいは家族とか友達に頼んだりして、「普通の入力」「てきとーな入力」それぞれの例をできるだけたくさん集めましょう。あ、ここで聞かないこと。

だいたい数百件ずつくらい集めたら、まずは人の目で見てどういう違いがあるかを確認する。

金額が非現実的かもしれないし、明らかに同じキーを長押しして入力したかもしれない。周期性が出てくるとか特定の数字に偏るとか、いろいろあると思います。
(ここで挙げたものは思いつきなので、実際に正しいかどうかはご自身で検証してください)

それからルールベース(if-then)で組んでも良いし、データが一定数あれば機械学習を使うことも可能です。

ただし、このようなケースで問題になるのはFalse-Positive(偽陽性)です。普通にお買い物をした金額を入力しても、たまたまてきとーに見える数字であれば、てきとー判定されてしまう可能性がある訳です。

この場合、一切の操作を受け付けないというのであれば使い物になりませんから、対応策を考えておく必要があります。たとえば、ロック状態になったらもっと面倒くさい操作をすれば(たとえばreCAPTCHAみたいなことをやらせるとか)解除できる、みたいな仕様にすれば、適当に入力するよりは正しく入力するインセンティブが生じます。

私ならそんな面倒くさいアプリは使うのをやめますけど。

投稿2019/04/22 12:51

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

... 「今ちょっとめんどくさいから嘘の値を適当に入力してしまおう」 ...

これを判定するのは困難と思います。
本人は正しく入力しているつもりなのにキー入力ミスをしていたりした場合と、適当な入力をしているつもりで前の日と同じ値を入力した場合などを切り分けることができますか?

そもそも人間がキー入力するのが間違いかもしれません。
レシートや値段表示をカメラで取ると、家計簿の値として入力されるというようなことを考えたほうが良いのでは?

投稿2019/04/22 13:56

編集2019/04/23 13:20
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2019/04/23 02:34

> 本人は正しく入力しているつもりなのにキー入力ミスをしていたりした場合と、 > 適当な入浴をして > 前の日と同じ値を入力しあ場合 高度なレトリックですね
guest

0

私的考えですが

判断する材料をできるだけ多く記録します
例えば

ページを見た時間帯
曜日
ページを見てから入力が始まるまでの時間
入力が終わるまでの時間
などなど。
ただし曜日といっても7種類
時間といっても24種類
キー1つ1つの入力が終了するまでの時間(どれぐらい切り刻むかで種類は増えます)

それらの1つ1つの因子の総組み合わせリストを作ります
その組み合わせのルート1つ1つにランダムな数値を割り当てます。

人間にうその情報を入力してもらいます

集めた総当たりの因子リストのルートの総和を計算します。
総和の値が大きいものの(個々の)ルートには加点します。
総和の値が小さいものは減点します
またこの状態で入力を繰り返し判定を繰り返します。
総和の大きくなるものは嘘を見抜ける?

ということでだんだん賢くなるんじゃね?

投稿2019/04/22 13:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

プログラムに**「あいまい」はありません**。
どんな機能でも0と1で明確に定めているのがプログラムです。

下記の手順でプログラムが作れます。

  1. ダミーデータのサンプルを多量に用意する
  2. 各々のダミーデータから規則性を見出し、アルゴリズムに落とし込む
  3. アルゴリズムからコードを作成する
  4. テストする

Re: WeilSpinor さん

投稿2019/04/22 12:52

think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

たぶん機械学習型AIの分野かと。適切に付けた家計簿を大量に学習させ、その中の「パターン」に当てはまらない入力が来たらメッセージを出すみたいな感じでしょうか。
頑張れば、それなりの出力を得ることができそうな気もします。
個人のパソコンでできるかと聞かれると、正直厳しいのでは?とも感じますが。

投稿2019/04/22 12:41

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

WeilSpinor

2019/04/22 12:51

ご回答ありがとうございます。 機械学習型AIですか…。 「ちゃんと付けた家計簿」と「適当に付けた家計簿」のサンプルを大量に自分で作らないといけないのは大変そうですね…。 しかも、根本的な問題として 「ちゃんと付けた家計簿」と「それっぽいけど嘘な家計簿」とを区別するのは、そもそも人間でも困難ですね…。「それっぽい嘘な家計簿」を付けるのは簡単ですしね…。 この案はボツですかね…。
guest

0

素人の意見で恐縮ですが、参考になればと!

TwitterやGmailを利用するとパスワード復旧用メールという機能がありますが、たとえばあれを適当に入力したとして、それをTwitterやGmailは「入力された時点で」嘘か本当かみわけられていますでしょうか?実際はそれが本当か確認するためのアクションをユーザに要求しているかと思います。

つまり、入力されたものだけから情報が嘘か本当かを判断することは一般的ではないのかと。
AIによって不正なユーザーに対処しようとする試みはTwitterやYoutubeでもみられますが、人間が行っている無害な行動も不正なものとみなされる事例はあるようなので、使う側としても嘘か本当かの基準を勝手に設けられて検証されても不便になるだけなのではないでしょうか?

投稿2019/04/22 21:02

xjjojo

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ファジー理論は大学でやりましたけど、これは入力値の評価の問題なので、それ以前の話ですかね。
評価値が出ればファジー論理演算やアルファカット集合の出番もあるかもしれません。

ありえそうなのは、入力時間でしょうかね?
実際に家計簿を打つとなると、レシートを取り出し、内容を見ながら打つわけで。
一方でウソの仕訳を打つ場合は、適当な数字を入れますから、打鍵のスピードや入力開始までの時間などのサンプルを数百人分ぐらい取れば、そこそこの相関が見えるかもしれませんね。

投稿2019/04/22 13:04

Lhankor_Mhy

総合スコア36074

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご回答ありがとうございます。

機械学習型AIですか…。
「ちゃんと付けた家計簿」と「適当に付けた家計簿」のサンプルを大量に自分で作らないといけないのは大変そうですね…。

しかも、根本的な問題として
「ちゃんと付けた家計簿」と「それっぽいけど嘘な家計簿」とを区別するのは、そもそも人間でも困難ですね…。「それっぽい嘘な家計簿」を付けるのは簡単ですしね…。

この案はボツですかね…。

投稿2019/04/22 12:50

WeilSpinor

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/04/23 02:56

質問者の回答に対するあなたの回答(お礼)が、最高にあいまいですね。^^;
KojiDoi

2019/04/23 03:30

私だったら、ちゃんとした入力をしたつもりが一回でも「てきとー」と判断されたら、その時点でアプリを破棄しますね。そしてこういうアプローチではどのような工夫をこらそうとも必ず境界線上の微妙なパターンが出てくるはずなので、間違ったテキトー判定はそう稀なことではないでしょう。 入力を全うすることで「ご褒美」をだすアプローチのほうが断然よろしいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問