New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

natural

Package Overview
Dependencies
Maintainers
1
Versions
144
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

natural - npm Package Compare versions

Comparing version 0.0.56 to 0.0.57

lib/natural/classifiers/classifier.js

35

lib/natural/classifiers/bayes_classifier.js

@@ -23,10 +23,14 @@ /*

var PorterStemmer = require('../stemmers/porter_stemmer');
var PorterStemmer = require('../stemmers/porter_stemmer'),
sys = require('sys'),
Classifier = require('./classifier');
var BayesClassifier = function(stemmer) {
Classifier.call(this, stemmer);
this.categories = {};
this.categoryTotals = {};
this.stemmer = stemmer || PorterStemmer;
};
sys.inherits(BayesClassifier, Classifier);
var textToTokens = function(text) {

@@ -97,26 +101,11 @@ if(typeof text === 'string')

var save = function(filename, callback) {
var data = JSON.stringify(this);
var fs = require('fs');
fs.writeFile(filename, data, encoding='utf8', callback);
};
function load(filename, callback, stemmer) {
var fs = require('fs');
fs.readFile(filename, encoding='utf8', function(err, data) {
var classifier;
if(!err) {
classifier = restore(JSON.parse(data), stemmer);
}
if(callback)
callback(err, classifier);
function load(filename, callback) {
Classifier.load(filename, function(err, classifier) {
callback(err, restore(classifier));
});
};
}
function restore(classifier, stemmer) {
classifier = typeof classifier == 'string' ? JSON.parse(classifier) : classifier;
classifier.prototype = BayesClassifier.prototyope;
classifier.train = train;

@@ -126,3 +115,2 @@ classifier.textToTokens = textToTokens;

classifier.classify = classify;
classifier.save = save;
classifier.getClassification = getClassification;

@@ -138,3 +126,2 @@ classifier.stemmer = stemmer || PorterStemmer;

BayesClassifier.prototype.classify = classify;
BayesClassifier.prototype.save = save;
BayesClassifier.prototype.getClassification = getClassification;

@@ -141,0 +128,0 @@ BayesClassifier.load = load;

@@ -32,2 +32,3 @@ /*

exports.BayesClassifier = require('./classifiers/bayes_classifier');
exports.LogisticRegressionClassifier = require('./classifiers/logistic_regression_classifier');
exports.NounInflector = require('./inflectors/noun_inflector');

@@ -34,0 +35,0 @@ exports.PresentVerbInflector = require('./inflectors/present_verb_inflector');

@@ -28,13 +28,19 @@ /*

function get(location, callback) {
var buff = new Buffer(4096);
var buff = new Buffer(4096);
this.open(function(err, fd, done) {
WordNetFile.appendLineChar(fd, location, 0, buff, function(line) {
done();
var data = line.split('| ');
var tokens = data[0].split(/\s+/);
var ptrs = [];
for(var i = 0; i < parseInt(tokens[6], 10); i++) {
ptrs.push({
done();
var data = line.split('| ');
var tokens = data[0].split(/\s+/);
var ptrs = [];
var wCnt = parseInt(tokens[3], 10);
var synonyms = [];
for(var i = 0; i < wCnt; i++) {
synonyms.push(tokens[4 + i * 2]);
}
for(var i = 0; i < parseInt(tokens[6], 10); i++) {
ptrs.push({
pointerSymbol: tokens[7 + i * 4],

@@ -44,20 +50,20 @@ synsetOffset: parseInt(tokens[8 + i * 4], 10),

sourceTarget: tokens[10 + i * 4]
});
}
});
}
callback({
synsetOffset: parseInt(tokens[0], 10),
lexFilenum: parseInt(tokens[1], 10),
pos: tokens[2],
wCnt: parseInt(tokens[3], 10),
lemma: tokens[4],
lexId: tokens[5],
ptrs: ptrs,
gloss: data[1]
});
});
});
synsetOffset: parseInt(tokens[0], 10),
lexFilenum: parseInt(tokens[1], 10),
pos: tokens[2],
wCnt: wCnt,
lemma: tokens[4],
synonyms: synonyms,
lexId: tokens[5],
ptrs: ptrs,
gloss: data[1]
});
});
});
}
var DataFile = function(dataDir, base, name) {

@@ -64,0 +70,0 @@ WordNetFile.call(this, dataDir, base, 'data.' + name);

{
"name": "natural",
"description": "General natural language (tokenizing, stemming, classification, inflection, phonetics, tfidf, WordNet) facilities for node.",
"version": "0.0.56",
"version": "0.0.57",
"engines": {

@@ -6,0 +6,0 @@ "node": ">=0.2.6"

@@ -443,2 +443,3 @@

console.log(result.lemma);
console.log(result.synonyms);
console.log(result.pos);

@@ -458,50 +459,5 @@ console.log(result.gloss);

console.log(result.gloss);
console.log(result.synonyms);
});
You can also lookup synonyms for all meanings of a word.
var wordnet = new natural.WordNet('.');
wordnet.lookupSynonyms('device', function(results) {
results.forEach(function(result) {
console.log('------------------------------------');
console.log(result.synsetOffset);
console.log(result.pos);
console.log(result.lemma);
console.log(result.pos);
console.log(result.gloss);
});
});
It's also possible to lookup synonyms for a single meaning.
var wordnet = new natural.WordNet('.');
wordnet.lookup('entity', function(results) {
wordnet.getSynonyms(results[0], function(results) {
results.forEach(function(result) {
console.log('------------------------------------');
console.log(result.synsetOffset);
console.log(result.pos);
console.log(result.lemma);
console.log(result.pos);
console.log(result.gloss);
});
});
});
Note that getSynonyms supports query by offset and part of speech.
var wordnet = new natural.WordNet('.');
wordnet.getSynonyms(4424418, 'n', function(results) {
results.forEach(function(result) {
console.log('------------------------------------');
console.log(result.lemma);
console.log(result.pos);
console.log(result.gloss);
});
});
Princeton University "About WordNet." WordNet. Princeton University. 2010. <http://wordnet.princeton.edu>

@@ -508,0 +464,0 @@

@@ -23,3 +23,3 @@ /*

var natural = new require('lib/natural');
var natural = require('lib/natural');

@@ -26,0 +26,0 @@ describe('bayes classifier', function() {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc