natural-content
Advanced tools
Comparing version 1.0.7 to 1.0.8
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; |
@@ -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 @@ }); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
30217
7
1267