recognizers-text-suite provides robust recognition and resolution of numbers, units, date/time, and more; expressed in multiple languages.
npm install @microsoft/recognizers-text-suiterecognizers-text-suite package, or clone our GitHub repository using Git.
Build.cmd file.
npm install @microsoft/recognizers-text-suite
npm install @microsoft/recognizers-text-number
npm install @microsoft/recognizers-text-number-with-unit
npm install @microsoft/recognizers-text-date-time
npm install @microsoft/recognizers-text-sequence
npm install @microsoft/recognizers-text-choice
JavaScript
var Recognizers = require('@microsoft/recognizers-text-suite');
var NumberRecognizers = require('@microsoft/recognizers-text-number');
var NumberWithUnitRecognizers = require('@microsoft/recognizers-text-number-with-unit');
var DateTimeRecognizers = require('@microsoft/recognizers-text-date-time');
var SequenceRecognizers = require('@microsoft/recognizers-text-sequence');
var ChoiceRecognizers = require('@microsoft/recognizers-text-choice');
``
$3
This is the preferred way if you need to parse multiple inputs based on the same context (e.g.: language and options):
`JavaScript
var recognizer = new NumberRecognizers.NumberRecognizer(Recognizers.Culture.English);
var model = recognizer.getNumberModel();
var result = model.parse('Twelve');
`
Or, for less verbosity, you use the helper methods:
var result = Recognizers.recognizeNumber("Twelve", Recognizers.Culture.English);
Internally, both methods will cache the instance models to avoid extra costs.
$3
* Numbers
This recognizer will find any number from the input. E.g. _"I have two apples"_ will return _"2"_.
Recognizers.recognizeNumber('I have two apples', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberRecognizers.NumberRecognizer(Recognizers.Culture.English).getNumberModel()
* Ordinal Numbers
This recognizer will find any ordinal number. E.g. _"eleventh"_ will return _"11"_.
Recognizers.recognizeOrdinal('eleventh', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberRecognizers.NumberRecognizer(Recognizers.Culture.English).getOrdinalModel()
* Percentages
This recognizer will find any number presented as percentage. E.g. _"one hundred percents"_ will return _"100%"_.
Recognizers.recognizePercentage('one hundred percents', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberRecognizers.NumberRecognizer(Recognizers.Culture.English).getPercentageModel()
$3
* Ages
This recognizer will find any age number presented. E.g. _"After ninety five years of age, perspectives change"_ will return _"95 Year"_.
Recognizers.recognizeAge('After ninety five years of age, perspectives change', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberWithUnitRecognizers.NumberWithUnitRecognizer(Recognizers.Culture.English).getAgeModel()
* Currencies
This recognizer will find any currency presented. E.g. _"Interest expense in the 1988 third quarter was $ 75.3 million"_ will return _"75300000 Dollar"_.
Recognizers.recognizeCurrency('Interest expense in the 1988 third quarter was $ 75.3 million', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberWithUnitRecognizers.NumberWithUnitRecognizer(Recognizers.Culture.English).getCurrencyModel()
* Dimensions
This recognizer will find any dimension presented. E.g. _"The six-mile trip to my airport hotel that had taken 20 minutes earlier in the day took more than three hours."_ will return _"6 Mile"_.
Recognizers.recognizeDimension('The six-mile trip to my airport hotel that had taken 20 minutes earlier in the day took more than three hours.', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberWithUnitRecognizers.NumberWithUnitRecognizer(Recognizers.Culture.English).getDimensionModel()
* Temperatures
This recognizer will find any temperature presented. E.g. _"Set the temperature to 30 degrees celsius"_ will return _"30 C"_.
Recognizers.recognizeTemperature('Set the temperature to 30 degrees celsius', Recognizers.Culture.English)
Or you can obtain a model instance using:
new NumberWithUnitRecognizers.NumberWithUnitRecognizer(Recognizers.Culture.English).getTemperatureModel()
$3
* DateTime
This recognizer will find any date, time, duration and date/time ranges, even if its write in colloquial language. E.g. _"I'll go back 8pm today"_ will return _"2017-10-04 20:00:00"_.
Recognizers.recognizeDateTime("I'll go back 8pm today", Recognizers.Culture.English)
Or you can obtain a model instance using:
new DateTimeRecognizers.DateTimeRecognizer(Recognizers.Culture.English).getDateTimeModel()
$3
* Phone Numbers
This model will find any patter of symbols detected as a phone number, even if its write in coloquial language. E.g. "My phone number is 1 (877) 609-2233." will return "1 (877) 609-2233".
Recognizers.recognizePhoneNumber("My phone number is 1 (877) 609-2233.", Culture.English)
Or you can obtain a model instance using:
new SequenceRecognizers.SequenceRecognizer(Culture.English).GetPhoneNumberModel()
* IP Address
This model will find any Ipv4/Ipv6 presented.
E.g. "My Ip is 8.8.8.8".
Recognizers.recognizeIpAddress("My Ip is 8.8.8.8")
Or you can obtain a model instance using:
new SequenceRecognizers.SequenceRecognizer(Culture.English).IpAddressModel()
$3
* Booleans
This recognizer will find any boolean value, even if its write with emoji.
E.g. _"👌 It's ok"_ will return _"true"_.
Recognizers.recognizeBoolean("👌 It's ok", Recognizers.Culture.English)
Or you can obtain a model instance using:
new ChoiceRecognizers.ChoiceRecognizer(Recognizers.Culture.English).getBooleanModel()`