眠いしお腹すいたし(´・ω・`)

C#関連を主に書きます。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

C#でRakuten MA使って形態素解析してみた。

夜遅くにツイッターみてたらフォローさせていただいてる絵空事さんがこんなのツイートしてました。

pypi.python.org

Rakuten MAってなに?

ってことでちょっと調べてみました。

github.com

JavaScript形態素解析をするライブラリみたいです。

この手の分野は全然疎くて.NETで形態素解析っていうとNMeCabなぁってことくらいしか知りませんでした。

このライブラリはブラウザ上かnode.jsがあれば実行できるって言う事が分かりましたが

そういえばJavaScriptC#上から実行ってできないのかな?

ってふと思いました。

javascript C# 実行 なんてキーワードで検索したらASP.NETに関する結果ばかりヒットしてしまいました。

検索を進めると

www.infoq.com

こんな記事を発見(*'▽')

node.jsとEdge.jsの間の接続はシームレスで双方向である

(; ・`д・´)

C#からnode.jsの環境で実行可能ならRakutenMA使えるんじゃない?

ってことでEdge.jsについて調べてみました。

www.nuget.org

日本語でヒットしたのはこれくらい

Edge.js ( https://github.com/tjanczuk/edge ) をつかって C# で Node.js の HTTPサーバをホストするサンプルコード。nuget で Edge.js をインストールしてください。.NET Framework 4.5 または Mono 3.4.0 が必要です。License: WTFPL 実行結果: https://twitter.com/ksasao/status/546691740199960576 · GitHub

これ、確実にRakutenMA実行できるじゃん(*'▽')

っていうことでとりあえず実行できるようにしてみました。

めんどくさいのでスクショばん(≧◇≦)

f:id:tamafuyou:20160410045414p:plain

gist.github.com

やったことはとりあえず

  1. コンソールプロジェクト作る
  2. Edge.jsとNewtonwoft.Jsonをnugetより追加
  3. RakutenMAをgithubより取得してプロジェクトに追加
  4. ファイルを全部ビルドアクション:なし 出力:常にコピーするに変更
  5. プログラム書く
  6. つまづく
  7. 結果これ

f:id:tamafuyou:20160410044337p:plain

すばらしい(*'▽')

プログラムは

tomasz.janczuk.org

ここを参考にしました。

jsコードはdemo.jsから抜粋

つまづいた点はrequireのパスとfsのファイルパスでrequireのパスはとfsのCurrentが違っていてアレ?ってつまづきました。

C#からJavaScriptが実行できて結果を受け取れちゃう世の中です。

凄い世の中です。

RakutenMAだけじゃなくて色んな事に応用できそうですねぇ。

以上