タグ

algorithmとjavascriptに関するmanabouのブックマーク (8)

  • kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする

    azu/text-map-kuromoji: テキストを形態素解析した結果とテキストの関係をビジュアライズするエディタというツールを作った話。 くだけた表現を高精度に解析するための正規化ルール自動生成手法という論文誌では、「ヵゎぃぃ」,「ゎた Uゎ」みたいな普通の形態素解析では未知語として検出されるものをどうやって正規化していくかという話が書かれていました。 これを読んでいて面白かったのは形態素解析をした結果の未知語となった部分と穴埋め的にパターンを作って、そのパターンにマッチする同じようなテキストを探すというアプローチでした。 プログラミング言語と違って、大抵の自然言語パーサはパース失敗ではなく、単なる未知な言葉として検出されます。 また、その未知な言葉は常に増えていて、さきほどのくだけた表現を高精度に解析するための正規化ルール自動生成手法によると手動では登録できない増加量らしいです。

    kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする
  • JavaScript - Data Structures(Filtering Values) | Kamimura's blog

    JavaScript - Data Structures(Filtering Values)

    JavaScript - Data Structures(Filtering Values) | Kamimura's blog
  • SharedArrayBufferとAtomics APIについて - JS.next

    概要 JSで大きな処理を効率良く捌きたい時、今までもWorker等でスレッド立てて処理を分割する事はできたが、 スレッド間のやり取りの方法は制限されたものしかなく、バッファを共有することもできなかった。 そこで新しく導入されたSharedArrayBufferを用いると、スレッド間で共同利用できるバッファを作る事ができる。 記事更新履歴 ※この記事はV8が仕様の新しいバージョンを実装するのに合わせて断続的に更新していきます。 [2016/07/19] V8の半年ぶりの新仕様追従に対応 [2015/09/30] 公開 通常のArrayBufferとの比較 前準備: // メッセージを受け取ると渡された型付配列のインデックス0を123にするWorker w = new Worker(URL.createObjectURL(new Blob([` self.onmessage = e => {

    SharedArrayBufferとAtomics APIについて - JS.next
  • マインスイーパのモデル化と解法 - Qiita

    #はじめに マインスイーパをアルゴリズムで解くことができないかを考察してみた。 みなさんご存じの通り、マインスイーパは常に確実に解けるわけではなく、確率的にしか解けない場合もある。ここで、マインスイーパを解くアルゴリズムは、以下の2つに分けることができる。 確実に分かる部分のみを解くアルゴリズム。解けない部分は人の手か、乱数による選択や別のアルゴリズムの助けを借りる必要がある。 できるだけ高い確率で解くことを目指すアルゴリズム。 現状、1の、分かる部分のみを解くアルゴリズムを構築し、JavaScriptで実装し、完璧ではないものの、かなりいいところまで解かせることができている。 github上で公開しているので、こちらでお試しあれ。適当にクリックしてマスを開いたあと「Solve」をクリックすれば、確実に分かる部分を埋めてくれる。(動作確認はFirefoxでしか行っていないため、他のブラウザ

    マインスイーパのモデル化と解法 - Qiita
  • JavaScript でオセロを実装する(原始モンテカルロAI編) | Webシステム開発/教育ソリューションのタイムインターメディア

    以前、オセロの対戦AIの作成しましたが、そこでは実装を簡略化する為に盤面の価値を 盤面の価値 = 自分の石の数 – 相手の石の数 という単純な方法で決めていました。 でも、これには問題があります。 同じ石でも配置場所によって価値は異なるはずです(例: 角は最強)。それが考慮されていません。ゲーム終盤になってくると石の数が重要になってきます。でも序盤から石の数を重視するのは方向性としておかしいです。 という訳で、 序盤から中盤では石の配置場所を重視する終盤では石の数を重視する 形で盤面の価値を算出すれば、結構良さそうなAIになりそうです。 しかし、今度は 「序盤」「中盤」「終盤」をどのように区別するのか?石の配置場所の強弱はどう決めるのか?同じ配置場所でも周囲の状況次第で強弱が異なるのでは? という問題が出てきます。これは作るのが面倒臭そうです。 どうにかしてお手軽かつそこそこ強そうなAI

    JavaScript でオセロを実装する(原始モンテカルロAI編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • 数学を使ったJavaScriptコーディング

    幾何学的な計算や物理運動を表すには、数学の知識が求められます。もっとも、計算は必ずしも難しい訳ではありません。考え方さえわかれば、応用できることが多いです。ここでは、一見難しそうなベクトルの外積と微分のふたつについて、その使い途と考え方をリンクでご紹介します。また、ビデオ映像やjsdo.itのサンプルも掲げました。 01 ベクトルの外積をどう使うか ベクトルの中でも「外積」は、考え方のわかりにくい計算です。いきなり概念を捉えようとすると難しいので、何に使えるのかを知ることから始めましょう。 01-01 珍味ベクトル外積3種盛り 2014年1月18日土曜日に催された第12回Creators MeetUpで、2次元のベクトルに絞ったインタラクティブなサンプルを例に、外積がどう使われているのかをご紹介しました。USTREAM録画も公開しています。 サンプル001■立方体をマウスポインタの位置に応

    数学を使ったJavaScriptコーディング
  • Machine Learning: Introduction to Genetic Algorithms

    Burak Kanber, Engineer Author, tech CTO, engineer, and some other things too. Subscribe via RSS Twitter Contact I like starting my machine learning classes with genetic algorithms (which we'll abbreviate "GA" sometimes). Genetic algorithms are probably the least practical of the ML algorithms I cover, but I love starting with them because they're fascinating and they do a good job of introducing t

  • TinySegmenter: Javascriptだけで実装されたコンパクトな分かち書きソフトウェア

    TinySegmenterはJavascriptだけ書かれた極めてコンパクトな日語分かち書きソフトウェアです。 わずか25kバイトのソースコードで、日語の新聞記事であれば文字単位で95%程度の精度で分かち書きが行えます。 Yahoo!形態素解析のように サーバーサイドで解析するのではなく、全てクライアントサイドで解析を行うため、セキュリティの 観点から見ても安全です。分かち書きの単位はMeCab + ipadicと互換性があります。 デモ 日語の文章を入力し、解析ボタンをクリックしてください。 ダウンロード TinySegmenterはフリーソフトウェアです. 修正BSDライセンスに従ってソフトウェアを使用,再配布することができます. Download TinySegmenter version 0.2 使い方 <script type="text/javascript" src

  • 1