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/06/30(金) 11:30:06.98ID:hBaGJvUf
>>425
> でも複数行のコメントアウトは面倒。

初心者スレということでいちおうマジレスしておくと
=begin
=end
で囲むと一挙にコメントアウトできる
430デフォルトの名無しさん
垢版 |
2017/06/30(金) 11:33:27.81ID:BBkM2EA1
>>429
たしか、こんなのも
__END__

以下の行は全てコメント!
うる覚えだが。
2017/06/30(金) 11:38:01.54ID:625dciv9
>>429
こんな糞みたいなの教えたって誰も使わない
2017/06/30(金) 11:45:54.89ID:flSVgAwO
>>429
すみません。知っているんですが、
jsとかみたいに/**/とかだと入力がラクだなーって話です。
2017/06/30(金) 12:42:16.16ID:UcGpMueB
>>432
メモ帳使ってるわけじゃないんだろうからそれぐらいショートカット使えば差はない
2017/06/30(金) 12:50:26.31ID:hBaGJvUf
タイピングの文字数に拘るあたりが初心者だよな
(↑それが悪いことだとは言っていないし、一切の悪意は無い)
プログラミングを指の労働と捕らえてるんだよな
2017/06/30(金) 13:04:45.36ID:mtvSOUWH
>>429
>>430
どっちもコメントアウト用じゃないから
2017/06/30(金) 13:09:33.76ID:UcGpMueB
>>435
=begin, =end は一時的なコメントアウトにはよく使うよ
2017/06/30(金) 13:35:43.48ID:2Da2vksV
>>434
それはMatz批判か?
処理系を黙らせるためだけの冗長な記述を強いられることは屈辱であると神が仰っている
2017/06/30(金) 13:40:13.66ID:625dciv9
そんなperlのパクリ機能なんかもう使ってる人いないよ
普通は#で複数行コメントアウトするようなエディタ使ってるでしょ
2017/06/30(金) 14:08:18.32ID:W0OUnv8/
黙らせるならexit!やな
2017/06/30(金) 16:49:14.50ID:tesV9X+3
一時的に処理から外したいときは「そういやRubyにも複数行コメントの記述法があったななんだったかな」と思いながら
#と方向キーを交互に連打してるかコメントリージョン機能を使ってるかどっちかだな
2017/06/30(金) 18:29:44.40ID:4uO/IbWe
atomやvscodeだったら Ctrl + / で行コメントの挿入削除
2017/07/01(土) 04:05:27.85ID:J52nGMUC
俺は if false 〜〜〜 else 〜〜〜 end を使ってる
あるいは後置 if false
元の処理を走らせる場合は否定演算子を付けて if !false みたいにしてるなあ
2017/07/01(土) 04:30:56.70ID:yR6MEKU9
>>442
それでは駄目なのだ
まあじきにわかる
2017/07/01(土) 05:26:51.20ID:PPsHHHSM
>>434
まったくその通りだな
「=begin」程度でタイプ数多くてダルいとか

Rubyは記述だと簡潔な方だし
コメントアウトを多用するなんて
書き方してたらそもそも筋が悪い
2017/07/01(土) 11:17:02.68ID:N+ZXroXE
>>414
爺なの?
2017/07/01(土) 14:26:38.71ID:R60vnDrO
同じ処理をさせようとしても
初心者が書くのと慣れてる奴が書くのとですでに差が出てる
a = ['a', 'b', 'c']
b = []
i = 0
a.each {|c| b << (i.to_s + c); i += 1}
p b

↑こーいう書き方する人ほどタイプ数に拘り
↓こーいう人はもはやそこでは騒がない

