Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/29(土) 02:01:58.34ID:urVXnFrH
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 59
http://echo.2ch.net/test/read.cgi/tech/1475394638/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
2017/07/02(日) 00:18:14.45ID:IGa4njyh
>>461
というかJavaScriptが特殊なんだよ
引数の数のチェックをしないからな
2017/07/02(日) 00:19:08.94ID:J2BCSwZK
JavaScriptはJavaの名前にあやかっただけで全くJavaじゃないって本当ですか?
2017/07/02(日) 00:23:24.49ID:0SO6fajC
>>462
Rubyでもこの文脈では引数の数のチェックをしてないようですが?

%w(a b c).map.with_index {|c| "#{c}" } # 引数が足りなくてもエラーなし
%w(a b c).map {|c, i, x, y, z| "#{i}#{c}" } # 引数が多くてもエラーなし
2017/07/02(日) 00:24:36.29ID:0SO6fajC
>>463
Rubyも宝石の名前にあやかってるだけで全くRubyじゃないよw
2017/07/02(日) 00:24:58.24ID:J2BCSwZK
>>465
なるほどw
2017/07/02(日) 00:29:32.61ID:WUsDB0eH
JavaScriptはLISPっぽい所ある
2017/07/02(日) 00:38:11.58ID:yqVk05l0
>これはタイプ数の問題じゃねーよ?
と言いつつも
>可読性というのは読むべき「単語」を減らすものであって
と言うのであった

そして多くの人はこう思うのであった
「単語数と可読性ってそんなに関係あるか?」
「ここで言ってた可読性って、少々冗長であっても
 読みやすいほうが良いって話じゃなかったの?」

>下の方が「単語数」が減っている。
>each with index map ・・・ 4単語
>map with index ・・・ 3単語

一単語減らせて本当によかったね
>これはタイプ数の問題じゃねーよ? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/07/02(日) 00:49:17.22ID:0SO6fajC
>>468

> >これはタイプ数の問題じゃねーよ?
> と言いつつも
> >可読性というのは読むべき「単語」を減らすものであって
> と言うのであった

矛盾してないよ?

例えばコピペ、コピペを使うとタイプ数は減る。
CTRL+vとたった1文字タイプするだけで、
過去に書いたコードを複製できる。
だけど、読むべき単語は倍増していく


可読性のためにやらなければいけないのは、タイプ数を
減らすことではなくて単語数を減らすこと
2017/07/02(日) 00:55:38.04ID:0SO6fajC
>>468
> 「単語数と可読性ってそんなに関係あるか?」
> 「ここで言ってた可読性って、少々冗長であっても
>  読みやすいほうが良いって話じゃなかったの?」

日本語に置き換えて考えればわかるだろ?
文章はシンプルな方が読みやすい。
ただそれだけのことなんだが。


まああと付け加えるとするならば「誰にとって」の話だな。
もちろんプログラマにとってだ。

これは数学に例えればわかるか?

数学者同士が会話をする時、数式を使ったほうがより簡単に説明できる。
数学者同士の会話で素人がわかるように数式を使わないで
会話するのは話をわかりにくくするだけ
なぜか? 数式を使えば短い単語数で説明できるから。

ここで素人でもわかるように難しい単語を使わない方がいいという意見は
数学者同士の会話で、素人でもわかりやすく話せといってるようなもん。
素人のために生産性を大きく落とすだけ
2017/07/02(日) 00:57:54.25ID:NbWg8gon
>>470
その冗長なレスをまず自覚しろ
2017/07/02(日) 01:08:47.26ID:yqVk05l0
プログラムを書くのであれば誰しも可読性が良いプログラムを書きたいと考える
部分があるかもしれないが、そんなとき、単語数などというものの脳内に
占めるウエイトは、ほぼ無い

「あのプログラムのソースコードは単語数が少ないから非常に読みやすかったよ〜」
なんて会話は、無い

というと、じゃあ単語数が多いほうが良いのか?と言い出すかもしれないが
そもそも単語数など論点にするのがピンボケ

労力の方向がおかしいし、論点がおかしい
2017/07/02(日) 01:14:15.76ID:0SO6fajC
>>471
お前が短く書き直せば?w
2017/07/02(日) 01:15:48.32ID:0SO6fajC
>>472

> 「あのプログラムのソースコードは単語数が少ないから非常に読みやすかったよ〜」
> なんて会話は、無い

