2012-10-15 55 views
4

我试图在Node.JS中使用自然模块。我编写了一个简单的程序,它从浏览器获取输入并使用贝叶斯分类器对其进行分类。然而,在运行时,我得到以下错误:在node.js中使用“自然”模块

/home/hadoop/cloud_major/testing/node_modules/natural/node_modules/apparatus/lib/apparatus/classifier/bayes_classifier.js:95 
classifier.__proto__ = BayesClassifier.prototype; 
        ^
TypeError: Cannot set property '__proto__' of undefined 
at Function.restore (/home/hadoop/cloud_major/testing/node_modules/natural/node_modules/apparatus/lib/apparatus/classifier/bayes_classifier.js:95:27) 
at restore (/home/hadoop/cloud_major/testing/node_modules/natural/lib/natural/classifiers/bayes_classifier.js:37:54) 
at /home/hadoop/cloud_major/testing/node_modules/natural/lib/natural/classifiers/bayes_classifier.js:44:23 
at /home/hadoop/cloud_major/testing/node_modules/natural/lib/natural/classifiers/classifier.js:114:13 
at fs.readFile (fs.js:176:14) 
at Object.oncomplete (fs.js:297:15) 

现在,对于研究中,我通过别人以下螺纹谁曾在另一Node.js的模块类似的问题去: https://github.com/andris9/mailcomposer/issues/6 我跟着解决方案卸载并重新安装自然,没有任何帮助。 我还发现:http://tommytcchan.blogspot.in/2012_07_01_archive.html我用NPM LS获得:

├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ └── [email protected] 

然后,我经历了:Find the version of an installed npm package,得到了以下的输出:

├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ └── [email protected] 

即我认为安装的软件包的本地版本匹配所需的依赖关系。是否有其他人使用过此包,并设法调试此错误?

非常感谢提前!

+0

我不知道有任何毫升/ NLP包节点。如果我有机会,我会看看它。最好的NLP工具是用java和python编写的,所以我强烈考虑使用这些工具。 – nflacco

+0

我无法在最新版本上重现此问题。你有没有尝试升级? [email protected]; [email protected]; [email protected]; [email protected]。如果没有这样做,你可能会添加你的代码到你的问题来协助调试吗? – mjk

回答

0

只是一个猜测,但我认为这是由于不正确的初始化。

TypeError: Cannot set property '__proto__' of undefined 

当我尝试使用忘记首先初始化的对象的属性时,出现类似错误。从错误中猜出您可能尚未定义或初始化classifier,使其成为undefined。您无法在undefined上设置或使用属性。

这里有一个类似的帖子:

  1. JavaScript - cannot set property of undefined
  2. Cannot Set Property ... of undefined --- bizarre