tercul-backend/internal/jobs/linguistics/ports.go

20 lines
730 B
Go

package linguistics
// LanguageDetector defines a provider that can detect the language of a text
type LanguageDetector interface {
// DetectLanguage returns a BCP-47 or ISO-like code and whether detection was confident
DetectLanguage(text string) (string, bool)
}
// SentimentProvider defines a provider that scores sentiment in [-1, 1]
type SentimentProvider interface {
// Score returns sentiment for the text (optionally using language)
Score(text string, language string) (float64, error)
}
// KeywordProvider defines a provider that extracts keywords from text
type KeywordProvider interface {
// Extract returns a list of keywords with relevance in [0,1]
Extract(text string, language string) ([]Keyword, error)
}