All Projects → winkjs → wink-ner

winkjs / wink-ner

Licence: MIT license
Language agnostic named entity recognizer

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to wink-ner

wink-nlp
Developer friendly Natural Language Processing ✨
Stars: ✭ 312 (+875%)
Mutual labels:  ner, wink
viewpoint-mining
参考NER,基于BERT的电商评论观点挖掘和情感分析
Stars: ✭ 31 (-3.12%)
Mutual labels:  ner
nalaf
NLP framework in python for entity recognition and relationship extraction
Stars: ✭ 104 (+225%)
Mutual labels:  ner
sohucampus2019
sohucampus2019 baseline
Stars: ✭ 28 (-12.5%)
Mutual labels:  ner
korean ner tagging challenge
KU_NERDY 이동엽, 임희석 (2017 국어 정보 처리 시스템경진대회 금상) - 한글 및 한국어 정보처리 학술대회
Stars: ✭ 30 (-6.25%)
Mutual labels:  ner
naacl2019-select-pretraining-data-for-ner
BiLSTM-CRF model for NER
Stars: ✭ 15 (-53.12%)
Mutual labels:  ner
NER-in-Chinese-Text
NLP Keras BiLSTM+CRF
Stars: ✭ 53 (+65.63%)
Mutual labels:  ner
homebridge-wink3
Homebridge plugin for wink.com
Stars: ✭ 53 (+65.63%)
Mutual labels:  wink
deep-atrous-ner
Deep-Atrous-CNN-NER: Word level model for Named Entity Recognition
Stars: ✭ 35 (+9.38%)
Mutual labels:  ner
wink-tokenizer
Multilingual tokenizer that automatically tags each token with its type
Stars: ✭ 51 (+59.38%)
Mutual labels:  wink
verseagility
Ramp up your custom natural language processing (NLP) task, allowing you to bring your own data, use your preferred frameworks and bring models into production.
Stars: ✭ 23 (-28.12%)
Mutual labels:  ner
anonymisation
Anonymization of legal cases (Fr) based on Flair embeddings
Stars: ✭ 85 (+165.63%)
Mutual labels:  ner
2020CCF-NER
2020 CCF大数据与计算智能大赛-非结构化商业文本信息中隐私信息识别-第7名方案
Stars: ✭ 66 (+106.25%)
Mutual labels:  ner
anonymization-api
How to build and deploy an anonymization API with FastAPI
Stars: ✭ 51 (+59.38%)
Mutual labels:  ner
simple NER
simple rule based named entity recognition
Stars: ✭ 29 (-9.37%)
Mutual labels:  ner
RerankNER
Neural Reranking for Named Entity Recognition, accepted as regular paper at RANLP 2017
Stars: ✭ 22 (-31.25%)
Mutual labels:  ner
lingvo--Ner-ru
Named entity recognition (NER) in Russian texts / Определение именованных сущностей (NER) в тексте на русском языке
Stars: ✭ 38 (+18.75%)
Mutual labels:  ner
ner-d
Python module for Named Entity Recognition (NER) using natural language processing.
Stars: ✭ 14 (-56.25%)
Mutual labels:  ner
NER BiLSTM CRF Chinese
BiLSTM_CRF中文实体命名识别
Stars: ✭ 46 (+43.75%)
Mutual labels:  ner
parsbert-ner
🤗 ParsBERT Persian NER Tasks
Stars: ✭ 15 (-53.12%)
Mutual labels:  ner

wink-ner

Language agnostic named entity recognizer

Build Status Coverage Status Inline docs dependencies Status devDependencies Status Gitter

Recognize named entities in a sentence using wink-ner. It is a smart Gazetteer-based Named Entity Recognizer (NER), which can be easily trained to suite specific needs. For example, the wink-ner can differentiate between Manchester United & Manchester in a single sentence and tag them as a club and city respectively.

Installation

Use npm to install:

npm install wink-ner --save

Getting Started

Named Entity Recognition

