annotateText method

Future<List<EntityAnnotation>> annotateText(
  1. String text, {
  2. int? referenceTime,
  3. String? preferredLocale,
  4. String? referenceTimeZone,
  5. List<EntityType>? entityTypesFilter,
})

Annotates the given text with the given parameters such as reference time, preferred locale, reference time zone and entity types filter. Returns a list of EntityAnnotation or returns empty list if there is no identified entity.

referenceTime should be expressed in milliseconds since epoch.

Implementation

Future<List<EntityAnnotation>> annotateText(
  String text, {
  int? referenceTime,
  String? preferredLocale,
  String? referenceTimeZone,
  List<EntityType>? entityTypesFilter,
}) async {
  final parameters = <String, dynamic>{
    'filters': entityTypesFilter != null && entityTypesFilter.isNotEmpty
        ? entityTypesFilter.map((e) => e.index).toList()
        : null,
    'locale': preferredLocale,
    'timezone': referenceTimeZone,
    'time': referenceTime,
  };

  final result = await _channel.invokeMethod(
      'nlp#startEntityExtractor', <String, dynamic>{
    'parameters': parameters,
    'id': id,
    'text': text,
    'language': language.name
  });

  final annotations = <EntityAnnotation>[];
  for (final dynamic json in result) {
    annotations.add(EntityAnnotation.fromJson(json));
  }
  return annotations;
}