【问题标题】:Using NLTK in C# via IronPython通过 IronPython 在 C# 中使用 NLTK
【发布时间】:2011-09-16 15:29:35
【问题描述】:

我正在使用 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。我错过了什么?

【问题讨论】:

标签: c# python ironpython nltk


【解决方案1】:

听起来您需要更新 sys.path 以指向 NLTK 所在的位置。

看看这个:Importing external module in IronPython

【讨论】:

  • 如果你的意思是 sys.path.append(r"c:\Program Files (x86)\IronPython\Lib") 也不起作用
  • 当然不行。反斜杠是字符串转义字符。如果要在 Python 字符串中放置路径,则需要执行 C:/Progr... 或 C:\\Progr...
  • 此外,便携式软件在名称中包含空格的路径出现问题并不少见。您是否尝试过在 C:\IronPython 中安装 IronPython 的另一个实例,这样您就没有任何名称中带有空格的目录?
  • 是的,抱歉,我确实使用了转义的反斜杠,不过我会查看路径名中的空格...
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多