Comparing version 0.3.0 to 1.0.0
{ | ||
"name": "wink-ner", | ||
"version": "0.3.0", | ||
"version": "1.0.0", | ||
"description": "Language agnostic named entity recognizer", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -5,3 +5,3 @@ # wink-ner | ||
### [![Stability](https://img.shields.io/badge/stability-1--experimental-orange.svg)](https://nodejs.org/api/documentation.html#documentation_stability_index) [![Build Status](https://api.travis-ci.org/winkjs/wink-ner.svg?branch=master)](https://travis-ci.org/winkjs/wink-ner) [![Coverage Status](https://coveralls.io/repos/github/winkjs/wink-ner/badge.svg?branch=master)](https://coveralls.io/github/winkjs/wink-ner?branch=master) [![Inline docs](http://inch-ci.org/github/winkjs/wink-ner.svg?branch=master)](http://inch-ci.org/github/winkjs/wink-ner) [![dependencies Status](https://david-dm.org/winkjs/wink-ner/status.svg)](https://david-dm.org/winkjs/wink-ner) [![devDependencies Status](https://david-dm.org/winkjs/wink-ner/dev-status.svg)](https://david-dm.org/winkjs/wink-ner?type=dev) | ||
### [![Build Status](https://api.travis-ci.org/winkjs/wink-ner.svg?branch=master)](https://travis-ci.org/winkjs/wink-ner) [![Coverage Status](https://coveralls.io/repos/github/winkjs/wink-ner/badge.svg?branch=master)](https://coveralls.io/github/winkjs/wink-ner?branch=master) [![Inline docs](http://inch-ci.org/github/winkjs/wink-ner.svg?branch=master)](http://inch-ci.org/github/winkjs/wink-ner) [![dependencies Status](https://david-dm.org/winkjs/wink-ner/status.svg)](https://david-dm.org/winkjs/wink-ner) [![devDependencies Status](https://david-dm.org/winkjs/wink-ner/dev-status.svg)](https://david-dm.org/winkjs/wink-ner?type=dev) | ||
@@ -8,0 +8,0 @@ [<img align="right" src="https://decisively.github.io/wink-logos/logo-title.png" width="100px" >](http://winkjs.org/) |
@@ -327,6 +327,5 @@ // wink-ner | ||
// Normalize after removing extra white spaces; required for acronyms processing. | ||
const text = normalize( ( entity.text ).trim().replace( /\s+/, ' ' ) ); | ||
const entityType = ( entity.text ).trim().replace( /\s+/, ' ' ); | ||
const text = normalize( ( entity.text || '' ).trim().replace( /\s+/, ' ' ) ); | ||
// Add if `text` and `entityType` are defined. | ||
if ( text && entityType ) { | ||
if ( text && entity.entityType ) { | ||
const words = text.split( /\s+/ ); | ||
@@ -430,2 +429,16 @@ length += 1; | ||
// ### lookup | ||
/** | ||
* @private | ||
* Exports the JSON of the learnings generated by `learn()`, which may be | ||
* saved in a file that may be used later for NER purpose. | ||
* | ||
* @param {number} i — index of tokens, from where the lookup is performed. | ||
* @param {object[]} tokens — input tokens to NER. | ||
* @param {object} candidate — result of lookup in `uniWordEntities`. | ||
* @param {array} nerdts — NERed tokens. | ||
* @return {number} of the learnings. | ||
* @example | ||
* var learnings = myNER.exportJSON(); | ||
*/ | ||
var lookup = function ( i, tokens, candidate, nerdts ) { | ||
@@ -548,10 +561,9 @@ var result; | ||
var exportJSON = function ( ) { | ||
return true; | ||
}; // exportJSON() | ||
var importJSON = function ( ) { | ||
return true; | ||
}; // importJSON() | ||
// ### initialize | ||
/** | ||
* @private | ||
* Initalizes the config and learning related variables. | ||
* | ||
* @return {undefined} of the learnings. | ||
*/ | ||
var initialize = function ( ) { | ||
@@ -587,2 +599,80 @@ // Define default configuration. | ||
// ### exportJSON | ||
/** | ||
* | ||
* Exports the JSON of the learnings generated by `learn()`, which may be | ||
* saved in a file that may be used later for NER purpose. | ||
* | ||
* @return {json} of the learnings. | ||
* @example | ||
* var learnings = myNER.exportJSON(); | ||
*/ | ||
var exportJSON = function ( ) { | ||
return ( JSON.stringify( [ | ||
cfg, | ||
uniWordEntities, | ||
multiWordEntities, | ||
// For future expansion but the import will have to have intelligence to | ||
// set the default values and still ensure nothing breaks! Hopefully!! | ||
{}, | ||
[], | ||
[] | ||
] ) ); | ||
}; // exportJSON() | ||
// ### importJSON | ||
/** | ||
* | ||
* Imports the ner learnings from an already exported ner learnings via the | ||
* [`exportJSON()`](#exportjson). | ||
* | ||
* @param {json} json — containg an earlier exported learnings in JSON format. | ||
* @return {boolean} always `true`. | ||
* @throws {error} if invalid JSON is encountered. | ||
* @example | ||
* var myNER = ner(); | ||
* // Assuming that `json` has valid learnings. | ||
* myNER.importJSON( json ); | ||
*/ | ||
var importJSON = function ( json ) { | ||
if ( !json ) { | ||
throw Error( 'wink-ner: undefined or null JSON encountered, import failed!' ); | ||
} | ||
// Validate json format | ||
var isOK = [ | ||
helpers.object.isObject, | ||
helpers.object.isObject, | ||
helpers.object.isObject, | ||
helpers.object.isObject, | ||
helpers.array.isArray, | ||
helpers.array.isArray | ||
]; | ||
var parsedJSON; | ||
try { | ||
parsedJSON = JSON.parse( json ); | ||
} catch ( ex ) { | ||
throw Error( 'wink-ner: invalid JSON structure encountered, can not import.' ); | ||
} | ||
if ( !helpers.array.isArray( parsedJSON ) || parsedJSON.length !== isOK.length ) { | ||
throw Error( 'wink-ner: invalid JSON format encountered, can not import.' ); | ||
} | ||
for ( var i = 0; i < isOK.length; i += 1 ) { | ||
if ( !isOK[ i ]( parsedJSON[ i ] ) ) { | ||
throw Error( 'wink-ner: invalid JSON element encountered, can not import.' ); | ||
} | ||
} | ||
// All good, setup variable values. | ||
// First reset everything. | ||
reset(); | ||
// Load variable values. | ||
cfg = parsedJSON[ 0 ]; | ||
uniWordEntities = parsedJSON[ 1 ]; | ||
multiWordEntities = parsedJSON[ 2 ]; | ||
// Return success. | ||
return true; | ||
}; // importJSON() | ||
// Main Code starts here! | ||
initialize(); | ||
@@ -589,0 +679,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
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
72484
651
0