UiPathでセレクターに変数を使う
セレクターに変数を使いたいときって、結構ありますよね。
今回は↓のようなエキサイトニュースで芸能カテゴリをクリックするという簡単な処理で考えてみます。
1. 芸能カテゴリのセレクタを変数に代入して実行する。
まず、クリックアクションで芸能カテゴリのセレクタを拾ってきます。
すると、だいたい↓のようなセレクタになっていると思います。
次に、セレクタを変数に代入してみます。
←画像のような感じですね。
右辺は↓です。○を付けた"芸能"を変数に置きたいです。
とりあえず、これでまず実行してみるとよいと思います。しっかりクリックされれば第一段階はOKです^^
2. "芸能"を変数に格納する。
こんな感じで'芸能'を文字列型で変数にします。(シングルクオートはセレクタ指定に使う際の仕様です)
次にselector変数に実際のセレクタを代入していきます。
←こんな感じですね。右辺は↓です。
これで完了です!
このselector変数をクリックアクションのセレクターに指定してください。
- クリックアクション
これで完了!
AI(機械学習, ディープラーニング, 強化学習)を改めてまとめてみる
この記事では、AI技術のうち、機械学習, ディープラーニング, 強化学習に絞って改めて解説します。また、中学生でも理解できるような簡単な言葉を使うよう努力しています。
まず最初に "AIとは" ということですが,
そして、AIには主に次の3つがあります。
これらを一つ一つ解説し、またそれぞれの違いや使い分けを考察してみようと思います。
1. 機械学習
機械学習を一言で説明すると、
これだけじゃ分からないですよね...笑
もう少し詳しく説明します!
まず、機械学習は教師あり学習と、教師なし学習に分けられますので、それぞれについて簡単に説明していきます。
1-1. 教師あり学習
教師あり機械学習とは、学習データと呼ばれるデータを用意して、それに基づいてデータの分類を行っていく手法です。
例えば、犬もしくは猫が写った画像を読み込んだとき、それぞれの画像が犬と猫のどちらに分類できるのかシステムで自動判定させたい場合などに用いられます。
もっと噛み砕くと、子供に「あれが飛行機で、あっちがヘリコプターだよー」と教えたら、次に見たときに飛行機とヘリコプターを区別できるのと同じような感じです。
1-2. 教師なし学習
教師なし機械学習とは、学習データを用意せず、分類したいデータそのものをその場でクラスタリングしていく。
例えば、
- 顧客データのセグメントなど、どのように場合分けをしたら良いのかわからない
- 分類カテゴリが多すぎる場合
こんな状態なデータだとむしろ人間の方が困ってしまいますよね?笑
そんなときに使います!
2. ディープラーニング
次にディープラーニングです!
ディープラーニングとは、機械学習を発展させたもので、機械学習の一部に含まれます。
2-1. ディープラーニングと機械学習の使い分け
まず、ディープラーニングはデータが大量にある場合でないと使えません。なので、データが少ない場合は従来の機械学習を使うことになります。
また、数値データの場合も機械学習で十分に対応できるので、機械学習を使います。
それ以外の場合ではほとんどディープラーニングを使うと考えてよいでしょう。
2-2. ディープラーニングと機械学習の違い
ディープラーニングと機械学習の決定的な違いは、データを区別するための「目のつけどころ」をAI自らが判断し、その性能を向上させていくことだと考えます。
噛み砕くと、高IQを持った子供が、大人が見ていないところで一人でに賢くなっていくようなものと同じ感じだと思います!
また、従来の機械学習ではできなかったことの例として、人間が言語化できなかったものが挙げられます。
例えば、ファッション系ECサイトなどでのユーザーの服や靴の好みなどは、言語での表現が難しいです。しかし、これらもディープラーニングでは、ユーザーがどの商品をクリックしたかという情報を元に、そのユーザーの好みに合いそうな商品を自ら絞り込んで提案してくれるのです!
このように、従来の機械学習は人間を「知能」で超えることはありませんでしたが、ディープラーニングの出現によって、こちらが予測していなかった価値を見出すことが可能となり、やっと文字通り「人工知能」っぽくなってきたと言えるようになりました。
3. 強化学習
データをそもそも用意しない。
その場で「行動→評価→修正→...→行動→評価→修正」と繰り返していくこと。
例. ロボットの制御(ルンバなど)、ゲーム(パックマンなど)
参考
https://innovation.mufg.jp/detail/id=93
rubyで配列のブロック処理にmapメソッドを使う
以前は配列にブロック処理をする際はほとんどの場合でeachを使っていたのですが、このmapメソッドを知ったときは目から鱗でした。
mapメソッドとは
mapメソッドは、各要素に対してブロックを評価した結果を新しい配列にして返します。
例えば、次のように配列の各要素を10倍した新しい配列を作るコードがあったとします。
このような処理にmapメソッドを使うと
このように3行で書けます。
mapメソッドを使うと、そのブロックでの戻り値を配列要素とする新しい配列を作成するので、それをそのまま新しい変数に代入することができます。
このように空配列を用意して、他の配列でループ処理した結果を代入していくような処理はよくあります。こういう時はmapメソッドを使った方が良いです。
その他の便利なメソッド
selectメソッド
selectメソッドとは、各要素にブロック処理をし、その戻り値が真の要素だけを集めた配列を返すメソッドです。例えば次のようなコードで、偶数だけを集めた新しい配列を作れます。
rejectメソッド
rejectメソッドは、偽の要素だけを集めた配列を返すメソッドです
↓参考にした書籍です。
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで
少数の丸め誤差をまとめてみる(ruby)
少数を使ったプログラムでたま〜にバグを生み出してしまってイライラしていたので、まとめてみました。
なぜこんなことが起きるのかという話は情報工学の分野になるので少々割愛しますが、要は我々人間は数字を10進数で捉えますが、コンピュータは2進数で全てのデータを捉えていて、そこにギャップが生まれています。(詳しく知りたい方は基本情報技術者試験の勉強をしてみてください!)
これによって、if文などで「あれ〜?」みたいなことになる初心者プログラマーがかつての自分でした...
- 解決策
Rationalクラスを使いましょう!
これによって、無限小数となっていた少数が有理数(分数)で捉えられるようになります。
これでもう大丈夫!
railsにmysql2を入れるところでハマった
mysqlがインストールできません
普通にgemに gem 'mysql2', '>= 0.4.4', '< 0.6.0' と書いて、 bundle installするところだったんですよね。
こういう感じでエラーが出てきました。
とりあえず赤文字の分に従って sudo gem install mysql2 -v '0.4.6'というのを実行します。
すると、
またこのようなエラーが出てきました。
もう途方に暮れてしまいそうでしたが、色々とググってみると同じような人がたくさんいて、その中でも以下のコマンド
こちらで解決している方がたくさんいました。
しかし、僕の場合、また新たなエラーが出てきました。。。
「なんでだろ..」
とか思いながらさらにググり進めると
ビルドする際にopensslのパスがビルドの時に必要で、LDFLAGSとかCPPFLAGSとかにパスを追加する記述が必要、などなど、出てきました。
で、そちらを踏まえたコマンドがこちら
こちらでパスを通し、
改めて、 sudo bundle installしてください。
ここで、sudo をつけるのを忘れずに^^
こちらでmysqlが入りました!!
参考サイト:
RailsにMySQLを導入したらかなりハマった件について | 大学生Webエンジニアの記録
macOS で bundle install 時に mysql2 のインストールに失敗した | Lonely Mobiler
MacBookAir 2018 ゴールドを買った
MacBookAir 2018 ゴールドを買いました。
テーブルに置いてみた感想としては
薄くて軽くてスリムでかわいいいヽ(^Д^*)
と、思いました。
↓以下スペックです。
色: ゴールド
OS: MacBookAir
CPU: 1.6GHzデュアルコア Intel Core i5
メモリ容量: 8 GB
HDD(SSD)容量: 256 GB
重さ: 1.25 kg
ディスプレイ: Retina 13インチ
こんな感じですね。
値段もあまり変わらないMacBookProでCPUが2.4GHzくらいあるやつがあったので、どっちを買うか一瞬だけ悩みましたが、まぁやっぱり見た目がとてもかわいいAirのゴールド一択でした。
これから末長く使っていくパートナーにすることを考えると、やっぱり外見が一番大切ですよね!
見た目が気に入らないと愛せないですよ!笑
cssだけでアコーディオン表示
HTML
上記のコードのみで、
ボタンクリックで姉妹要素がスルスルっと出てきて、同時にボタンのデザインも⬇︎から✖︎に変わる。
参考サイトはCSSだけでアコーディオンを作る方法(レスポンシブ&矢印付)です。