我正在尝试在代码中使用自然的.js,在我使用过browserify的客户端上使用它,但它给出了错误
Uncaught TypeError: fs.readFileSync is not a function
at loadDictionary (main.js:10999)
at Object.<anonymous> (main.js:10894)
at Object.69../base_stemmer_id (main.js:11175)
at o (main.js:1)
at main.js:1
at Object.44../analyzers/sentence_analyzer (main.js:6380)
at o (main.js:1)
at main.js:1
at Object.1.natural (main.js:23)
at o (main.js:1)
尝试的代码是
var natural =require("natural");
var tokenizer =new natural.WordTokenizer();
console.log(tokenizer.tokenize("my name is akash"));
有什么帮助吗?
答案 0 :(得分:0)
“自然”是 nodejs 的通用自然语言工具。
由于它是为Node.js构建的,因此它可能使用特定于节点的模块,例如fs
,该模块允许Node访问文件系统。 fs
模块不在前端。
因此,当natural.js尝试要求fs
(我猜是使用Browserify)时,它没有获得Node拥有的实际模块,因此无法调用readFileSync方法。
答案 1 :(得分:0)
它正在尝试访问文件系统库fs
,该文件系统库在浏览器中不可用。不幸的是,Browserify仅将node.js样式的模块导入(例如require('package-name');
)转换为浏览器可以理解的形式。并不能使所有的node.js软件包都能在浏览器中正常工作。
浏览器没有定义
require
方法,但是Node.js有。借助Browserify,您可以编写使用require
的代码,就像在Node中使用代码一样。
答案 2 :(得分:0)
在尝试浏览基于Natural的NLP库时,我遇到了同样的问题。最终,我的解决方案是不使用Natural(自然),而移动茎杆/增香剂。现在,我已经在浏览器中运行了NLP库捆绑包,您可以在这里找到它:https://github.com/axa-group/nlp.js/tree/master/dist 要更好地使用它,请阅读文档。