無駄がないとかシンプルっていう言い方をしてるはずだよ。
無駄がないとかシンプルとはどういうことか?というと
それは殆どの場合単語数が少ないことを意味してる
単に言い方の違いだねw
2017/07/02(日) 01:23:00.07ID:yqVk05l0
ついでに言っておくと、俺は別に冗長に書けばわかりやすくなるとも思ってない
元の人がそのようなことを言っていたから、そういった風なことも書いたが
俺自身はそうとも思っていない
というか、そういったことは、割とどうでもよいというか
多少コードがシンプルになったぐらいで一喜一憂する気分ではない
そりゃ少しはうれしいが、それはまぁなんていうか、青信号だったラッキー、みたいな感覚
どちらかというと、1円見つけた!のほうが嬉しいかなー
2017/07/02(日) 01:28:42.17ID:0SO6fajC
> 多少コードがシンプルになったぐらいで一喜一憂する気分ではない

割合で考えようか?

4単語が3単語になったら、25%もシンプルになったとみなすことができる
2017/07/02(日) 01:36:42.12ID:yqVk05l0
ほらもう、プログラムの美的センスがまるでないでしょ

>無駄がないとかシンプルとはどういうことか?というと
>それは殆どの場合単語数が少ないことを意味してる

大体において、ソフトウェアの可読性について考えたとき
そのほとんどは設計に依存していると考える人は多いっつーか
まぁ普通の感覚であるところだけど
じゃあなるべく素晴らしい設計をしようって意気込んだ時
「できるだけ単語数を減らせるような設計にしよう」
なんてこと考える奴居るのかね
そんなことがシンプルさの基準になるんかね
これはコードレベルでも同じことだろう
と、俺は思っているわけ
2017/07/02(日) 01:39:30.83ID:yqVk05l0
>4単語が3単語になったら、25%もシンプルになったとみなすことができる

なんでシンプルさの基準が単語数なのか本当に不思議な奴だ
プログラム書いたことないんじゃね?説
2017/07/02(日) 03:26:13.52ID:0SO6fajC
>>477
> 「できるだけ単語数を減らせるような設計にしよう」
> なんてこと考える奴居るのかね

いるだろうな

言語とかライブラリの比較みてみ?

あの言語・ライブラリではこんなに面倒なコードが
たったこれだけのコード(単語数)で書けるって
話になってるから。
2017/07/02(日) 03:29:27.16ID:0SO6fajC
>>478
> なんでシンプルさの基準が単語数なのか本当に不思議な奴だ

単語数だけじゃないけど?

それ以外の条件が同じ時。
単語数が少ないほうがシンプルなコード


それ以外の条件っていうのは、単語の長さはどちらも同程度であること
一行の文字数はどちらも同程度であること
関数の行数はどちらも同程度であること
ファイル数やクラス数や関数数はどちらも同程度であること

それ以外の条件を同じか、同程度にした時
単語数が少ないほうがシンプルなコードになる。
2017/07/02(日) 05:05:29.89ID:mUyXxhhW
各「.」で何の型が返ってきているのか、実装を見ずとも自明になっている。

最悪でも、マウス当てただけで自明になる書き方。

これを守ってるほうが遥かに重要だわ。
2017/07/02(日) 05:55:04.26ID:X/s5VUlf
ああもうあなたが初心者であることはよくわかったので他のスレでやってくれ
https://mevius.2ch.net/test/read.cgi/tech/1475332848/
2017/07/02(日) 06:33:34.29ID:tl1wWlTJ
うますぎるプログラムはいけない
484デフォルトの名無しさん
垢版 |
2017/07/02(日) 12:23:01.69ID:Ey9UZy2f
>>461
確かにその文法欲しいな。
2017/07/02(日) 13:05:35.53ID:NbWg8gon
>>477
同意
プログラミングの難しさは設計の難しさ
コードの美しさは設計の美しさ

それが分かっている奴は
初心者が騒ぐ観点で騒がない
真顔で黙ってる

