通过IronPython在C#中使用NLTK

9

我正在使用Visual Studio 2010。我有一个IronPython控制台项目和一个C#控制台项目。当我单独运行这个IronPython脚本时,它可以正常工作:

import nltk

def Simple():
    baconIpsumFile = open('baconipsum.txt', 'r')
    baconIpsumCorpus = baconIpsumFile.read()

    tokens = nltk.word_tokenize(baconIpsumCorpus)
    text = nltk.Text(tokens)
    print text

这是一个C#控制台程序,但运行效果并不好:

using IronPython.Hosting;

namespace IronNLTK.CSharp.Console
{
    class Program
    {
        static void Main(string[] args)
        {
            var ipy = Python.CreateRuntime();
            dynamic test = ipy.UseFile("C:\\Path\\To\\Program.py");
            test.Simple();
        }
    }
}

我遇到了一个“ImportException: No module named nltk”的错误。我缺少了什么?

1
你能与 ipy 运行时交互并调整路径吗? - Travis
我也尝试过那个。即在https://dev59.com/MHM_5IYBdhLWcg3wdy1g中接受的答案。 - Matthew Groves
2个回答

3

如果你的意思是像 sys.path.append(r"c:\Program Files (x86)\IronPython\Lib") 这样的代码,那也是行不通的。 - Matthew Groves
1
当然那样行不通。反斜杠是字符串转义字符。如果你想在Python字符串中放置一个路径,那么你需要这样做:C:/Progr...或者C:\Progr... - Michael Dillon
1
此外,便携式软件在路径名称中包含空格时出现问题并不罕见。您是否尝试在C:\IronPython中安装另一个IronPython实例,以便您不需要使用任何带有空格的目录? - Michael Dillon
是的,抱歉,我确实使用了转义反斜杠,不过我会查看路径名称中的空格... - Matthew Groves

2

好消息,Visual Studio 2017内置了Anaconda的Python分发版,其中包含NTLK和其他机器学习包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接