Nasty.Semantic.EntityRecognition behaviour (Nasty v0.3.0)

View Source

Behaviour for language-agnostic named entity recognition (NER).

This behaviour defines the interface for identifying and classifying named entities in text, regardless of the source language.

Summary

Callbacks

Recognizes named entities from token sequence.

Recognizes named entities in a document.

Recognizes named entities in a sentence.

Returns entity types supported by this implementation.

Types

entity_types()

@type entity_types() :: [
  :person | :organization | :location | :date | :money | :percent | :misc
]

options()

@type options() :: keyword()

Callbacks

recognize(tokens, opts)

@callback recognize(tokens :: [Nasty.AST.Token.t()], opts :: options()) ::
  {:ok, [Nasty.AST.Semantic.Entity.t()]} | {:error, term()}

Recognizes named entities from token sequence.

Parameters

  • tokens - List of tokens to analyze
  • opts - Recognition options

Returns

  • {:ok, entities} - List of recognized entities
  • {:error, reason} - Recognition error

recognize_document(document, opts)

@callback recognize_document(document :: Nasty.AST.Document.t(), opts :: options()) ::
  {:ok, [Nasty.AST.Semantic.Entity.t()]} | {:error, term()}

Recognizes named entities in a document.

Parameters

  • document - Document AST to process
  • opts - Recognition options
    • :types - Specific entity types to recognize (default: all)
    • :confidence_threshold - Minimum confidence (default: 0.5)

Returns

  • {:ok, entities} - List of recognized entities
  • {:error, reason} - Recognition error

recognize_sentence(sentence, opts)

@callback recognize_sentence(sentence :: Nasty.AST.Sentence.t(), opts :: options()) ::
  {:ok, [Nasty.AST.Semantic.Entity.t()]} | {:error, term()}

Recognizes named entities in a sentence.

Parameters

  • sentence - Sentence AST to process
  • opts - Recognition options

Returns

  • {:ok, entities} - List of recognized entities
  • {:error, reason} - Recognition error

supported_types()

(optional)
@callback supported_types() :: entity_types()

Returns entity types supported by this implementation.