package linguistics

// AnalysisResult contains the results of linguistic analysis
type AnalysisResult struct {
	// Basic text statistics
	WordCount         int
	SentenceCount     int
	ParagraphCount    int
	AvgWordLength     float64
	AvgSentenceLength float64

	// Readability metrics
	ReadabilityScore  float64
	ReadabilityMethod string

	// Linguistic features
	PartOfSpeechCounts map[string]int
	Entities           []Entity
	Keywords           []Keyword

	// Semantic analysis
	Sentiment float64 // -1.0 to 1.0 (negative to positive)
	Topics    []Topic
}

// Entity represents a named entity found in text
type Entity struct {
	Text  string
	Type  string // person, location, organization, etc.
	Count int
}

// Keyword represents an important keyword in the text
type Keyword struct {
	Text      string
	Relevance float64 // 0.0 to 1.0
}

// Topic represents a topic identified in the text
type Topic struct {
	Name      string
	Relevance float64 // 0.0 to 1.0
}
