文書の類似度を計算する方法に「コサイン類似度」を用いる方法があります。 これは、出現する単語を出現回数などで数値化して、空間ベクトルに変換した上でベクトル同士の類似度を計算する、という手法です。 コサイン類似度 http://www.cse.kyoto-su.ac.jp/~g0846020/keywords/cosinSimilarity.html 最近、このコサイン類似度を使って、似ているデータを検索するWebアプリを試しに作っていたのですが、ふと、 「このコサイン類似度を使ったソート処理をPostgreSQLでどのように実装するともっとも高速な実装になるのだろうか。また、現実的なパフォーマンスを考えた時にデータ量や次元のサイズはどこまで増やせるのだろうか」 ということが気になりました。 PostgreSQLは、その拡張性の高さがウリの一つですが、そのため「UDFを作る」ということを考え
はじめに この記事はByebug(バイバグ)というgemを使ったデバッグ方法を説明するチュートリアル記事です。 JavaやC#のようなコンパイル型の言語ではEclipseやVisual StudioのようなIDEを使って開発することが主流です。 なので、自然とIDEに標準装備されているデバッガを使ってステップ実行したりすることが多いと思います。 一方、RubyではRubyMineのような有料IDEもあるものの、IDEではなくテキストエディタを使って開発している人の方がまだまだ多いと思います。 そうすると、初心者の方はなんとなく「Rubyでデバッガを使ってデバッグするのは無理なのでは?」と考えてしまう人も多いかもしれません。(僕は初心者の頃そう思ってました・・・。) ですが、そんなことはありません! RubyでもIDEを使わずにターミナル上でデバッガを使ってデバッグすることは可能です。 とい
はじめに LivesenseAdventCalendar 2016 の20日目を担当する @naotaka1128 です。 現在、転職会議という転職クチコミサービスのデータアナリストを担当しております。 転職会議は会社のクチコミが数百万件集まっている日本最大級の転職クチコミサービスです。現状はクチコミや評点を表示しているだけなのですが、今後はクチコミを自然言語処理などで分析して今までは手に入らなかったような有益な情報を世の中に提供していきたいと思っております。 今回はその取っ掛かりとして word2vec および doc2vec という自然言語処理の技術を用いてクチコミを分析し、会社の分類などを行ってみようと思います。 使用する自然言語処理技術 word2vec 昨今、word2vecという自然言語処理の技術が話題です。ご存じの方も多いかと思いますが、大量の文章をもちいて単語をベクトル表現
このポストは Inside of Deep Learning あるいは深層学習は何を変えるのか から分割したものです。全体があまりに長くなってしまったので、改善手法についても別のページにしました。 DL(ディープラーニング)の性能を改善していくポイントを駆け足で見て行きましょう。 学習データの追加、改善 DLシステムの性能を上げるためにはためにはより沢山の学習データが必要と言われています。例えば下記の図は、顔のパーツやバスの認識について学習データを増やすほど性能が上がるとした論文のものです。 Do We Need More Training Data? 画像であれば左右、上下、および上下左右に反転させた画像を使ってどちらを向いていても正しく特徴を取れるようにしたり、あるいは少し拡大したりノイズを混ぜるなどしてデータを水増しする手法がよく使われます。ユニークなのは例えばCGを用いて画像を作成
webpack2 に最近移行しました。 その時の知見とせっかくなので tree shaking が実際に中でやってることを追ってみたので紹介。 webpack2 移行時の注意 基本的にはほぼここに書いてあるとおり。 Migrating from v1 to v2 かいつまんで説明すると、configファイルの書き方がガラッと変わって、 module.loaders が module.rules になったり、 resolve.root がなくなって resolve.modules に変わったり。この辺の書き換えは割りとすんなりいくはず。 辛いのはpostcss周りのオプションの渡し方辺り。これまではconfigのrootにpostcssプロパティを用意してそこに記述できたが、その記述はできなくなり、 webpack.LoaderOptionsPlugin 経由で渡すか postcss.con
年末に Language Modeling with Gated Convolutional Networks が一部界隈でバズったこともあり、CNNを用いた自然言語処理が注目を集め始めています。今年の後半あたりには、派生手法や関連手法が多く登場していくのではないかと思われます。 CNNはRNNに比べて並列処理に優れているため、処理速度が圧倒的に速いという利点がありますが、時系列データの処理に特化したRNNと比べると、特に言語モデルにおいては最終性能がやや劣っているという理解が一般的でした(テキストクラシフィケーションではタスクによってはCNNのほうが性能がいいものもありました)。 Gated Convolutional Networks では、Gated Linear Unit および Residual 層を利用し学習を効率化することにより、WikiText-103 のタスクで stat
どうも、文字列大好き @hdbn です。「文字列アルゴリズム Advent Calendar 2016」 には間に合いませんでしたが、1月10日は「糸 (string) の日」ということで文字列 (string) アルゴリズムの記事を書くことにしました。この記事では文字列照合アルゴリズムの中で最も美しいアルゴリズムの1つである Crochemore-Perrin のアルゴリズムを紹介します。 アルゴリズムの正しさの証明はほぼ元の論文をなぞっていますが、説明を簡単にするために計算量に影響を与えない範囲でオリジナルのアルゴリズムから少し変更しています。計算量の概念など、アルゴリズムの基礎的な知識があれば読めるような内容にしているつもりですが、分かりにくいところなどあれば補足しますのでコメントください。 それでは文字列の周期性が織り成す不思議ワールドをご堪能ください。 概要 解く問題は以下の文字
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く