私はテキスト解析機能とnltkライブラリが本当に好きなので、現在pythonを検討していますが、従来は.Net / C#プログラマーです。私はNLTKを使用しており、おそらくそのライブラリをCLRに移植する必要があるため、IronPythonは統合ポイントではないと思います。Python for .NETを少し見てみましたが、ここから始めるのが良いのではないかと考えていました。PythonクラスをC#にマーシャリングする方法はありますか?また、このソリューションはまだ使用されていますか?さらに良いことに、誰かがこれをしましたか?私が検討していることの1つは、永続性メディアを仲介として使用することです(Pythonで解析し、MongoDBに格納し、.NETでサイトを実行します)。
3 に答える
NLTKは純粋なPythonであるため、IronPythonで簡単に実行できます。検索の結果、このチケットが見つかりました。必要なのは、IronPythonにデフォルトで付属していない追加のPythonライブラリをいくつかインストールすることだけです。
これはおそらく、統合するための最も簡単な方法です。それ以外の場合は、Pythonをサブプロセスとして実行する必要がありますが、これは複雑に聞こえます。または、Pythonをサーバーとして実行してリクエストに応答する必要があります。これはおそらく最もスケーラブルですが、複雑なアプローチです。このようにする場合は、サーバーコードを単純化するためにTwistedを検討してください。
しかし、最初にIronPythonを試してください...
なぜIronPythonに問題があるのかわかりません。引き続き、すべてのnltk呼び出しを使用できます。
PythonクラスをC#に移植することについての質問に答えるには、PythonコードをEXEにコンパイルしてみてください。これにより、すべてのPythonクラスを含むDLLが作成されます。これはしばらく前からあり、過去に私にとって魅力のように機能してきました。
ただのアイデア
Pythonをサーバーとして実行し、.NETからソケットで接続するのはどうですか?
NLTKの読み込みには時間がかかるため、とにかく事前に読み込む方がよいでしょう。