Skip to content

Latest commit

 

History

History
141 lines (114 loc) · 4.09 KB

File metadata and controls

141 lines (114 loc) · 4.09 KB

MLKitEntityExtraction

A MachineLearning Based Entity Extractor

Build Powerful React Native With Entity Extractor Amazing ⚡️

MIT License

MLKitEntityExtractor
⚡️ Multiple Language Support over 10 languages supported (full list)
😎 Lazy loaded. download models when needed
🔄 Offline-first. no network required for using
📱 Multiplatform. iOS, Android
Fast. About TO Migrating to RN New Arch(JSI)
🔗 Relational. Built on MLKit Translation foundation
⚠️ Static typing Full-Support TypeScript

Why MLKitEntityExtractor?

Most apps offer users very little interaction with text beyond the basic cut/copy/paste operations. Entity extraction improves the user experience inside your app by understanding text and allowing you to add helpful shortcuts based on context.

The Entity Extraction API allows you to recognize specific entities within static text and while you're typing. Once an entity is identified, you can easily enable different actions for the user based on the entity type. Supported entities included are:

Entity Example
Address 350 third street, Cambridge MA
Date-Time 2019/09/29, let's meet tomorrow at 6pm
Email address [email protected]
Flight Number (IATA flight codes only) LX37
IBAN CH52 0483 0000 0000 0000 9
ISBN (version 13 only) 978-1101904190
Money/Currency (Arabic numerals only) $12, 25 USD
Payment / Credit Cards 4111 1111 1111 1111
Phone Number (555) 225-3556 12345
Tracking Number (standardized international formats) 1Z204E380338943508
URL www.google.com https://en.wikipedia.org/wiki/Platypus

This API focuses on precision over recognition. Some instances of a particular entity might not be detected in favor of ensuring accuracy.

Installation

yarn add react-native-mlkit-entity-extraction

or

npm i --save react-native-mlkit-entity-extraction

! Android Special

// 31 is required !
compileSdkVersion = 31
targetSdkVersion = 31

Usage

Quick example: identify language type

import MLKitEntityExtraction from './MLKitEntityExtraction';

const text = "My flight is LX373, please pick me up at 8am tomorrow. You can look up at http://github.com";

MLKitEntityExtraction.isModelDownloaded('ENGLISH')
    .then(v => {
		if (v) {
			//extrac it right now
            MLKitEntityExtraction.annotate(
                text,
                'ENGLISH',
                ['TYPE_FLIGHT_NUMBER','TYPE_DATE_TIME','TYPE_URL']
            ).then(v => {
				setExtractions(v);
			}).catch(e => {
                //something wrong
			})
		}else{
			//download model
			MLKitEntityExtraction
                .downloadModel('ENGLISH')
                .then(rs => {
					//download success
				}).catch(e => {
					//something wrong
				})
			}
	});

Remember !!! ✨ Always check model firstly ; Do not translate text if the model is not downloaded

use MLKitEntityExtraction.isModelDownloaded to check

Full Support Language

  • ARABIC
  • GERMAN
  • ENGLISH
  • SPANISH
  • FRENCH
  • ITALIAN
  • JAPANESE
  • KOREAN
  • DUTCH
  • POLISH
  • PORTUGUESE
  • RUSSIAN
  • THAI
  • TURKISH
  • CHINESE

All Supported Entity Type

  • ADDRESS
  • DATE_TIME
  • EMAIL
  • FLIGHT_NUMBER
  • IBAN
  • ISBN
  • PAYMENT_CARD
  • PHONE
  • TRACKING_NUMBER
  • URL
  • MONEY

Author and license

WatermelonDB was created by @yaaliuzhipeng

react-native-mlkit-translate-text is available under the MIT license. See the LICENSE file for more info.