如何在node.js中对文本文件进行词干分析?
我想使用node.js对文本文件使用NLP词干分析,然后将其存储在某个输出文件中。如果你需要更多信息,请告诉我 我正在使用npm natural和PorterStemmer做同样的事情,但没有成功如何在node.js中对文本文件进行词干分析?,node.js,nlp,stemming,porter-stemmer,Node.js,Nlp,Stemming,Porter Stemmer,我想使用node.js对文本文件使用NLP词干分析,然后将其存储在某个输出文件中。如果你需要更多信息,请告诉我 我正在使用npm natural和PorterStemmer做同样的事情,但没有成功 function doStem(data){ var natural = require('natural'); //do procesing using WordTokenizer & PorterStemmer. return nData; } 请让我知道我是否使
function doStem(data){
var natural = require('natural');
//do procesing using WordTokenizer & PorterStemmer.
return nData;
}
请让我知道我是否使用了正确的方法,或者让我知道是否有需要纠正的地方
更新:
function doStemming(data){
var natural = require('natural');
var tokenizer = new natural.WordTokenizer();
var tokens = tokenizer.tokenize(data);
stemmer = natural.PorterStemmer(data);
var nData = stemmer.stem(tokens);
//console.log(nData);
return nData;
}
这就是我正在做的事情。请介绍如何在文本文件中使用标记化和PorterStemmer,而不是在任何特定的单词上执行此操作。以下是您的代码片段和错误(感谢您发布这两个代码): 代码: 错误:
stemmer = natural.PorterStemmer(data);
^ TypeError: natural.PorterStemmer is not a function
at doStemming (/home/vishabh/purify/stemer.js:39:21)
at ReadStream.<anonymous> (/home/vishabh/purify/stemer.js:20:21)
at emitOne (events.js:116:13)
at ReadStream.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at ReadStream.Readable.push (_stream_readable.js:208:10)
at fs.read (fs.js:2051:12)
换句话说,您可以尝试以下方法:
function doStemming(data){
var natural = require('natural');
var tokenizer = new natural.WordTokenizer();
var tokens = tokenizer.tokenize(data);
var nData = natural.PorterStemmer.stem(tokens);
console.log(nData);
return nData;
}
问:[如何使用node.js在文本文件上进行NLP词干分析?找一个好的图书馆。问:我正在使用npm natural和PorterStemmer做同样的事情,但没有成功。A:那么。。。问:具体问题是什么?问:您能告诉我们如何在函数doStemming(data){var natural=require('natural');var tokenizer=new natural.WordTokenizer();var tokens=tokenizer.tokenize(data);stemmer=natural.PorterStemmer(data);var nData=stemmer.stem(tokens);//console.log(nData);return nData;}这就是我正在做的事情。请给出一些关于如何在文本文件中使用标记化和PorterStemmer来实现这一点的想法,而不是在任何特定的单词上。附加信息会有所帮助。我冒昧地更新了你原来的帖子,并添加了一些标签。我仍然不清楚你到底想完成什么,或者你在哪里被阻止了。当我运行更新的代码时,我得到了下面的错误
stemmer=natural.PorterStemmer(data);^TypeError:natural.PorterStemmer不是ReadStream中doStemming(/home/vishabh/purify/stemer.js:39:21)的函数。(home/vishabh/purify/stemer.js:20:21)在emitOne(events.js:116:13)在ReadStream.emit(events.js:211:7)在addChunk(_stream_readable.js:263:12)在ReadStream.readable.push(_stream_readable.js:208:10)在fs.read(fs.js:2051:12)在readed
你必须改掉在评论中发布代码/日志片段的习惯:(请使用任何应该“格式化”的内容更新主帖子。此外:错误消息表明这只是一个Javascript编码错误(与词干分析器库无关,或者与NLP或词干本身有关)请考虑在AN中复制错误。非常感谢您的更正和解释。我很难将代码以适当的格式张贴,所以我只是这样做。实际上,我关心的是,我将如何处理这个大TXT文件的过程,因为当涉及到需要DAT的大文本文件时。a将被划分为块,然后必须应用词干分析过程,最后它应该能够创建一个不同的输出词干文件。我检查了这么多地方,但无法正确完成该过程。请告诉我如何才能成功完成此操作。还请告诉我是否可以使用python文件完成此操作然后调用node.js,或者这只能使用node.js本身完成。
natural.PorterStemmer.attach();
console.log("i am waking up to the sounds of chainsaws".tokenizeAndStem());
console.log("chainsaws".stem());
function doStemming(data){
var natural = require('natural');
var tokenizer = new natural.WordTokenizer();
var tokens = tokenizer.tokenize(data);
var nData = natural.PorterStemmer.stem(tokens);
console.log(nData);
return nData;
}