所以我试图调用我在C#项目中编写的python模块中定义的python,当然我正在使用C#的ironpython工具。
问题是当我使用nltk时,我遇到了铁蟒的问题。一切进口都很好。问题在于nltk_data。当它调用tokenize时,它不会找到英文标记化模型(punkt / english.pickle)。我尝试了所有方法,甚至将nltk_data的路径添加到搜索路径中,如下所示:
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\path\to\nltk_data");
searchPaths.Add(spackagesPath);
engine.SetSearchPaths(searchPaths);
我非常确定这不是搜索路径的用途,我在python端使用sys.append.path做了类似的事情。
我认为这是铁蟒的一个问题。 在您说使用nltk.download(' punkt')或所有之前,所有依赖项都已到位(我知道这是因为我可以作为独立的python脚本运行)。还有这个问题:NLTK in IronPython from WPF除了nltk之外与我的问题无关。 我花了好几个小时试图解决这个问题;我已经看到了这个问题,并且已经在使用Microsoft.Scripting.Hosting库