Extract Keywords from sentence or Replace keywords in sentences.
flashtext's implementation via typescript.
read regex-was-taking-5-days-flashtext-does-it-in-15-minutes to learn more.
if you should match over 500 keywords, flashtext will better tha regexp, otherwise you may not need it
npm install flashtext2js
yarn add flashtext2js
then
// FlashText is the Class, flashtext is the instance with default option
import FlashText, { flashtext } from 'flashtextjs';
// if you want to ignore case, use let ft = new FlashText({ignore: true});
// extract keywords from a target string
const target = 'I love Big Apple and Bay Area.'
ft.addKeyWord('Big Apple', 'New York')
ft.addKeyWord('Bay Area')
ft.extractKeywords(target) // output: ['New York', 'Bay Area']
// replace the string via keywords
const target = 'I love Big Apple and New Delhi.'
ft.addKeyWord('New Delhi', 'NCR region');
ft.replaceKeyWords(target) // output: 'I love Big Apple and NCR region.'
- ft.addKeyWord(keyword: string, mapped?: string)
add the keyword in trie structure. when the keyword matched in the target string, will return secode param mapped.
mapped default is equal to keyword string.
ft.addKeyWord('New Delhi', 'NCR region');
ft.get('New Delhi'); // output 'NCR region'
ft.extractKeywords('I love Big Apple and Bay Area.') // output: ['NCR region']
- addKeyWordsFromArray(keywords: string[], mapped?: string)
as the name
ft.addKeyWordsFromArray(['jack rose'])
- ft.addKeyWordsFromObject(object)
the object must like this structure: { 'mapped': [] }
ft.addKeyWordsFromObject({'jack rose': ['jack roses', 'jack ros']});
// means when matched 'jack roses' or 'jack ros', will return 'jack rose'
- ft.removeKeyWord(keyword: string)
will remove the keyword in the trie structure
-ft.removeKeyWordsFromArray(keywords: string[])
just forEach(() => removeKeyWord())
- ft.toMap()
will return a keyword-mapped mapper.
ft.addKeyword('abc', 'ABC');
ft.addKeyword('abd', 'ABC');
ft.toMap(); // output {abc: 'ABC', abd: 'ABC'}
- ft.extractKeywords(target: string)
will return all the matched keywords in an arry
// extract keywords from a target string
const target = 'I love Big Apple and Bay Area.'
ft.addKeyWord('Big Apple', 'New York')
ft.addKeyWord('Bay Area')
ft.extractKeywords(target) // output: ['New York', 'Bay Area']
- ft.replaceKeyWords(target: string)
will replace the target string with keywords and return it.
// replace the string via keywords
const target = 'I love Big Apple and New Delhi.'
ft.addKeyWord('New Delhi', 'NCR region');
ft.replaceKeyWords(target) // output: 'I love Big Apple and NCR region.'
more api, just go here