スポンサーリンク
スポンサーリンク
カタログ通販ベルーナ(Belluna)

.NetCore(C#)でMeCabを使って形態素解析を行う場合

.NET Core

VisualStudio2017 C#(.Net Core 2.0)で、MeCab(0.996)のlibmecab.dllを参照し形態素解析を行う場合、下記のソースでMeCabの解析結果を得ることができる。

strResult変数には、下記実行結果が出力される。

libmecab.dllを参照しているプロジェクトはx86で実行する必要がある。 .Net Core固有の問題から、下記手順を経ないとデバッグ実行時にアプリケーションが即落ちて原因が分からずにはまる。 1、Visual Studio 2017 をインストールしても、x86版の.NetCore SDKはインストールされないので、別途、ダウンロードしてインストールしておく。 1
2、プロジェクトのプラットフォームをx86に変更しても、デフォルトのデバッグ実行はx64版の.NetCore SDKで実行され、x86アプリをx64のSDKで実行しようとしてプリケーションが落ちるので、.csprojファイルをメモ帳で開き、下記を追記することで、x86プラットフォームの場合は、x86版.NetCore SDK上で実行するよう変更できる。

下記は追記した後の、.csprojファイル全体のサンプル。

 <Project Sdk=”Microsoft.NET.Sdk”>
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <StartupObject>MeCabテストCore.Program</StartupObject>
    <RunCommand Condition=”‘$(PlatformTarget)’ == ‘x86′”>
      $(MSBuildProgramFiles32)\dotnet\dotnet</RunCommand>
    <RunCommand Condition=”‘$(PlatformTarget)’ == ‘x64′”>
      $(ProgramW6432)\dotnet\dotnet</RunCommand>
  </PropertyGroup>
  <PropertyGroup Condition=”‘$(Configuration)|$(Platform)’==’Debug|AnyCPU'”>
    <PlatformTarget>x86</PlatformTarget>
    <RunCommand Condition=”‘$(PlatformTarget)’ == ‘x86′”>
      $(MSBuildProgramFiles32)\dotnet\dotnet</RunCommand>
    <RunCommand Condition=”‘$(PlatformTarget)’ == ‘x64′”>
      $(ProgramW6432)\dotnet\dotnet</RunCommand>
  </PropertyGroup>
 </Project>

コメント

スポンサーリンク
カタログ通販ベルーナ(Belluna)
スポンサーリンク
カタログ通販ベルーナ(Belluna)
タイトルとURLをコピーしました