c = %w(a b c).each_with_index.map {|c, i| i.to_s + c}
p c
2017/07/01(土) 14:59:17.39ID:yR6MEKU9
いい加減壁に向かって物言うのやめたら
誰もそれを話題にしてはいないよ
2017/07/01(土) 15:48:19.58ID:qX8eRJNR
>>446
それはわかる
ダメな奴は抽象度を上げようとせずに同じことを短く書こうとする
地頭悪いのをプログラミングの小手先のスキルで誤魔化してる奴にありがち
2017/07/01(土) 16:44:27.93ID:R60vnDrO
>>448
そうそうw
なんかこう、間違った努力をしちゃうんだよねえ
2017/07/01(土) 19:39:10.28ID:QATpSz/4
>>443
駄目でもないのじゃ。
違う処理を簡単に試してみたいときなんかは、外したい部分にも最低限の文法チェックがかかるので、事故が少なかったりな。
451デフォルトの名無しさん
垢版 |
2017/07/01(土) 20:41:44.60ID:M8KylmXN
b = []
b << 要素

1つずつ、配列に追加していく処理だけど、
エラー処理などがいらないなら、簡潔に書くべき
2017/07/01(土) 21:37:44.67ID:sOThA7TG
>>446
> 初心者が書くのと慣れてる奴が書くのとですでに差が出てる

せやね

お前が書くと
c = %w(a b c).each_with_index.map {|c, i| i.to_s + c}

俺が書くと
c = %w(a b c).map.with_index {|c, i| i.to_s + c}

これはタイプ数の問題じゃねーよ?
配列から配列に変換して入れる処理で
eachって単語がでてくることキモいって話
2017/07/01(土) 22:38:49.78ID:M8KylmXN
関数厨は、Ruby・JS のスレにやって来て、

何でもかんでも、map を使って、1行で書いてしまうからなw
2017/07/01(土) 22:44:59.49ID:Tp0p2tiJ
>>452のようなことに特に興味がなくて
正直どっちでもよくね?
って考える普通の人はRubyを使わなくてもよいってことなんだよ
まさにこれがRuby
「タイプ数にこだわるのは初心者」
「そうそうそうなんだよね〜」
とか言いながら動的型言語を使うのって最高でしょ
2017/07/01(土) 23:45:31.46ID:N+ZXroXE
mapperかな
2017/07/01(土) 23:49:19.16ID:cxvWbv+r
いくらRubyのコード効率が良いと言っても可読性を犠牲にするつもりはないな
無用に行数を減らしたりオブジェクト名の長さを減らしたりはしない
そういう書き方をすると後で苦労するのは自分だし
2017/07/01(土) 23:54:52.06ID:sOThA7TG
>>456
可読性というのは読むべき「単語」を減らすものであって
行数を減らすことやオブジェクト名を減らすことは
単語を減らすことにはつながらない。

例えば行数を減らしたとしても、それが 空行や { などの
カッコだけの行を減らした所で単語数は変わらない。
むしろ空行がある方が読みやすい文章となることもある
名前も、短い名前にしても単語数は変わらない

単語数を減らすと結果的に行数が減ることはあるが、
行数を減らすことは可読性を上げる行為ではない。
458デフォルトの名無しさん
垢版 |
2017/07/01(土) 23:56:03.86ID:5xgWPcGQ
>>453
本当の関数厨は今時map程度に拘らんぞ。
どの言語でも採用されてるしな。

{|c, i| i.to_s + c }

のがどうにか出来ないか気になるw
2017/07/01(土) 23:56:04.59ID:sOThA7TG
ちなみにさっき書いたこれ。

c = %w(a b c).each_with_index.map {|c, i| i.to_s + c}
c = %w(a b c).map.with_index {|c, i| i.to_s + c}

下の方が「単語数」が減っている。
each with index map ・・・ 4単語
map with index ・・・ 3単語
2017/07/01(土) 23:57:42.07ID:sOThA7TG
>>458
できるぞ

c = %w(a b c).map.with_index {|c, i| "#{i}c" }
2017/07/02(日) 00:03:47.37ID:0SO6fajC
あ、間違った。こうなw

c = %w(a b c).map.with_index {|c, i| "#{i}#{c}" }

俺としては、なんでmapがデフォルトでindexを持ってないかのほうが気になるな。
JavaScriptならこれでいいのに

a = ['a', 'b', 'c']
c = a.map((v, i) => i+v)
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使うからそんなこと考えなくていいいよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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