Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Lorca is a NLP library for Spanish written in javascript.
Not suported yet, but soon.
Run:
$ npm install lorca-nlp
Start using the library like:
const lorca = require('lorca-nlp');
var doc = lorca('esto es un test');
doc.words().get();
// [ 'esto', 'es', 'un', 'test' ]
Extract sentences, words or syllables.
var doc = lorca('En verano hace calor. En invierno hace frío');
doc.get();
// En verano hace calor. En invierno hace frío.
doc.sentences().get();
// [ 'En verano hace calor.', ' En invierno hace frío.' ]
doc.words().get();
// [ 'en', 'verano', 'hace', 'calor', 'en', 'invierno', 'hace', 'frío' ]
doc.syllables().get();
// [ 'en', 've', 'ra', 'no', 'ha', 'ce', 'ca', 'lor.', 'en', 'in', 'vier', 'no', 'ha', 'ce','frí', 'o.' ]
doc.uniqueWords().get();
// [ 'en', 'verano', 'hace', 'calor', 'invierno', 'frío' ]
doc.onceWords().get();
// [ 'verano', 'calor', 'invierno', 'frío' ]
Group the output by sentence, word or both.
doc.sentences().words().get();
// [ [ 'en', 'verano', 'hace', 'calor' ],
// [ 'en', 'invierno', 'hace', 'frío' ] ]
doc.sentences().words().syllables().get();
/*
[ [ [ 'en' ],
[ 've', 'ra', 'no' ],
[ 'ha', 'ce' ],
[ 'ca', 'lor' ] ],
[ [ 'en' ],
[ 'in', 'vier', 'no' ],
[ 'ha', 'ce' ],
[ 'frí', 'o' ] ] ]
*/
doc.sentences().syllables().get();
// [ [ 'En ', 've', 'ra', 'no', ' ha', 'ce ', 'ca', 'lor.' ],
// [ ' En', ' in', 'vier', 'no', ' ha', 'ce ', 'frí', 'o.' ] ]
doc.words().syllables().get();
/*
[ [ 'en' ],
[ 've', 'ra', 'no' ],
[ 'ha', 'ce' ],
[ 'ca', 'lor' ],
[ 'en' ],
[ 'in', 'vier', 'no' ],
[ 'ha', 'ce' ],
[ 'frí', 'o' ] ]
*/
Extract prepositions from text, sentences or words.
doc.prepositions().get();
// [ 'en', 'en' ]
doc.sentences().prepositions().get();
// [ [ 'en' ], [ 'en' ] ]
doc.words().prepositions().get();
// [ [ 'en' ], [], [], [], [ 'en' ], [], [], [] ]
Extract pronouns from text, sentences or words.
var doc = lorca('Yo le canto a él. Él se rie.');
doc.pronouns().get();
// [ 'yo', 'él', 'él' ]
doc.sentences().pronouns().get();
// [ [ 'yo', 'él' ], [ 'él' ] ]
doc.words().pronouns().get()
// [ [ 'yo' ], [], [], [], [ 'él' ], [ 'él' ], [], [] ]
doc.pronouns().percentage().get();
// 0.375
doc.sentences().pronouns().percentage().get();
// [ 0.4, 0.3333333333333333 ]
Extract adverbs from text, sentences or words.
var doc = lorca('En verano hace realmente calor. En invierno hace frío');
doc.adverbs().get();
// [ 'realmente' ]
doc.sentences().adverbs().get();
// [ [ 'realmente' ], [] ]
Test whether a sentence is passive.
var doc = lorca('El niño ha sido castigado.');
doc.isPassive().get();
// true
var doc = lorca('El niño ha sido castigado. La madre lo ha castigado.');
doc.sentences().isPassive().get();
// [ true, false ]
Get the word frequency of a document. The concordance method accepts the mode 'relative'
which outputs the relative frequency of the words. It is posible to sort the output by frequency and to shorten the output array with the method sort()
.
var doc = lorca('En verano hace calor. En invierno hace frío');
doc.concordance().get();
// [ en: 2, verano: 1, hace: 2, calor: 1, invierno: 1, 'frío': 1 ]
doc.concordance().sort().get();
// [ en: 2, hace: 2, verano: 1, calor: 1, invierno: 1, 'frío': 1 ]
doc.concordance('relative').sort().get();
// [ en: 0.25, hace: 0.25, verano: 0.125 calor: 0.125, invierno: 0.125, 'frío': 0.125 ]
doc.concordance().sort(3).get();
// [ en: 2, hace: 2, verano: 1 ]
Get basic statistics of a text.
var doc = lorca('En verano hace calor. En invierno hace frío');
doc.words().get().length;
// 8
doc.sentences().get().length;
// 2
doc.wordsPerSentence().get();
// 4
doc.syllablesPerWord().get()
// 2
doc.syllablesPerSentence().get()
// 8
doc.uniqueWords().percentage().get();
// 0.75
doc.onceWords().percentage().get();
// 0.5
doc.prepositions().percentage().get();
// 0.25
doc.sentences().prepositions().percentage().get();
// [ 0.25, 0.25 ]
doc.ifsz().get();
// 78
doc.ifsz().grade().get();
// Bastante fácil
Disclaimer: It uses a semi-automated translation of the original AFINN list. The list only contains words that are inside the 10.000 most used words. It has a total of 885 words. The sentiment()
method calculates the relative value of each sentece and then it returns the relative values of those sentences. Positive values mean a positive sentiment and negative values mean negative sentiment.
var doc = lorca('El plátano está malo.');
doc.sentiment();
// -0.75
var doc = lorca('Me gusta la navidad.');
doc.sentiment();
// 0.5
var doc = lorca('El plátano está muy bueno. Me gusta la navidad. Esto no ha sido magnífico.');
doc.sentences().sentiment();
// [ 0.6, 0.5, -1.2 ]
doc.words().sentiment();
// [ 0, 0, 0, 0, 3, 0, 2, 0, 0, 0, -1, 0, 0, 5 ]
doc.sentences().words().sentiment()
// [ [ 0, 0, 0, 0, 3 ], [ 0, 2, 0, 0 ], [ 0, -1, 0, 0, 5 ] ]
doc.sentiment();
// -0.03333333333333329
Get the reading time of a text in seconds. You can pass a reading speed as
an argument in the readingtime(400)
in words per minute. If no reading
speed is given, it will use default value of 220 wpm.
var doc = lorca('El niño ha sido castigado. La madre lo ha castigado.');
doc.readingTime();
// 2.72
Search any word in the text. You can use Regex too.
var doc = lorca('En verano hace calor. En invierno hace frío');
doc.find("verano");
// [ 'verano' ]
doc.sentences().find("verano");
// [ [ 'verano' ], [] ]
$ npm test
FAQs
NLP for Spanish
We found that lorca-nlp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.