Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在node.js中对文本文件进行词干分析?_Node.js_Nlp_Stemming_Porter Stemmer - Fatal编程技术网

如何在node.js中对文本文件进行词干分析?

如何在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; } 请让我知道我是否使

我想使用node.js对文本文件使用NLP词干分析,然后将其存储在某个输出文件中。如果你需要更多信息,请告诉我

我正在使用npm natural和PorterStemmer做同样的事情,但没有成功

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; 
}