我正在建立一个我希望作为ac#win服务托管的分类器,暴露一个我可以远程调用我希望分类的文本的端点.我目前有一个使用ironpython和自然语言工具包,使用c#4.0动态.像这样的代码:
var py = Python.CreateEngine(); dynamic script = py.ImportModule("MyPythonScript"); classifier = script.GetClassifier(); //build features etc, then train trainedClassifier = classifier.TrainClassifier(featureSet);
分类器在启动时训练自己(如上所述)并且我将分类器实时调用我想要分类的文本.
我的问题是我想在scikit-learn中使用分类器和矢量化器.
根据此链接,Ironpython不支持scikit-learn.(可以从IronPython中使用scikit吗?)
任何人都可以建议最好的方法吗?我愿意接受建议,但我需要将训练好的分类器保存在记忆中,因为每次通话训练都会让人望而却步.
我的研究得出以下结论.
IronPython 2.7可以支持numpy和scipy,(https://www.enthought.com/repo/.iron/).虽然当我尝试运行它时,我遇到了NumpyDotNet.dll未找到的问题.我放弃了scikit-learn可能无论如何都不会使用IronPython.
我看过'python for .net'(http://pythonnet.github.io/),但是无法从c#中调用它.我引用了Python.Runtime.dll但与此人有相同的引用问题(/sf/ask/17360801/)
有没有人使用过sharpkit.learn.(https://github.com/foreverzet/Sharpkit.Learn).我特别需要线性SVM和TfidfVectorizer?
我对其他运行python脚本的解决方案持开放态度.但是,我需要缓存训练好的分类器,并且不能重复训练它.
我对所有想法持开放态度,并对任何帮助表示赞赏.谢谢.