// Load wink ner.
var ner = require( 'wink-ner' );
// Create your instance of wink ner & use default config.
var myNER = ner();
// Define training data.
var trainingData = [
  { text: 'manchester united', entityType: 'club', uid: 'manu' },
  { text: 'manchester', entityType: 'city' },
  { text: 'U K', entityType: 'country', uid: 'uk' }
];
// Learn from the training data.
myNER.learn( trainingData );
// Since recognize() requires tokens, use wink-tokenizer.
var winkTokenizer = require( 'wink-tokenizer' );
// Instantiate it and extract tokenize() api.
var tokenize = winkTokenizer().tokenize;
// Tokenize the sentence.
var tokens = tokenize( 'Manchester United is a football club based in Manchester, U. K.' );
// Simply Detect entities!
tokens = myNER.recognize( tokens );
console.log( tokens );
// -> [
//      { entityType: 'club', uid: 'manu', originalSeq: [ 'Manchester', 'United' ],
//        value: 'manchester united', tag: 'word' },
//      { value: 'is', tag: 'word' },
//      { value: 'a', tag: 'word' },
//      { value: 'football', tag: 'word' },
//      { value: 'club', tag: 'word' },
//      { value: 'based', tag: 'word' },
//      { value: 'in', tag: 'word' },
//      { entityType: 'city', value: 'Manchester', tag: 'word',
//        originalSeq: [ 'Manchester' ], uid: 'manchester' },
//      { value: ',', tag: 'punctuation' },
//      { entityType: 'country', uid: 'uk', originalSeq: [ 'U', '.', 'K' ],
//        value: 'u k', tag: 'word' },
//      { value: '.', tag: 'punctuation' }
//    ]

Integration with POS Tagging

The tokens returned from recognize() may be further passed down to tag() api of wink-pos-tagger for pos tagging.

Just in case you need to assign a specific pos tag to an entity, the same can be achieved by including a property pos in the entity definition and assigning it the desired pos tag (e.g. 'NNP'); the wink-pos-tagger will automatically do the needful. For details please refer to learn() api of wink-ner.

// Load pos tagger.
var tagger = require( 'wink-pos-tagger' );
// Instantiate it and extract tag api.
var tag = tagger().tag;
tokens = tag( tokens );
console.log( tokens );
// -> [ { entityType: 'club', uid: 'manu', originalSeq: [ 'Manchester', 'United' ],
//        value: 'manchester united', tag: 'word', normal: 'manchester united', pos: 'NNP' },
//      { value: 'is', tag: 'word', normal: 'is', pos: 'VBZ', lemma: 'be' },
//      { value: 'a', tag: 'word', normal: 'a', pos: 'DT' },
//      { value: 'football', tag: 'word', normal: 'football', pos: 'NN', lemma: 'football' },
//      { value: 'club', tag: 'word', normal: 'club', pos: 'NN', lemma: 'club' },
//      { value: 'based', tag: 'word', normal: 'based', pos: 'VBN', lemma: 'base' },
//      { value: 'in', tag: 'word', normal: 'in', pos: 'IN' },
//      { value: 'Manchester', tag: 'word', originalSeq: [ 'Manchester' ],
//        uid: 'manchester', entityType: 'city', normal: 'manchester', pos: 'NNP' },
//      { value: ',', tag: 'punctuation', normal: ',', pos: ',' },
//      { entityType: 'country', uid: 'uk', originalSeq: [ 'U', '.', 'K' ],
//        value: 'u k', tag: 'word', normal: 'u k', pos: 'NNP' },
//      { value: '.', tag: 'punctuation', normal: '.', pos: '.' }
//    ]

Documentation

Check out the named entity recognizer API documentation to learn more.

Need Help?

If you spot a bug and the same has not yet been reported, raise a new issue or consider fixing it and sending a pull request.

About wink

Wink is a family of open source packages for Statistical Analysis, Natural Language Processing and Machine Learning in NodeJS. The code is thoroughly documented for easy human comprehension and has a test coverage of ~100% for reliability to build production grade solutions.

Copyright & License

wink-ner is copyright 2017-20 GRAYPE Systems Private Limited.

It is licensed under the terms of the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].