#はじめに
Unityで形態素解析をやってみました。今回はUnityで形態素解析する方法を参考にUnityで形態素解析をして, Buildするところまで行います。
#動作環境
MacOS : 10.12.6
Unity : 5.6.5
#NMeCabのダウンロード
.NET形態素解析エンジンNMeCabをダウンロードします。
ダウンロードしたフォルダから、dicフォルダとLibNMeCab.dllを下の図のように、Unityにいれます。(NMeCab0.07というフォルダを作りまとめています。)
#サンプルコードを動かす
Unityで形態素解析する方法にあるコードを実行し, 動作することを確認します。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NMeCab;
public class test : MonoBehaviour {
// Use this for initialization
void Start () {
string sentence = "Unityで形態素解析";
MeCabParam param = new MeCabParam();
param.DicDir = @"Assets/NMeCab0.07/dic/ipadic";
MeCabTagger t = MeCabTagger.Create(param);
MeCabNode node = t.ParseToNode(sentence);
while (node != null)
{
if (node.CharType > 0)
{
Debug.Log(node.Surface + "\t" + node.Feature);
}
node = node.Next;
}
Debug.Log("");
}
}
#パスを指定する
今回は、Buildした環境で形態素解析を行うことを目的としています。Buildする際はBuild先に応じて
param.DicDir = @"Assets/NMeCab0.07/dic/ipadic";
のフォルダの場所を変更する必要があります。
Unityで取得できるパス一覧を参考にパスを変更しましょう。
Contentsの下にNMeCab0.07をいれる予定なので、
param.DicDir = Application.dataPath +"/NMeCab0.07/dic/ipadic";
に書き換えます。
Build環境で動くか確認するため、
Debug.Log(node.Surface + "\t" + node.Feature);
を
text.text = node.Surface + "\t" + node.Feature;
に変更して画面で確認できるようにしましょう。
#実行
では実際に先ほどサンプルを動かしたプロジェクトをBuildしてみましょう。
Buildが完了すると
このようなアプリができてると思います。
これを右クリックし、「パッケージの内容を表示」しましょう。
Contentsの下に先ほどプロジェクトにいれたNMeCab0.07のファイルを入れましょう。
にしました。
これでアプリを実行します。
うまく動作しました。(textだと上書きされて解析しかでてませんでした...)
#まとめ
Unityで形態素解析をBuild環境でも実行できるようにしました。WebGLなどでは試していないのでうまくできるのか気になります。もっとうまいやり方がありましたらご教授願いたいです。