tercul-backend/internal/jobs/linguistics/registry.go
2025-09-05 21:37:42 +00:00

50 lines
978 B
Go

package linguistics
// Registry holds all the text analysis services
type Registry struct {
Lang LanguageDetector
Tok *Tokenizer
Pos *POSTagger
Lem *Lemmatizer
Phon *PhoneticEncoder
Key *KeywordExtractor
Poet *PoeticAnalyzer
}
// DefaultRegistry creates a new Registry with default implementations
func DefaultRegistry() *Registry {
return &Registry{
Lang: NewLanguageDetector(),
Tok: NewTokenizer(),
Pos: NewPOSTagger(),
Lem: NewLemmatizer(),
Phon: NewPhoneticEncoder(),
Key: NewKeywordExtractor(),
Poet: NewPoeticAnalyzer(),
}
}
// Text represents a text to be analyzed
type Text struct {
ID uint
Body string
Language string
}
// Token represents a token in a text
type Token struct {
Text string
Position int
Offset int
Length int
}
// PoeticMetrics represents metrics from poetic analysis
type PoeticMetrics struct {
RhymeScheme string
MeterType string
StanzaCount int
LineCount int
Structure string
}