在C#应用程序中的NLTK和停用词Lookuperror

时间:2017-05-31 05:45:13

标签: c# python nltk sentiment-analysis stop-words

我正在从C#应用程序运行python脚本。该脚本在命令提示符/终端上运行正常,但在通过C#代码调用时无法执行。

即使我拥有所有必需的数据/停用词

,它也会显示Resource u'corpora/stopwords' not found. Please use the NLTK Downloader to obtain the resource: >>> nltk.download()

以下是Visual Studio中调试选项卡的错误报告。

 Traceback (most recent call last):
  File "C:\Users\Amey\Anaconda3\envs\dato-env\TrainingSetsUtil.py", line 20, in <module>
    stopwords = set(stopwords.words('english'))
  File "C:\Users\Amey\Anaconda3\envs\dato-env\lib\site-packages\nltk\corpus\util.py", line 99, in __getattr__
    self.__load()
  File "C:\Users\Amey\Anaconda3\envs\dato-env\lib\site-packages\nltk\corpus\util.py", line 64, in __load
    except LookupError: raise e
LookupError: 
**********************************************************************
  Resource u'corpora/stopwords' not found.  Please use the NLTK
  Downloader to obtain the resource:  >>> nltk.download()
  Searched in:
    - 'nltk_data'
**********************************************************************

这是调用代码。

ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = @"C:\Users\Amey\Anaconda3\envs\dato-env\python.exe";
        start.Arguments = @"C:\Users\Amey\Anaconda3\envs\dato-env\TrainingSetsUtil.py " + uname;
        start.UseShellExecute = false;// Do not use OS shell
        start.CreateNoWindow = true; // We don't need new window
        start.RedirectStandardOutput = true;// Any output, generated by application will be redirected back
        start.RedirectStandardError = true; // Any error in standard output will be redirected back (for example exceptions)
        using (Process process = Process.Start(start))
        {
            using (StreamReader reader = process.StandardOutput)
            {
                string stderr = process.StandardError.ReadToEnd(); // Here are the exceptions from our Python script
                string result = reader.ReadToEnd(); // Here is the result of StdOut(for example: print "test")
                Console.WriteLine(result);
                Console.WriteLine(stderr);
            }
        }

0 个答案:

没有答案