タグ

ブックマーク / blog.asial.co.jp (132)

  • レコメンド – アイテムベース協調フィルタリング –

    こんにちは江口です。 今回は、先日社内勉強会で以下の内容について発表しましたので、ブログでも共有させて頂きます。 【概要】 ・アイテムベース協調フィルタリング(商品レコメンド) - アイテムベース協調フィルタリングを実装してみた - ユーザーが購入した商品の中からjaccard指数で類似商品を見つけ出す - 対象商品をベースに同じ商品を購入している別のユーザーが購入した別の商品をレコメンド - あとdjango使ってみた ▼技術要件 ・python 3.6.1 ・django1.9 ・herokuDB・・・heroku上はpostgress、localはsqlite3 ▼レコメンドアルゴリズムについて 今回試してみたのは、「アイテムベース協調フィルタリング」と呼ばれる、商品が主語となる簡易的なレコメンドアルゴリズムになります。 よく見る「この商品を買った人はこんな商品も〜」みたいにオス

    レコメンド – アイテムベース協調フィルタリング –
    oppara
    oppara 2017/06/03
  • Python x 自然言語処理でアシアルブログの単語ランキングを算出する

    conda 4.3.16 ->パッケージ管理に使用 spyder 3.1.2 -> IDE jupyter notebook 4.3.1 -> 対話式にコードを実行し、グラフ等も即時に可視確認できる 最初に結果です! ・処理概要 下記ソースコードにも記載してあるのですが、アシアルブログのTOPページ(http://blog.asial.co.jp/)から「/[0-9]{4}」形式のリンクのみをスクレイピングで抽出し、ブログの詳細記事をクローリングして全てのブログ記事からBODYタグを抽出して、さらにそこから全角の一般名詞のみを抽出してます。 ・考察 最終的にTF解析で上位10件を円グラフで頻出単語ランキングとして表示させています。 さすがOnsenUIの効果でしょうか。「温泉」が1位の143個でした! 2位の「アプリケーション」は汎用的すぎて弾いても良かったですね^^; コンポーネントは最

    Python x 自然言語処理でアシアルブログの単語ランキングを算出する
    oppara
    oppara 2017/04/16
  • Vue.js + vuexによるToDoアプリケーションの実装

    前々回の記事でLaravel 5.4 + Vue.jsの開発環境を構築し、前回の記事でLaravel 5.4によるWeb APIを作成しました。 今回は、作成したWeb APIを使用したToDoリストアプリケーションを、Vue.jsを使って作成します。 PHP側の積み残し はじめに、昨日のコントローラーを修正します。 もともと、ItemControllerのindex()メソッドは「Item::all()」メソッドで全てのアイテムを返していました。しかし、画面上に表示するのは未完了のアイテムだけです。そこで、index()メソッドを以下のように変更します。 <?php public function index() { return response(Item::query()->where('checked', false)->get()); } <?php public functio

    Vue.js + vuexによるToDoアプリケーションの実装
    oppara
    oppara 2017/03/21
  • Laravel 5.4でWeb APIを作る

    前回の記事では、Laravelフロントエンド開発を行うための開発環境の作り方を解説しました。今回は、LaravelでWeb APIを作る方法を解説します。 データベースの準備 アプリケーションのデータはデータベースに保存するようにしたいので、セットアップを行います。 Laravelアプリケーションを作成すると、以下の値でデフォルトの接続情報が作成されます。 データベース: MySQL データベース名: homestead ユーザ名: homestead パスワード: secret ローカル開発環境にMySQLがインストール済みなら、上と同じ条件で新しいデータベースを作成するのが手軽です。 手元の環境にMySQLをインストールしたくない、といった場合には、開発用VMのLaravel Homesteadを利用するのが良いでしょう。 DBへの接続情報は、アプリケーションのルートディレクトリの「

    Laravel 5.4でWeb APIを作る
    oppara
    oppara 2017/03/16
  • Laravel 5.4で Vue.js開発環境を手軽に作る

    上記コマンドを使用すると、現在のディレクトリに「sample」という名前のディレクトリが追加され、その中にLaravelアプリケーションが作成されます。 作成直後のディレクトリ構造は以下のようになります。 $ tree -L 1 . ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── package.json ├── phpunit.xml ├── public ├── readme.md ├── resources ├── routes ├── server.php ├── storage ├── tests ├── vendor └── webpack.mix.js 10 directories, 8 files

    Laravel 5.4で Vue.js開発環境を手軽に作る
    oppara
    oppara 2017/03/15
  • WebdriverIOを使ってみました

    最近、「WebdriverIO がいい」という話を耳にしたので使ってみました。 軽く実案件の自動テストにも組み込んでみたのですが、かなり使いやすいと感じたので簡単に使い方をご紹介します。 WebdriverIOとは UI操作を自動化するためのJSライブラリです。(執筆現在の最新バージョンはv4.2.8) ブラウザ操作を同期的に記述でき、APIもシンプルに記述できるよう配慮されているため、 複雑になりがちなUI操作のテストコードをかなりシンプルに記述することができます。 構成 今回は以下の環境・バージョンで試しました。 OS : Mac OS El Capitan 10.11.6(15G31) NodeJS : v6.4.0 Chrome バージョン 52.0.2743.116 (64-bit) webdriverio : 4.2.8 selenium-standalone : 5.6.1

    WebdriverIOを使ってみました
    oppara
    oppara 2016/09/27
  • Lebabを使ってECMAScript6を体験しよう

    新しいJavaScriptであるECMAScript6(以下ES6)はすでにnode.jsをはじめとする幾つかの環境で使えるようになっています。クラスやimport、Promise、テンプレート文字列など便利な機能がたくさんありますが、なかなか使う機会に恵まれないのではないでしょうか。 そこでよく使われているのはBabelで、ES6で書いたコードを従来のJavaScriptであるECMAScript5(以下ES5)に変換してくれるソフトウェアです。Babelを使うことによって、コーディングは先進的なES6で行いつつ、実際の利用はES5で幅広いブラウザに対応させると言った利用ができます。 今回はその逆で、すでにあるES5のコードをES6に変換してくれるLebabというソフトウェアを紹介します。LebabはBabelを逆から読んだ名前になっています。 Lebabの使い方 Lebabはnpmを使

    Lebabを使ってECMAScript6を体験しよう
    oppara
    oppara 2016/04/08
  • Cordova/ReactNativeアプリのライブアップデートを実現するCodePushを試す

    Monacaアプリをはじめとする、いわゆるCordovaアプリはハイブリッドアプリと呼ばれる仕組みをとっています。それはネイティブコードでHTML5アプリをラッピングしているのですが、HTML5/JavaScript/スタイルシートの部分についてはコンパイルされていません。つまり、動的に差し替えることができれば、アプリストアによる審査やアプリのアップデートを必要とせず、コンテンツを差し替えることができるようになります。 そうした機能はMonacaのエンタープライズ版で提供しているのですが、今回はMicrosoft社がリリースしたCodePushを使って同様の操作を試してみたいと思います。 事前に必要なもの CodePushはNode.jsを使いますので予めインストールされていることとします。また、今回はCordovaアプリを使いますので、

    Cordova/ReactNativeアプリのライブアップデートを実現するCodePushを試す
    oppara
    oppara 2016/04/02
  • 色の処理に特化した軽量ライブラリ「Chroma.js」

    こんにちは、古見澤(コミザワ)です。最近は寒いですね。 自宅に加湿器を導入して潤いが増した一方、結露が酷くて窓際や玄関がカビそうで困ってます。 さて今回は Chroma.js という色に関するJSライブラリに触れる機会があったのですが、日語の記事が殆ど見つからなかったため、この紹介をしようと思います。 Chroma.js とは 色を補正したり、色空間の変換をしたり、カラースケールを設定して色を得る事ができる、色に関する振る舞いに特化した軽量(32.8 KB)なJSライブラリです。 多くの色空間に対応しており、CSSJavaScriptで扱いやすい形で色情報を取得することができます。 ソースはgit上にあり、ライセンスは BSD license です。 Chroma.js サンプル 下の例は色の補正機能を使い、X11カラーのpink(#ffc0cb)をベースに、明るさを下げ、彩度を上げ、

    色の処理に特化した軽量ライブラリ「Chroma.js」
    oppara
    oppara 2016/02/04
  • jQueryから離れるためのJavaScript代替ライブラリまとめ

    jQueryは便利すぎて、ついつい他のフレームワークを使いながらも一緒に組み合わせて使ってしまったりします。その結果として読み込むサイズが肥大化したり、動作が重たくなったりします。特にスマートフォンのようにリソースがデスクトップほど潤沢でない場合は顕著です。 そこでjQueryから離れて代替ライブラリを使ってみましょう。多くのライブラリはjQueryを踏襲して似たような使い方ができるようになっています。 Minified.js jQueryのようにDOM操作、アニメーション、イベント、HTTPリクエストをサポートしています。また、コレクション、日付や数字のフォーマット、テンプレートといった便利ユーティリティも備えています。 サイズは4KB(ミニファイ&Gzip)で、jQuery 2.1.4の29KBに比べて大幅に軽量です。 Minified.js - A Truly Lightweight

    jQueryから離れるためのJavaScript代替ライブラリまとめ
    oppara
    oppara 2015/12/29
  • SassとLESSの違い ー CSSプリプロセッサ入門 ー

    豊富な機能がある CSSファイルの自動整形機能 コンパイル時にnested、expanded、compact、compressedからインデント形式が選択できます。上のscssをコンパイルした場合でそれぞれどうなるのかを見てみます。 nested

    SassとLESSの違い ー CSSプリプロセッサ入門 ー
    oppara
    oppara 2015/12/11
  • Symfonyの歩き方/5分でわかるSymfony Best Practices

    この記事はSymfony Advent Calendar 2015 10日目の記事です。前日の記事はtsuboさんの「簡単デバッグ」でした。 こんにちは。宇都宮です。今日は、社内勉強会で使用した、Symfony入門者向けの資料を共有します。 Symfonyの歩き方 Symfonyの学習方法について、特に公式ドキュメントの読み方に焦点を当てています。 Symfonyの公式ドキュメントは、Symfonyの学習リソースとして第一級の資料ですが、量が多く、初心者のうちはどのドキュメントから読めばいいか分からないと思います。膨大な公式ドキュメントのうち、どの文書を優先的に読めばいいのかわかれば、効率的に学習していくことができます。 5分でわかるSymfony Best Practices Symfony公式ドキュメントの中で、The Symfony Bookと並んで重要なのがSymfony Best

    Symfonyの歩き方/5分でわかるSymfony Best Practices
    oppara
    oppara 2015/12/11
  • タスクランナーとの親和性を向上。AppiumをNode.jsで動かす

    前回までのコードはRubyで書いていましたが、MonacaアプリはHTML5/JavaScriptが主な利用言語になります。そこで今回はアプリを動かすスクリプトをNode.jsベースに書き直してみます。 これがうまく動けば、Gulpのようなテストランナーと組み合わせることで、コードの変更からテストまでがとてもスムーズになるはずです。DevOpsを積極的に進める上でも役立つのではないでしょうか。 Appiumのインストール、起動までは前回までの記事を参照してください。 Node.jsの設定 Node.jsについてはあらかじめインストールされていることとします。まだ未インストールの方はNode.jsよりダウンロード、インストールしてください。 まずテストスクリプトを書くフォルダを作成します。

    タスクランナーとの親和性を向上。AppiumをNode.jsで動かす
    oppara
    oppara 2015/11/05
  • MonacaアプリのUIテストに。Appiumを試す(Android編)

    前回のiOSシミュレータに続いて今回はAndroidエミュレータを使ってAppiumを試してみたいと思います。AppiumはWeb開発時のUIテストでよく知られているSeleniumをiOS/Androidアプリに対応させたソフトウェアです。 今回はこのAppiumをMonacaアプリ(Android)で動かす方法について紹介します。 CLI版Monacaの準備 Appiumはローカルで動かしますのでMonaca.ioではなくCLI版のMonacaを使います。そのためnode.js/npmはインストールされているものとします。

    MonacaアプリのUIテストに。Appiumを試す(Android編)
    oppara
    oppara 2015/10/27
  • MonacaアプリのUIテストに。Appiumを試す

    アプリのテストを行う方法は幾つかあります。まず機能レベルでのテストを行うユニットテストがあります。また、サーバを使っている場合は負荷テストを行うこともあるでしょう。しかしこれらのテストだけでは分からない、実際の操作を通じて意図した通りに動いているか確認するUIテストがあります。アプリにおいてはUI/UXが大事なので特に重要なテストです。 Webの世界ではUIテストを行う仕組みとしてSeleniumがよく知られています。それをiOS/Androidアプリに対して適用したのがAppiumです。 今回はこのAppiumをMonacaアプリで動かす方法について紹介します。 CLI版Monacaの準備 Appiumはローカルで動かしますのでMonaca.ioではなくCLI版のMonacaを使います。そのためnode.js/npmはインストールされているものとします。

    MonacaアプリのUIテストに。Appiumを試す
    oppara
    oppara 2015/10/27
  • http://blog.asial.co.jp/1416

    http://blog.asial.co.jp/1416
    oppara
    oppara 2015/07/13
  • Monaca/Cordovaですぐに使えるアニメーションライブラリまとめ

    ハイブリッドアプリ開発でも利用出来る、JavaScriptCSSのアニメーションライブラリを集めてみました。 最近ではCanvasやWebGLを利用したアプローチもあると思いますが、ちょっとしたUXを作るにはライブラリが大きすぎます。開発にインパクトを与えず、既存の技術で対応でき、さらにネイティブライクである点をポイントにまとめてみました。 jQueryのanimation代替え系 Velocity.js jQueryの$.animate()と同等のAPIを持ちながらjQueryには依存しない、高速アニメーションライブラリです。既存コードの「$.animate」を「$.velocity」とするだけでも運用が可能とあるので、いま速度に悩まされている方は、一度こちらを試してみてはいかがでしょうか。

    Monaca/Cordovaですぐに使えるアニメーションライブラリまとめ
    oppara
    oppara 2015/07/03
  • PHPで日付時刻の処理を書くなら Carbon がおすすめ

    どうも、筋トレにハマっているたきゃはしです。 日はPHPにおける日付時刻のライブラリについて書いていきたいと思います。 突然ですが、日付や時刻が絡む処理って意外とやっかいだと思いませんか?おそらく皆さんもいくつか思い当たるフシがあるかと思いますが、そんなやっかい事も Carbon(カーボン)を使えば解消できるかもしれません! Carbon - A simple PHP API extension for DateTime. Carbon とはPHPのDateTimeクラスを継承して拡張された日時操作ライブラリです。 「Carbonってどうなの?流行ってるの?」という方向けに予め補足致します。 Carbonはすでに人気のフレームワークに統合されていたり、GitHubで☆3000に迫る評価もありますのでDateTimeライブラリとしてデファクトになるんじゃないかと予想できます。 ではインスト

    PHPで日付時刻の処理を書くなら Carbon がおすすめ
    oppara
    oppara 2015/05/18
  • Monacaアプリ(iOS)をネットワーク経由で配布する方法(In Houseビルドについて)

    開発したアプリをストアに公開せず、複数の人たちで使う方法としてはAdHocビルドとIn Houseビルドがあります。不特定多数という訳ではありませんので限られたメンバーや社内利用でのビルドになりますが、逆にその制限が目的に合っている場合も多いでしょう。 そこで今回はMonacaアプリを特定利用者に対して、自前のサーバから限定配布する方法について紹介します。 AdHocビルドとIn Houseビルドの違い まずAdHocビルドとIn Houseビルドの違いについて紹介します。 Ad Hocとは限定目的という意味になります。そのためAdHocビルドされたアプリは限定目的のためのアプリと言うことです。この場合、評価目的配布になります。AdHocは最大100台までの配布が可能です。そしてデバイスを追加するごとにUDIDを登録したり、プロビジョニングファイルの更新、リビルドが必要になります。 In

    Monacaアプリ(iOS)をネットワーク経由で配布する方法(In Houseビルドについて)
    oppara
    oppara 2015/05/18
  • ng-japanに参加しました

    こんにちは。宇都宮です。今回は、週末に参加したイベントのレポートです。 3/21(土)に、ng-japanという日初のAngularJSのカンファレンスが開催されました。会場は渋谷マークシティ13Fにある、サイバーエージェントさんのセミナールームでした。 今回のカンファレンスは、スピーカーにAngularJSのコアチームのメンバーが3名いるのが最大の特長でしょう。当然トークは英語なのですが、英=>日の逐次通訳付きなので、英語が苦手な人でも大丈夫なカンファレンスでした。 参加者の最大の関心事は「Angular 2はどうなるのか?」という点にあったと思います。私自身は、今回のカンファレンスに参加して、Angular 2について前向きな気持ちになれました。 以前は、「Angular 1系から2系への移行は無理」「1系はあと2年くらいでサポート終了」と思っていましたが、1系から2系へはアップグレ

    ng-japanに参加しました
    oppara
    oppara 2015/03/25