我正在尝试使用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我遵循了卸载和重新安装natural的解决方案,没有任何帮助。我还发现:http://tommytcchan.blogspot.in/2012_07_01_archive.html我使用npm ls获取:
├─┬ natural@0.1.17
│ ├─┬ apparatus@0.0.6
│ │ └── sylvester@0.0.21
│ └── underscore@1.4.2
然后,我进行了一遍:找到一个已安装的npm包的版本,得到了如下输出:
├─┬ natural@0.1.17
│ ├─┬ apparatus@0.0.6
│ │ └── sylvester@0.0.21
│ └── underscore@1.4.2
即,我认为安装的软件包的本地版本与所需的依赖项相匹配。是否有其他人使用了此软件包,并设法调试了此错误?
提前多谢!
只是一个猜测,但我认为,这是由于不当的初始化。
TypeError: Cannot set property '__proto__' of undefined
当我试图使用我忘记首先初始化的对象的属性时,我会遇到类似的错误。根据错误推测,您可能没有定义或初始化分类器
,使其成为未定义
。您不能在未定义
上设置或使用属性。
这里有一个类似的帖子: