mirror of
https://github.com/SamyRai/tercul-backend.git
synced 2025-12-27 05:11:34 +00:00
50 lines
978 B
Go
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
|
|
}
|