Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

natural-content

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

natural-content - npm Package Compare versions

Comparing version 1.0.7 to 1.0.8

lib/diacritics.js

49

index.js

@@ -1,2 +0,3 @@

var _ = require('underscore');
var _ = require('underscore');
var diacritics = require('./lib/diacritics.js');

@@ -27,4 +28,36 @@ var WORD_SEPARATOR = " ";

/**
* Get all words
* Remove all special caracters, symbols & digits
*
* @param a text as a String
* @return The text without special caracters
*/
function removeSpecials(text) {
var lower = text.toLowerCase();
var upper = text.toUpperCase();
var resut = "";
for(var i=0; i<lower.length; ++i) {
if(lower[i] !== upper[i] || lower[i].trim() === ''){
resut += text[i];
}
}
return resut;
}
/**
* Remove all diacritics from a text
*
*
* @param a text as a String
* @return the text without diacritics
*/
function removeDiacritics(text) {
return diacritics.remove(text);
}
/**
* Get all words from a Text
* It removes diacritics & non alphanumeric caracters
*
* @param Text or HTML content (String)

@@ -42,3 +75,2 @@ * @param True if the stop words are to be present in the corpus

.replace(/[’«»'";:,.\/(\/)\/!\/?\\-]/g, WORD_SEPARATOR) // Remove punctuations
.replace(/[\W_]+/g," ") // Remove non alphanumeric char
.replace(/ +/g, WORD_SEPARATOR) // remove multiple spaces

@@ -48,10 +80,11 @@ .toLowerCase()

// Remove empty string & numbers
// Remove empty string
if (withStopWords) {
return _.filter(words, function(word){return (word !== '') && isNaN(word); });
return _.filter(words, function(word){return (word !== '') ; });
}
// Remove empty string, numbers & stopwords
// Remove empty string & stopwords
else {
var stopwords = require("./lib/stopwords-" + language).stopwords;
return _.filter(words, function(word){return (word !== '' && isNaN(word) && stopwords.indexOf(word) === -1); });
return _.filter(words, function(word){return (word !== '' && stopwords.indexOf(removeDiacritics(word)) === -1); });
}

@@ -237,2 +270,4 @@

exports.getStatements = getStatements;
exports.removeSpecials = removeSpecials;
exports.removeDiacritics = removeDiacritics;
exports.getWords = getWords;

@@ -239,0 +274,0 @@ exports.getNgrams = getNgrams;

587

lib/stopwords-fr.js

@@ -0,6 +1,7 @@

// Stopwords in french without diacritics
module.exports.stopwords = [
'cookies',
'à',
'à demi',
'être',
'a',
'a demi',
'etre',
'sa',

@@ -28,3 +29,3 @@ 'r',

'peu',
'près',
'pres',
'absolument',

@@ -36,6 +37,7 @@ 'actuellement',

'approximativement',
'après',
'après-demain',
'apres',
'apres-demain',
'apresdemain',
'assez',
'assurément',
'assurement',
'au',

@@ -49,3 +51,3 @@ 'aucun',

'aussi',
'aussitôt',
'aussitot',
'autant',

@@ -57,2 +59,3 @@ 'autre',

'avant-hier',
'avanthier',
'avec',

@@ -62,6 +65,6 @@ 'avoir',

'bien',
'bientôt',
'bientot',
'bon',
'c',
'ça',
'ca',
'car',

@@ -80,3 +83,3 @@ 'carrément',

'comment',
'complètement',
'completement',
'd',

@@ -87,204 +90,201 @@ 'abord',

'de',
'début',
'debut',
'dedans',
'dehors',
'déjà',
'deja',
'demain',
'depuis',
'derechef',
'des',
'désormais',
'deux',
'devrait',
'diablement',
'divinement',
'doit',
'donc',
'dorénavant',
'dos',
'droite',
'drôlement',
'du',
'elle',
'des',
'desormais',
'deux',
'devrait',
'diablement',
'divinement',
'doit',
'donc',
'dorenavant',
'dos',
'droite',
'drolement',
'du',
'elle',
'elles',
'en',
'en vérité',
'encore',
'enfin',
'ensuite',
'entièrement',
'entre-temps',
'environ',
'essai',
'est',
'et',
'étaient',
'état',
'été',
'étions',
'être',
'eu',
'extrêmement',
'fait',
'faites',
'fois',
'font',
'force',
'grandement',
'guère',
'en',
'en verite',
'encore',
'enfin',
'ensuite',
'entierement',
'entre-temps',
'environ',
'essai',
'est',
'et',
'etaient',
'etat',
'ete',
'etions',
'etre',
'eu',
'extremement',
'fait',
'faites',
'fois',
'font',
'force',
'grandement',
'guere',
'habituellement',
'haut',
'hier',
'hors',
'ici',
'il',
'ils',
'infiniment',
'insuffisamment',
'jadis',
'jamais',
'je',
'haut',
'hier',
'hors',
'ici',
'il',
'ils',
'infiniment',
'insuffisamment',
'jadis',
'jamais',
'je',
'joliment',
'la',
'là',
'le',
'les',
'leur',
'leurs',
'lol',
'longtemps',
'lors',
'ma',
'maintenant',
'mais',
'MDR',
'même',
'mes',
'la',
'le',
'les',
'leur',
'leurs',
'lol',
'longtemps',
'lors',
'ma',
'maintenant',
'mais',
'MDR',
'même',
'mes',
'moins',
'mon',
'mot',
'naguère',
'ne',
'ni',
'nommés',
'non',
'notre',
'nous',
'nouveaux',
'nullement',
'ou',
'où',
'oui',
'par',
'parce',
'mon',
'mot',
'naguere',
'ne',
'ni',
'nommes',
'non',
'notre',
'nous',
'nouveaux',
'nullement',
'ou',
'oui',
'par',
'parce',
'parfois',
'parole',
'pas',
'pas mal',
'passablement',
'personnes',
'peu',
'lorsqu',
'peut',
'peut-être',
'pièce',
'plupart',
'plus',
'plutôt',
'parole',
'pas',
'pas mal',
'passablement',
'personnes',
'peu',
'lorsqu',
'peut',
'peut-etre',
'peutetre',
'piece',
'plupart',
'plus',
'plutot',
'point',
'pour',
'pourquoi',
'précisément',
'premièrement',
'presque',
'probablement',
'prou',
'puis',
'quand',
'quasi',
'quasiment',
'pour',
'pourquoi',
'precisement',
'premierement',
'presque',
'probablement',
'prou',
'puis',
'quand',
'quasi',
'quasiment',
'que',
'quel',
'quelle',
'quelles',
'quelque',
'quelquefois',
'quels',
'qui',
'qu',
'avoir',
'ce',
'aller',
'se',
'jusqu',
'mis',
'quel',
'quelle',
'quelles',
'quelque',
'quelquefois',
'quels',
'qui',
'qu',
'avoir',
'ce',
'aller',
'se',
'jusqu',
'mis',
'l',
'on',
'dont',
'selon',
'devoir',
'faire',
'falloir',
'aller',
'n',
'quoi',
'quotidiennement',
'rien',
'rudement',
's',
'sa',
'on',
'dont',
'selon',
'devoir',
'faire',
'falloir',
'aller',
'n',
'quoi',
'quotidiennement',
'rien',
'rudement',
's',
'sa',
'sans',
'sans doute',
'ses',
'seulement',
'si',
'sien',
'sitôt',
'soit',
'son',
'sont',
'soudain',
'sous',
'souvent',
'soyez',
'sans doute',
'ses',
'seulement',
'si',
'sien',
'sitot',
'soit',
'son',
'sont',
'soudain',
'sous',
'souvent',
'soyez',
'subitement',
'suffisamment',
'sur',
't',
'ta',
'tandis',
'tant',
'tantôt',
'tard',
'tellement',
'tels',
'terriblement',
'tes',
'suffisamment',
'sur',
't',
'ta',
'tandis',
'tant',
'tantot',
'tard',
'tellement',
'tels',
'terriblement',
'tes',
'ton',
'tôt',
'totalement',
'toujours',
'tous',
'tout',
'tout à fait',
'toutefois',
'très',
'trop',
'tu',
'un',
'une',
'valeur',
'tot',
'totalement',
'toujours',
'tous',
'tout',
'tout à fait',
'toutefois',
'tres',
'trop',
'tu',
'un',
'une',
'valeur',
'vers',
'voie',
'voient',
'volontiers',
'vont',
'votre',
'vous',
'vraiment',
'vraisemblablement',
'y',
'voie',
'voient',
'volontiers',
'vont',
'votre',
'vous',
'vraiment',
'vraisemblablement',
'y',
"a",
"à",
"â",
"abord",

@@ -298,5 +298,4 @@ "afin",

"allo",
"allô",
"allons",
"après",
"apres",
"assez",

@@ -308,3 +307,2 @@ "attendu",

"aujourd",
"aujourd'hui",
"auquel",

@@ -342,9 +340,15 @@ "aura",

"celle-ci",
"celle-là",
"celleci",
"celle-la",
"cellela",
"celles",
"celles-ci",
"celles-là",
"celleci",
"celles-la",
"cellela",
"celui",
"celui-ci",
"celui-là",
"celuici",
"celui-la",
"celuila",
"cent",

@@ -362,8 +366,10 @@ "cependant",

"ceux-ci",
"ceux-là",
"ceuxci",
"ceux-la",
"ceuxla",
"chacun",
"chaque",
"cher",
"chère",
"chères",
"chere",
"cheres",
"chers",

@@ -377,4 +383,4 @@ "chez",

"cinquante",
"cinquantième",
"cinquième",
"cinquantieme",
"cinquieme",
"clac",

@@ -397,8 +403,7 @@ "clic",

"dehors",
"delà",
"dela",
"depuis",
"derrière",
"derriere",
"des",
"dès",
"désormais",
"desormais",
"desquelles",

@@ -409,11 +414,11 @@ "desquels",

"deux",
"deuxième",
"deuxièmement",
"deuxieme",
"deuxiemement",
"devant",
"devers",
"devra",
"différent",
"différente",
"différentes",
"différents",
"different",
"differente",
"differentes",
"differents",
"dire",

@@ -425,5 +430,8 @@ "divers",

"dix-huit",
"dixième",
"dixhuit",
"dixieme",
"dix-neuf",
"dixneuf",
"dix-sept",
"dixsept",
"doit",

@@ -434,3 +442,3 @@ "doivent",

"douze",
"douzième",
"douzieme",
"dring",

@@ -444,5 +452,7 @@ "du",

"elle",
"elle-même",
"elle-meme",
"ellememe",
"elles",
"elles-mêmes",
"elles-memes",
"ellesmemes",
"en",

@@ -454,14 +464,13 @@ "encore",

"es",
"ès",
"est",
"et",
"etant",
"étaient",
"étais",
"était",
"étant",
"etaient",
"etais",
"etait",
"etant",
"etc",
"été",
"ete",
"etre",
"être",
"etre",
"eu",

@@ -471,3 +480,4 @@ "euh",

"eux-mêmes",
"excepté",
"euxmemes",
"excepte",
"f",

@@ -488,5 +498,5 @@ "façon",

"ha",
"hé",
"he",
"hein",
"hélas",
"helas",
"hem",

@@ -496,3 +506,3 @@ "hep",

"ho",
"holà",
"hola",
"hop",

@@ -506,3 +516,3 @@ "hormis",

"huit",
"huitième",
"huitieme",
"hum",

@@ -521,3 +531,2 @@ "hurrah",

"la",
"là",
"laquelle",

@@ -528,3 +537,2 @@ "las",

"les",
"lès",
"lesquelles",

@@ -537,3 +545,4 @@ "lesquels",

"lui",
"lui-même",
"lui-meme",
"luimeme",
"m",

@@ -543,6 +552,6 @@ "ma",

"mais",
"malgré",
"malgre",
"me",
"même",
"mêmes",
"meme",
"memes",
"merci",

@@ -557,3 +566,4 @@ "mes",

"moi",
"moi-même",
"moi-meme",
"moimeme",
"moins",

@@ -565,5 +575,5 @@ "mon",

"ne",
"néanmoins",
"neanmoins",
"neuf",
"neuvième",
"neuvieme",
"ni",

@@ -575,21 +585,18 @@ "nombreuses",

"notre",
"nôtre",
"nôtres",
"notres",
"nous",
"nous-mêmes",
"nous-memes",
"nousmemes",
"nul",
"o",
"o|",
"ô",
"oh",
"ohé",
"olé",
"ollé",
"ohe",
"ole",
"olle",
"on",
"ont",
"onze",
"onzième",
"onzieme",
"ore",
"ou",
"où",
"ouf",

@@ -607,6 +614,6 @@ "ouias",

"particulier",
"particulière",
"particulièrement",
"particuliere",
"particulierement",
"pas",
"passé",
"passe",
"pendant",

@@ -626,3 +633,3 @@ "personne",

"plusieurs",
"plutôt",
"plutot",
"pouah",

@@ -632,5 +639,5 @@ "pour",

"premier",
"première",
"premièrement",
"près",
"premiere",
"premierement",
"pres",
"proche",

@@ -644,3 +651,4 @@ "psitt",

"quanta",
"quant-à-soi",
"quant-a-soi",
"quantasoi",
"quarante",

@@ -650,4 +658,5 @@ "quatorze",

"quatre-vingt",
"quatrième",
"quatrièmement",
"quatrevingt",
"quatrieme",
"quatriemement",
"que",

@@ -661,2 +670,3 @@ "quel",

"quelqu'un",
"quelquun",
"quels",

@@ -670,3 +680,3 @@ "qui",

"revoici",
"revoilà",
"revoila",
"rien",

@@ -683,3 +693,3 @@ "s",

"sept",
"septième",
"septieme",
"sera",

@@ -695,5 +705,6 @@ "seront",

"six",
"sixième",
"sixieme",
"soi",
"soi-même",
"soi-meme",
"soimeme",
"soit",

@@ -714,3 +725,2 @@ "soixante",

"te",
"té",
"tel",

@@ -730,3 +740,4 @@ "telle",

"toi",
"toi-même",
"toimeme",
"toimeme",
"ton",

@@ -741,6 +752,6 @@ "touchant",

"trente",
"très",
"tres",
"trois",
"troisième",
"troisièmement",
"troisieme",
"troisiemement",
"trop",

@@ -759,3 +770,3 @@ "tsoin",

"vas",
"vé",
"ve",
"vers",

@@ -771,10 +782,11 @@ "via",

"voici",
"voilà",
"voila",
"vont",
"vos",
"votre",
"vôtre",
"vôtres",
"votre",
"votres",
"vous",
"vous-mêmes",
"vous-memes",
"vousmemes",
"vu",

@@ -817,2 +829,3 @@ "w",

"début",
"debut",
"elle",

@@ -842,3 +855,3 @@ "elles",

"leur",
"là",
"la",
"ma",

@@ -852,5 +865,5 @@ "maintenant",

"mot",
"même",
"meme",
"ni",
"nommés",
"nommes",
"notre",

@@ -860,3 +873,2 @@ "nous",

"ou",
"où",
"par",

@@ -869,3 +881,2 @@ "parce",

"peu",
"pièce",
"plupart",

@@ -902,3 +913,3 @@ "pour",

"trop",
"très",
"tres",
"tu",

@@ -912,8 +923,8 @@ "valeur",

"vu",
"ça",
"étaient",
"état",
"étions",
"été",
"être"
"ca",
"etaient",
"etions",
"ete",
"etre",
'cookies',
];
{
"name": "natural-content",
"version": "1.0.7",
"description": "A set of natural functions like tf.idf, extract words & n-grams, ... (experimental project)",
"version": "1.0.8",
"description": "A set of natural functions like tf.idf, extract words & n-grams, remove diacritics, ... (experimental project)",
"main": "index.js",

@@ -6,0 +6,0 @@ "scripts": {

@@ -18,10 +18,25 @@ var assert = require("assert");

it('Special caracters', function(){
var text = "ceci est un texte en français ! sans caractères spéciaux !§($€) # 123 avant-hier";
var result = natural.removeSpecials(text);
//console.log(result);
assert( result === 'ceci est un texte en français sans caractères spéciaux avanthier');
});
it('diacritics', function(){
var text = "ceci est un texte en français ! sans diacritiques çàoözęùô";
var result = natural.removeDiacritics(text);
assert(result === 'ceci est un texte en francais ! sans diacritiques caoozeuo');
});
it('Words', function() {
// Non alphanumeric are ignored
var words = natural.getWords("word1 word2 word3 word4. le la sur word5 & @' $ < >", true);
var words = natural.getWords("word1 word2 word3 word4. le la sur word5, ça été bientôt & @' $ 123", true);
assert(words.length === 15);
words = natural.getWords(natural.removeSpecials("word1 word2 word3 word4. le la sur word5, ça été bientôt & @' $ 123"), true);
//console.log("words", words);
assert(words.length === 8);
assert(words.length === 11);
words = natural.getWords("word1 word2 word3 word4. le la sur word5", false, "fr");
words = natural.getWords("word1 word2 word3 word4. le la sur word5 bientôt", false, "fr");
//console.log("words", words);

@@ -32,3 +47,3 @@ assert(words.length === 5);

//console.log(words);
assert(words.length === 5);
assert(words.length === 8);

@@ -35,0 +50,0 @@ });

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