タイプ数が少ない?よかったね
単語数が少ない?よかったねえ
2017/07/02(日) 13:08:21.66ID:0SO6fajC
コードが美しい?よかったねえ
2017/07/02(日) 13:49:07.69ID:27xX9ykc
>>422
改善してほしいところさ。
Ruby を使いたいのに全然使いこなせる気がしない部分をなんとかしてほしいっていう要望は悪口なのか?
いや、ユーザーたちは本当にクソだと思わずに使ってんの?
2017/07/02(日) 17:59:14.19ID:NbWg8gon
既存の言語が気に入らないんなら
自分で作ってみればいいんじゃね?
クソじゃない言語とやらを
2017/07/02(日) 18:07:42.30ID:IGa4njyh
>>487
使ってて言うのならまだしも、10年使ってない人間が言ってもそりゃ悪口にしか聞こえないだろうよ
しかも10年使ってないのにRubyスレを覗いてるという粘着性の高さ
490デフォルトの名無しさん
垢版 |
2017/07/02(日) 21:49:13.80ID:19kDKEGS
>>487
Haskell良いぞぉ〜。
2017/07/02(日) 22:48:36.18ID:ynDhLM7Z
Java + Groovy = Kotlin

Groovy == Ruby

つまり、Kotlin は、Ruby, Groovy に静的型チェックを付けたもの。
型チェックがあるから面倒くさいが、型推論もある

または、Java に関数型を付けたものとも言える
2017/07/02(日) 22:51:40.39ID:WUsDB0eH
>>491
使ったことないでしょ君
2017/07/03(月) 00:51:18.19ID:6nx2OSAK
>>461
>デフォルトでindexを持って
それは思う

「with_index」って冗長だし
eachでもデフォで持ってて欲しい
2017/07/03(月) 01:32:13.92ID:95u0vCaW
デフォでindex持ってたらそれこそ冗長じゃないの
2017/07/03(月) 01:33:52.97ID:NVKo/d7Z
>>494
冗長であるとはどういうこと?
2017/07/03(月) 03:30:38.10ID:6nx2OSAK
>>494
たしかに記述が冗長か構成が冗長かだけど別に良くね
イテレータがインデックス持っててもおかしくない

配列はデフォで配列の長さ分かるじゃん
そんなようなもん
2017/07/03(月) 03:42:56.46ID:2SpTAV0H
構成が冗長ってどういうことだろう?
普通、冗長ってそういう意味に使わないよね?
2017/07/03(月) 10:06:01.55ID:looyCaxt
>>493
each_with_index は素の each に比べて 3~4 割遅い。
each のデフォルトで index を持つよりは、遅くても index が使いたいときに明示するという使い方の方がリーズナブルだと思うけど。
2017/07/03(月) 10:29:47.39ID:edaN+zHQ
でもそういう使い分けこそ、まつもとさんに言わせればムダなわけだし
あのひとは機械にできることはすべて機械にやらせるべし、って言ってるからね
コンパイラはインデックスを必要としているかどうか、判断できるわけだから
勝手に使い分けてくれればよいんじゃね?
てことでRubyを静的型にしてオーバーロードで解決すればよいだろう
静的型にするとコンパイル時に型チェックをさせることができるし
最適化もかけやすくなるし、入力補完との相性もよい
機械で出来ることがどんどん増えるから
まつもとさんの機械にできることは〜の考えによく合ってるね
2017/07/03(月) 11:00:51.38ID:looyCaxt
>>499

> あのひとは機械にできることはすべて機械にやらせるべし、って言ってるからね
発言を自分に都合よく拡大解釈してない?

> コンパイラはインデックスを必要としているかどうか、判断できるわけだから
あなたの脳内のコンパイラはそれができるみたいだけど、
現状のMRIにその機能は無いよ。

> てことでRubyを静的型にしてオーバーロードで解決すればよいだろう
> 静的型にするとコンパイル時に型チェックをさせることができるし
> 最適化もかけやすくなるし、入力補完との相性もよい
機械で出来ることがどんどん増えるから

現時点で解決したいならCrystal使ったほうがいいよ。
変数の型を変えると言う言語の根幹に影響する変更が受け入れられるとは思わないけど、あなたがそんなに強く望むのならコミュニティに参加して意見が通るほどの功績を積むのが最短の道。
501デフォルトの名無しさん
垢版 |
2017/07/03(月) 20:57:22.46ID:91Pqu4Id
>>500
久々に普通な常識を元にしたレスを見た
2017/07/03(月) 23:47:51.07ID:7Hia1uWl
まあ別にeachにインデックスを渡してても良かったと思うけどね
(3..9).each_with_index {|e| p e }
2017/07/04(火) 04:47:02.02ID:nYPV9UDZ
つーかeach_with_indexが長いから
each_iとかで良かったんじゃね?
極端な省略だけどto_iとかもあるから
2017/07/04(火) 10:42:41.42ID:olJiM2Cb
オブジェクト指向なんだからオブジェクトによって振る舞いが変わればよくね?
なんでこっちで使い分けなきゃならんの?
2017/07/04(火) 11:11:52.06ID:XKRg/8mz
最初に each_with_index つくったのがいまとなっては浅はか
もしかしたら当時 Enumerator がなかったんかもしれんけど
506デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:27:20.90ID:FYa81knm
それとは別でeach.with_indexもあるって言うね。。。
2017/07/04(火) 12:29:22.36ID:jC9x4mB4
JavaScriptみたいにcallback関数(ブロック)の引数の数で
挙動を変えられるようにできたら良いんじゃね?

つまり

[1,2,3].map(v => v) だったらインデックスなしのコードが実行されて
[1,2,3].map((v,i) => i + ':' + v) だったらwith_index相当
2017/07/04(火) 12:36:39.44ID:Qa2xT13J
話をぶった切るけど

Rubyで人工知能、それもワトソンのクローンを作りたいんだけど
Ruby界隈ではどうやって人を集めたら良い?
成果としてRubyの人工研究関連の書籍がだせるし、出来上がったソフトかそのサポートでビジネス出来る可能性あるし、何かの縁で研究関連の所と一緒に仕事できるかもしれないし、政経的な所に話を持っていける実績つくしで、
良いことばかりだからやってみたいんだけど

基本、金は出したくないけど、Rubyで大きな事がやりたい
2017/07/04(火) 12:37:00.52ID:XKRg/8mz
>>506
流れに逆らうけど勝手にindex乗るのはきもい
Enumerator#with_index
のみならよかったとおもってる
510507
垢版 |
2017/07/04(火) 12:40:29.48ID:jC9x4mB4
補足しておくとJavaScriptは

function foo() {}
function bar(i) {}
function baz(i,j) {}

foo.length => 0
bar.length => 1
baz.length => 2
のように関数定義の引数の数が取得できる

const hoge = (i) => i+1
hoge.length => 1
アロー関数でも使える

function map(callback) { console.log(callback.length + ' arguments') } みたいにしておくと

map(i => i+1) => 1 arguments
map((i, j) => i+1) => 2 arguments
map((i, j, k) => i+1) => 3 arguments
みたいに関数の中で、コールバック関数の引数の数で処理を変更することができる
511デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:40:38.40ID:Fv1Dj8Gj
>>508
人は金に群がるから、その性質を利用して人を集めるが良し。

ただし、若い人は、やり甲斐とか求める人も居るから、うまく説得
するのも良し。
512デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:42:55.91ID:Qa2xT13J
ワトソンの解説みたいなのをRubyでコード実装して試す本、
ってのなら割と興味もたれて売れると思うんだよ
どうかな?
513デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:43:23.19ID:Fv1Dj8Gj
>>508
ワトソンは厳密にはAIでは無い。
人口無能ってやつだ。基本、失敗した技術。
マーケティング的に成功している。
クイズの回答をさせるのとか、いかにも考えて居る風に装って、
実は探索を行うのだ。
514デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:44:13.45ID:Fv1Dj8Gj
>>512
Rubyで作る人工無脳、って本があったはず。
515デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:45:12.42ID:Fv1Dj8Gj
>>514
>Rubyで作る人工無脳
はじめてのAIプログラミング―C言語で作る人工知能と人工無能

こんなのもある。
516デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:47:14.56ID:Qa2xT13J
しってるしってる
だからワトソンのクローンをRubyでつくるんだよ

で、あの人工無能のどこに深層学習やら何やらの技術が使われてるかRuby使って解説する本を出すんだよ
2017/07/04(火) 12:47:34.81ID:jC9x4mB4
>>508
ワトソンよく知らないけど、これが本当なら泥臭いソフトだと思うわ
https://wirelesswire.jp/2016/11/57683/

> しかし、それは失望と呼ぶしかないものでした。
>  WatsonのAPIとして提供されているものは、「自然言語分類」
> 「検索およびランク付け」「文書変換」「会話」「音声認識」
> 「音声合成」といったもので、これは基本的にはディープラーニングとは
> 無関係な、既存技術の寄せ集めに過ぎません。もっというと、
> Watsonを有名にしたはずの、クイズに正解する機能すらありません。
> 少なくとも汎用的は皆無です。

