
Research
Security News
Malicious npm Package Wipes Codebases with Remote Trigger
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
markovian-nlp
Advanced tools
As an isomorphic JavaScript package, there are multiple ways for clients, servers, and bundlers to start using this library. Several methods do not require installation.
RunKit provides one of the least difficult ways to get started:
Declare imports in the JS
section to get started:
import {
ngramsDistribution,
sentences,
} from 'https://unpkg.com/markovian-nlp@latest?module';
const sentence = sentences('oh me, oh my');
console.log(sentence());
// example output: 'oh me oh me oh my'
Insert the following element within the <head>
tag of an HTML document:
<script src="https://unpkg.com/markovian-nlp@latest"></script>
After the script is loaded, the markovian
browser global is exposed:
const sentence = markovian.sentences('oh me, oh my');
console.log(sentence());
// example output: 'oh me oh me oh my'
With npm
installed, run terminal command:
npm i markovian-nlp
Once installed, declare method imports at the top of each JavaScript file they will be used.
Recommended
import {
ngramsDistribution,
sentences,
} from 'markovian-nlp';
const {
ngramsDistribution,
sentences,
} = require('markovian-nlp');
Generate text sentences from a Markov process.
Potential applications: Natural language generation
In these examples, document
is text from this source:
const document = 'That there is constant succession and flux of ideas in our minds...';
const oneSentence = sentences(document);
By default, a nondeterministic sentence is generated without providing a seed
:
oneSentence();
// output: 'i have observed in the chief yet we might be able by a one...'
oneSentence();
// output: 'this is not angry chiding or so easy to them from running away...'
Optionally providing a seed
generates a deterministic sentence:
oneSentence(1);
// output: 'i would promote introduce a constant succession and hindering the path...'
oneSentence(1);
// output: 'i would promote introduce a constant succession and hindering the path...'
Optionally providing a seed
generates deterministic sentences:
sentences({
document,
count: 3,
seed: 1,
});
// output: [
// 'i would promote introduce a constant succession and hindering the path...',
// 'he that train they seem to be glad to be done as may be avoided of our thoughts...',
// 'this wandering of attention and yet for ought i know this wandering thoughts i would promote...',
// ]
View the n-grams distribution of text.
Potential applications: Markov models
ngramsDistribution('birds have featured in culture and art since prehistoric times');
// output: {
// and: { _end: 0, _start: 0, art: 1 },
// art: { _end: 0, _start: 0, since: 1 },
// birds: { _end: 0, _start: 1, have: 1 },
// culture: { _end: 0, _start: 0, and: 1 },
// featured: { _end: 0, _start: 0, in: 1 },
// have: { _end: 0, _start: 0, featured: 1 },
// in: { _end: 0, _start: 0, culture: 1 },
// prehistoric: { _end: 0, _start: 0, times: 1 },
// since: { _end: 0, _start: 0, prehistoric: 1 },
// times: { _end: 1, _start: 0 },
// }
Each number represents the sum of occurrences.
startgram | endgram | bigrams |
---|---|---|
"birds" | "times" | all remaining keys ("have featured", "featured in", etc.) |
user-defined parameter | type | implements | intermediate transformations |
---|---|---|---|
document | String | compromise(document ) | normalization, rule-based text parsing |
type | description |
---|---|
Object | distributions of unigrams to startgrams, endgrams, and following bigrams |
// pseudocode signature representation (does not run)
ngramsDistribution(document) => ({
...unigrams: {
...{ ...bigram: bigramsDistribution },
_end: endgramsDistribution,
_start: startgramsDistribution,
},
});
user-defined parameter | type | optional | default value | implements | description |
---|---|---|---|---|---|
document , options.document | String | false | compromise(document ) | Text. | |
seed , options.seed | Number | true | undefined | Chance(seed ) | Leave undefined (default) for nondeterministic results, or specify seed for deterministic results. |
options | Object | true | |||
options.count | Number | true | 1 | Number of sentences to output. |
type | description |
---|---|
Array[Strings...] | generated sentences |
Learn more about computational linguistics and natural language processing (NLP) on Wikipedia.
The following terms are used in the API documentation:
term | description |
---|---|
bigram | 2-gram sequence |
deterministic | repeatable, non-random |
endgram | final gram in a sequence |
n-gram | contiguous gram (word) sequence |
startgram | first gram in a sequence |
unigram | 1-gram sequence |
FAQs
NLP tools generate Markov sentences & models.
The npm package markovian-nlp receives a total of 3 weekly downloads. As such, markovian-nlp popularity was classified as not popular.
We found that markovian-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.
Research
Security News
A malicious npm typosquat uses remote commands to silently delete entire project directories after a single mistyped install.
Research
Security News
Malicious PyPI package semantic-types steals Solana private keys via transitive dependency installs using monkey patching and blockchain exfiltration.
Security News
New CNA status enables OpenJS Foundation to assign CVEs for security vulnerabilities in projects like ESLint, Fastify, Electron, and others, while leaving disclosure responsibility with individual maintainers.