Как я могу сделать stemming на текстовый файл в node.js? - PullRequest
0 голосов
/ 01 июля 2019

Я хочу использовать NLP stemming для текстового файла с помощью node.js, а затем сохранить его в каком-нибудь выходном файле.Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Я использую 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 в текстовый файл, но не на какое-либо конкретное слово

1 Ответ

1 голос
/ 03 июля 2019

Вот ваш фрагмент кода и ваша ошибка (спасибо за публикацию обоих):

Код:

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

Ошибка:

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)

Причина: нравитсясообщение об ошибке гласит: «natural.PorterStemmer ()» не является методом.Скорее, «natural.PorterStemmer» - это ОБЪЕКТ .

Смотрите здесь:

https://www.npmjs.com/package/natural#stemmers

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