人工無能でも膨大なデータを投入して、ちゃんとした
検索エンジンを使えば、それなりに使えるものができる。
みたいな認識。
518デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:47:46.71ID:Fv1Dj8Gj
>>512
ontrogy、オントロジーってのを学ぶのがよろしい。
AI冬の時代ってのがあって、ontrogyを追求した結果、だめだぁー、となって冬の時代に突入した。
2017/07/04(火) 12:51:53.36ID:jC9x4mB4
ワトソンは人工知能ではない
だが商業的には成功している
人工知能ではないが使える技術はある
使える技術=検索エンジン

↓ってことでこれなw

本当に必要ものは人工知能ではなくて検索エンジン [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498937148/

検索エンジンを求めている客に
人工知能ですよという言葉で近づいて
検索エンジンを売る商売w
2017/07/04(火) 12:54:36.48ID:2/r2iAfu
>>510
引数の数は取得できるし、この話はそういうことじゃなくて、引数の渡し方の問題
521デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:55:29.02ID:Qa2xT13J
先ずはワトソンを、組織的かつ学術的に解析するために、
資料集めたり研究者に聞きにいったりする必要があるんだけど、
一人でやるのとは違うから会社みたいに事務というか書類や議事といった形式をまとめないといけない

で、Rubyでやるわけだから誰かruby界隈での人の集め方知っているかな?って思いでレスしたんだ
出版社さんあたりが絡んでくれると、バックボーンができるから(確実に出版にまで漕ぎ着けられるから)うれしいんだけど
522デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:57:14.60ID:Fv1Dj8Gj
人工知能とは、Neural Net、しかも学習済みのNeural Net(スペル自信なし)なのだ。

NNの構造に、自己学習、つまり入力から入力を出力するNNを取り入れて居るところに、昨今のNNのbreak throughがある。

この認識でOK?エロい人?
523デフォルトの名無しさん
垢版 |
2017/07/04(火) 12:59:01.56ID:Fv1Dj8Gj
>>521
大学の図書室へ行ってまずは、文献調査するのが良いでしょう。
会社も交通費出してくれるでしょう。

少なくとも、二百人位の俺の会社は、文献調査に金出してくれるよ。
2017/07/04(火) 13:01:25.57ID:jC9x4mB4
>>520
mapはデフォルトでインデックスあり(with_index相当)であればいいのにって話じゃないの?

そしたらwith_indexは遅いって話が出たから、
ブロックの引数を見て、indexを参照しているときだけ
with_index相当にすれば、速度は遅くならないって話をしてるんだけど
525デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:02:50.26ID:Fv1Dj8Gj
>>521
あんたが、どういう組織に属し、これまでどの様な実績を積んできたか、知らんが、出版社に飛び込みで、話しをしに行ってみれば!

多分、鼻で笑われる。けど、それも良い経験だよ。
526デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:03:01.58ID:Qa2xT13J
そもそも人工知能研究ってその当代の計算機性能で出来る、自動で組み合わせて問題を解く研究なんだよ
でも計算機性能で無限じゃないからできることには制限がある
だから人の手等をつかって計算量を減らしたり人手で統計を用意したりして、計算機性能の低さをカバーしてきた
それが計算機性能があがっていきできる事が増えてきた、というのが現在
ワトソンでクイズに答えられるようにまなった

人工知能研究の成果で出来た物は本来はもう人工知能とは呼ばないんだけど、
マーケティング用語というか通りが良いから人工知能ってつけてるわけなんだ
527デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:13:51.50ID:1Tk0DRaF
ID変えてネガキャンする流れからは変えられたみたいだけど今度は人工知能に噛み付きだしたか
そんなに噛み付いて荒らすだけならrubyスレにくるな
rubyの興隆が気にくわないとか知ったことではない
2017/07/04(火) 13:26:47.51ID:2/r2iAfu
>>524
rubyでeachの速度なんて気にする人はwhile使うからそんなこと考えなくていいいよ
2017/07/04(火) 13:29:09.59ID:Qa2xT13J
Rubyで人工知能って書籍はすでにいくつかあるけど、
Rubyでワトソンを解説するってのは凄く面白いと思う
いままでワトソンの資料を個人的に集めて見てきたけど、
ワトソンをRubyで誰でも作れるようになれば、これってrailsの次のRubyブームにならない?
2017/07/04(火) 13:39:30.76ID:jC9x4mB4
>>528
俺もwith_indexなんかやめてJavaScriptみたいに
map(やそれに類するもの)は全てインデックスがあればいいと思ってるよ。
速度よりもシンプルさ、可読性のほうが重要
2017/07/04(火) 13:40:58.31ID:Qa2xT13J
深層学習はPythonが有名だけど、
みんながみんな深層学習じゃなくてワトソンのような、技術そのものじゃなくて実用できるものを作りたいんだと思う
だったらRubyで大元の部分をつくっちゃえば良くない?って考えなんだけど
532デフォルトの名無しさん
垢版 |
2017/07/04(火) 13:54:58.37ID:Fv1Dj8Gj
昨日と同じく、眠くなってきた。
カフェインを摂取した。
2017/07/04(火) 14:07:04.87ID:jC9x4mB4
>>531
そうするとRubyで?ことになるんだけどな。

なんでかっていうと、ワトソンみたい物を作る時、
「自然言語分類」にはどのライブラリを使うか?
「検索及びランク付け」にはどのライブラリを使うか?
「文書検索」には略
「会話」には略
「音声認識」には略
「音声合成」には略

これらのライブラリをRubyで再実装するわけじゃあるまい?
再実装するならRubyで作るって話でいいけど
そうでないなら何を組み合わせるか?って話で
検索エンジンであればSolrやElasticsearchを使いましょう。
とかになるだろうし、

Rubyで作るというよりか、既存のオープンソースの何かを使って
システムを構成しましょうって話になると思うよ。

Rubyで大本の部分を作るんじゃなくて、大本の部分はあるから
Rubyでそれらをつなぎましょう程度じゃね?
2017/07/04(火) 15:09:51.34ID:Qa2xT13J
深層学習という技術そのものにおいて相も変わらずPythonは有力な一つの候補だし、ネイティブな所は相も変わらずC/C++で書かれたライブラリがあるわけだけど、
(大勢の人がワトソンクローンを理解、組めるように)Rubyなら(コードを)書きやすい、書き換えやすい、(個人的に)図示しやすい
だからRubyで
という話なんだ

ライブラリの選択どうするの?本の構成どうするの?細部をどうするの?ってのは紙面に依るとしか言えない
ページをだいたいこのぐらい見積もるから、こういう構成で行きましょう、ここはこういう形で行きましょう、というのが一般的な普通の流れ
ページが無限ならそれこそRubyの内部の仕組みから全て書けるわけだけど、残念ながらページは有限、でもって何ページになるのかも未定の状態
要はページ数によって内容がダイナミックに変わってしまうという事
それに対して、ページ数やら構成を考えるのに、判断の元となるものが必要となる
個人で書ける本ならその人の持ってるあんちょこでも別段かまわないんだけど、じゃあ複数人でっとなった場合はその個人一人のあんちょこじゃ問題がある(「それって結局、君の場合でしょ?」で終わってしまう)
だからこそ決め打ちでは語れないし、判断の元になるものを"公"に"形式"をとって、(誌面に載るかどうかはおいて置いて)網羅的に準備しなければならないわけなんだ
決め打ちしてそれに基づいて必要とする資料だけを集めて済むなら万々歳なんだけど、そうはいかないんだ

で、Rubyを基本とするからRubyできてもらわなければ困る
だからRuby界隈での実動者が私を含めて必要になるわけなんだよ

自前で用意するものが出てくるかもしれないという話は、当然だけど結局は誌面やら規模やらで判断される
2017/07/04(火) 15:10:33.91ID:A9sYzzwp
NIH症候群にかかるのは企業の要職ばかりではない
フルスクラッチネイティブではない外部ライブラリ拡張ライブラリを「正しくない」と考えてしまうことは…どうしてもある
優れた使い心地のラッパーを作るということは元APIと主言語とUIのすべての理解と研究が必要なのだからもっともっと技術的に誇っていいのだけどもね
2017/07/04(火) 15:13:59.53ID:Qa2xT13J
やっぱりいつの時代も本を書く上ではページ数が全てだよ
2017/07/04(火) 15:18:01.70ID:JdC3mg/z
イテレータの美点は
今までつきまとってきた添え字文化を切り離したとこにあるんだよ
最大サイズ、インデックスの準備、インデックス操作、このへんは本質的じゃないよね
我々がしたいのはホントは、集まってるオブジェクト一個一個を触りたいだけだよねっていう

そのへんわきまえてるのがrubyだと思う
インデックスがデフォで付いてたりするのは原始人じみてる
538デフォルトの名無しさん
垢版 |
2017/07/04(火) 15:32:22.71ID:Fv1Dj8Gj
>>537
なるほど!
初めてeachを見た時、面食らったのを思い出した。
2017/07/04(火) 17:46:25.87ID:nYPV9UDZ
>>508
IBMがワトソンにどれだけ投資したかという話
タダで同じものを作るとは虫が良すぎる
2017/07/04(火) 17:48:12.89ID:nYPV9UDZ
>>513
ワトソンは人工知能でしょ

そこらへんのボットは人工無能だけど
ワトソンはクイズに答えたり
病気の治療見つけたりして有能だから
「無能」じゃないでしょ?
2017/07/04(火) 17:50:26.31ID:nYPV9UDZ
>>522
ニューラルネットだけが人工知能じゃないよ
NN系のディープラーニングの
取り上げられ方が目立つってだけで
定義にしちゃうのはただのミーハー
2017/07/04(火) 17:52:57.98ID:nYPV9UDZ
>>521
人を集める、特に企業と絡むっていうのは
先に一部でも成果を公開しないと難しい
向こう側にメリットがないでしょ?
2017/07/04(火) 17:57:26.81ID:nYPV9UDZ
>>529
>ワトソンをRubyで誰でも作れるようになれば
無理無理

誰でもワトソンは無理
誰でもボットなら可能

Rails本体を誰でも作るのは無理だろ
Railsを利用してブログを作るとかなら可能

だからAPIを使ってボットを作るみたいのなら可能
2017/07/04(火) 17:58:01.46ID:8gzuv+lo
「俺がRubyを使いたいから」で金が集まると本気で思ってるのかな
まあ国内技術を使うことが重要であるとか言ってうまく騙せば公的機関から引き出せるかもしれないけど
君のやろうとしていることは本質的には不必要なガラパゴス化を招き日本の衰退を加速させるだけの国賊行為であることを忘れないように
2017/07/04(火) 18:10:32.16ID:jC9x4mB4
>>537
インデックスそのものと、インデックスを使ったループは別だと思うよ。

ハッシュのmapでキーが取れるように、
配列の場合はキーの代わりにインデックスってだけだと思う。

キーとインデックスって本質的には違いはないでしょ?
2017/07/04(火) 18:13:20.70ID:jC9x4mB4
>>543
誰でもワトソンを作るは無理でも、
誰でも既存のオープンソースを繰り合わせて
ワトソン相当を作ることは可能だよ。

ただクイズ番組とかワトソンの成果っていうのは
ワトソンというソフトよりも、大量のデータを投入させた所にあるので、
仮にワトソンそのものを入手したとしても、クイズ番組優勝とかは無理だよ
膨大なデータをひたすら入力する地道な作業が必要
2017/07/04(火) 18:22:23.28ID:nYPV9UDZ
>>546
>ワトソン相当を作ることは可能だよ
甘く見過ぎ
そんな簡単ならIBMより先にもっとできてた

>膨大なデータをひたすら入力する地道な作業が必要
それもワトソンのうちなんじゃないの?

ゲームからデータ抜いたらゲームじゃない
知能から知識抜いたら知能じゃない
2017/07/04(火) 18:24:30.73ID:8gzuv+lo
>>547
ワトソンは知識はユーザーが与えるんだよ
単なる検索エンジンと思えばいい
2017/07/04(火) 18:25:37.93ID:Qa2xT13J
>>543
Rubyでワトソンを解説ってのがスッポ抜けてるけど大事なところだよ
2017/07/04(火) 18:26:26.94ID:nYPV9UDZ
>>548
ワトソンはたんなる検索エンジンじゃない
仕組みが似てる部分はあるけど
たんなる検索エンジンはクイズに答えられない

知識の与え方と引き出し方も
エキスパートシステムのうち
そこをすごく甘く見てる
551デフォルトの名無しさん
垢版 |
2017/07/04(火) 18:27:32.37ID:1Tk0DRaF
ネガキャンが人工知能に噛み付いてくたおかげでスレがいくらか平和になったな
相変わらずうざいけど
2017/07/04(火) 18:32:42.18ID:nYPV9UDZ
>>549
ワトソンは無理だから絵に描いた餅だよ

Rubyで人工無能みたいな本はあるし
その辺のラインが現実的だと思う
2017/07/04(火) 18:38:48.19ID:Qa2xT13J
ワトソンの解説をRubyのコードをつかって行うって事が重要なのに
ってなんか話が噛み合わないなと思ったら単にレスを適当にしか読んでなかったのか

納得
2017/07/04(火) 18:41:41.93ID:jC9x4mB4
>>547
> >膨大なデータをひたすら入力する地道な作業が必要
> それもワトソンのうちなんじゃないの?

そこに一般の人が考える人工知能の違いがあるんだよな。
大変な仕事をコンピュータが自動でやってくれるのと同じように考えてしまう。

人工知能は自動で知識をあつめてくれるわけじゃない。

コンピュータが利用できる形にデータ化されているものであれば
それを解析するのは得意だけど、そうなってないものを
データ化する作業っていうのは人間がやるしか無い。
2017/07/04(火) 18:45:16.48ID:nYPV9UDZ
>>553
あのね

WindowsみたいなOS、Googleみたいな検索エンジン、
作ったら大もうけできるのに何で寡占されてると思う?

そこまで行かなくてもRubyみたいな言語作ったら
解説本くらいは書けるだろうけど
Rubyと同じくらい普及してる日本発の言語はないよね?

なんでワトソンなら自分にもできると思っちゃうの?
2017/07/04(火) 18:47:18.87ID:nYPV9UDZ
>>554
違う違う

データを全自動で集めると思ってるわけじゃない
その「データ化する作業」も含めてワトソンでしょって言ってるの
2017/07/04(火) 18:48:27.80ID:jC9x4mB4
>>550
> たんなる検索エンジンはクイズに答えられない

だからクイズに答えれるように人間がデータを入れるんだよ。

クイズの多くは知識問題。
例えば総理大臣の名前とか。

ありとあらゆるクイズの問題と答のペアを登録していくことで
クイズ専用のデータベースを作る。

ウェブサイトの検索エンジンがクイズに答えられないので
データベースががウェブサイトだから。
ウェブサイトは人間用の文章がほとんどなのでクイズのデータとしては適切じゃない

だからクイズに適したデータベースを作り上げる。
そういう作業を人間が行うんだよ。

それを行える人間は知能があるということになるし、
人間の知能を使ってデータベース化すれば
人工知能とやらはデータベースを検索するだけでいい。
2017/07/04(火) 18:50:11.16ID:jC9x4mB4
>>566
> その「データ化する作業」も含めてワトソンでしょって言ってるの

人間が行う作業も含めて、ワトソンっていってる?
例えば自動車を運転する人間は、自動車の一部。みたいな
2017/07/04(火) 18:51:28.49ID:nYPV9UDZ
>>557
それは対話UIの部分を軽視してる

たしかにエキスパートシステムも
DBの問い合わせは行うが
たんなる検索エンジンとの違いは
対話システムを備えているところで
そこが思っているほどかんたんじゃないんだな
2017/07/04(火) 18:55:30.46ID:8gzuv+lo
IBMのビジネスモデルは基本的にパッケージ販売とSIなので、
学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ
IBMとしては、クソ高いパッケージとして買わせてサポートもがっつり付けてもらって、その上あわよくば下請人員まで投入して大規模案件を作りたい
だからワトソンはセルフサービスでなきゃいけないんだよ
応用として医療分野を執拗に推してるのも、医療分野はプライバシーの問題があるのでSaaSに食われにくいという面があるの
2017/07/04(火) 18:57:49.38ID:nYPV9UDZ
>>558
たとえばRubyは標準ライブラリまで含めて
みんなRubyとして使ってるでしょ?

Rubyのコアな言語の文法だけを模倣するなら
誰でもできるかもしれないが実用に耐えない

同じようワトソンのコアな検索部分だけなら
模倣できるだろうけど実用に耐えない

ワトソンなんて検索エンジンだから簡単だよって言うのは
Rubyなんてインタプリタだから簡単だよって言ってるのと同じ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況