Documentation
¶
Index ¶
- func GetFieldTypeMetadata(fieldType ExtendedFieldType) map[string]interface{}
- func IsValidFieldType(fieldType string) bool
- type ArrayTransformer
- type BaseFieldExtractor
- type CategoryExtractor
- type CategoryField
- type ChainTransformer
- type DateTransformer
- type EntityField
- type ExtendedFieldType
- type FieldExtractor
- type FieldTransformer
- type JSONTransformer
- type KeywordField
- type LanguageField
- type ReadingTimeField
- type RelatedArticle
- type RelatedArticlesExtractor
- type SentimentField
- type StringTransformer
- type TagField
- type TagsExtractor
- type URLTransformer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetFieldTypeMetadata ¶
func GetFieldTypeMetadata(fieldType ExtendedFieldType) map[string]interface{}
GetFieldTypeMetadata returns metadata for a field type
func IsValidFieldType ¶
IsValidFieldType checks if a field type is valid
Types ¶
type ArrayTransformer ¶
type ArrayTransformer struct {
// contains filtered or unexported fields
}
ArrayTransformer processes array fields
func NewArrayTransformer ¶
func NewArrayTransformer(elementTransformer FieldTransformer) *ArrayTransformer
NewArrayTransformer creates a new array transformer
func (*ArrayTransformer) SetDeduplication ¶
func (at *ArrayTransformer) SetDeduplication(enabled bool)
SetDeduplication enables or disables item deduplication
func (*ArrayTransformer) SetMaxItems ¶
func (at *ArrayTransformer) SetMaxItems(max int)
SetMaxItems sets the maximum number of items
func (*ArrayTransformer) TargetType ¶
func (at *ArrayTransformer) TargetType() string
TargetType returns the target type
func (*ArrayTransformer) Transform ¶
func (at *ArrayTransformer) Transform(value interface{}) interface{}
Transform processes an array of values
type BaseFieldExtractor ¶
type BaseFieldExtractor struct {
// contains filtered or unexported fields
}
BaseFieldExtractor provides common functionality
func (*BaseFieldExtractor) Confidence ¶
func (bfe *BaseFieldExtractor) Confidence() float64
Confidence returns the extraction confidence
func (*BaseFieldExtractor) Name ¶
func (bfe *BaseFieldExtractor) Name() string
Name returns the extractor name
func (*BaseFieldExtractor) Type ¶
func (bfe *BaseFieldExtractor) Type() ExtendedFieldType
Type returns the field type
type CategoryExtractor ¶
type CategoryExtractor struct {
BaseFieldExtractor
// contains filtered or unexported fields
}
CategoryExtractor extracts article categories
func NewCategoryExtractor ¶
func NewCategoryExtractor() *CategoryExtractor
NewCategoryExtractor creates a new category extractor
func (*CategoryExtractor) Extract ¶
func (ce *CategoryExtractor) Extract(data interface{}) interface{}
Extract extracts categories from various data sources
type CategoryField ¶
type CategoryField struct {
Primary string `json:"primary"`
Secondary []string `json:"secondary,omitempty"`
Confidence float64 `json:"confidence"`
}
CategoryField represents article categories
type ChainTransformer ¶
type ChainTransformer struct {
// contains filtered or unexported fields
}
ChainTransformer chains multiple transformers together
func NewChainTransformer ¶
func NewChainTransformer(transformers ...FieldTransformer) *ChainTransformer
NewChainTransformer creates a new chain transformer
func (*ChainTransformer) TargetType ¶
func (ct *ChainTransformer) TargetType() string
TargetType returns the target type of the last transformer
func (*ChainTransformer) Transform ¶
func (ct *ChainTransformer) Transform(value interface{}) interface{}
Transform applies all transformers in sequence
type DateTransformer ¶
type DateTransformer struct {
// contains filtered or unexported fields
}
DateTransformer parses and normalizes date fields
func NewDateTransformer ¶
func NewDateTransformer() *DateTransformer
NewDateTransformer creates a new date transformer
func NewDateTransformerWithFormat ¶
func NewDateTransformerWithFormat(format string) *DateTransformer
NewDateTransformerWithFormat creates a date transformer with custom output format
func (*DateTransformer) TargetType ¶
func (dt *DateTransformer) TargetType() string
TargetType returns the target type
func (*DateTransformer) Transform ¶
func (dt *DateTransformer) Transform(value interface{}) interface{}
Transform parses and formats a date
type EntityField ¶
type EntityField struct {
Text string `json:"text"`
Type string `json:"type"` // "PERSON", "ORGANIZATION", "LOCATION", etc.
Confidence float64 `json:"confidence"`
StartPos int `json:"start_pos"`
EndPos int `json:"end_pos"`
URL string `json:"url,omitempty"` // Knowledge base URL if available
}
EntityField represents named entities
type ExtendedFieldType ¶
type ExtendedFieldType string
ExtendedFieldType represents different types of extended fields
const ( FieldTypeCategory ExtendedFieldType = "category" FieldTypeTags ExtendedFieldType = "tags" FieldTypeRelatedArticles ExtendedFieldType = "related_articles" FieldTypeSentiment ExtendedFieldType = "sentiment" FieldTypeReadingTime ExtendedFieldType = "reading_time" FieldTypeLanguage ExtendedFieldType = "language" FieldTypeKeywords ExtendedFieldType = "keywords" FieldTypeEntities ExtendedFieldType = "entities" )
func (ExtendedFieldType) String ¶
func (eft ExtendedFieldType) String() string
String returns a string representation of ExtendedFieldType
type FieldExtractor ¶
type FieldExtractor interface {
Extract(data interface{}) interface{}
Type() ExtendedFieldType
Name() string
Confidence() float64
}
FieldExtractor interface for extended field extraction
type FieldTransformer ¶
type FieldTransformer interface {
Transform(value interface{}) interface{}
TargetType() string
}
FieldTransformer converts extracted data to standard formats
type JSONTransformer ¶
type JSONTransformer struct {
// contains filtered or unexported fields
}
JSONTransformer handles structured JSON data
func NewJSONTransformer ¶
func NewJSONTransformer() *JSONTransformer
NewJSONTransformer creates a new JSON transformer
func (*JSONTransformer) AddFieldMapping ¶
func (jt *JSONTransformer) AddFieldMapping(fieldName string, transformer FieldTransformer)
AddFieldMapping adds a transformer for a specific field
func (*JSONTransformer) TargetType ¶
func (jt *JSONTransformer) TargetType() string
TargetType returns the target type
func (*JSONTransformer) Transform ¶
func (jt *JSONTransformer) Transform(value interface{}) interface{}
Transform processes structured data
type KeywordField ¶
type KeywordField struct {
Term string `json:"term"`
Frequency int `json:"frequency"`
Weight float64 `json:"weight"`
Position string `json:"position"` // "title", "content", "meta"
TFIDF float64 `json:"tf_idf"`
}
KeywordField represents extracted keywords
type LanguageField ¶
type LanguageField struct {
Code string `json:"code"` // ISO 639-1 code (e.g., "en", "fr")
Name string `json:"name"` // Full language name
Confidence float64 `json:"confidence"`
Script string `json:"script,omitempty"` // Writing script (Latin, Cyrillic, etc.)
}
LanguageField represents detected language
type ReadingTimeField ¶
type ReadingTimeField struct {
Minutes int `json:"minutes"`
Seconds int `json:"seconds"`
WordCount int `json:"word_count"`
ReadingWPM int `json:"reading_wpm"` // Words per minute
Confidence float64 `json:"confidence"`
}
ReadingTimeField represents estimated reading time
type RelatedArticle ¶
type RelatedArticle struct {
Title string `json:"title"`
URL string `json:"url"`
Excerpt string `json:"excerpt,omitempty"`
PublishDate *time.Time `json:"publish_date,omitempty"`
Similarity float64 `json:"similarity"`
Source string `json:"source"` // "internal", "external", "suggested"
}
RelatedArticle represents a related article
type RelatedArticlesExtractor ¶
type RelatedArticlesExtractor struct {
BaseFieldExtractor
}
RelatedArticlesExtractor extracts related articles
func NewRelatedArticlesExtractor ¶
func NewRelatedArticlesExtractor() *RelatedArticlesExtractor
NewRelatedArticlesExtractor creates a new related articles extractor
func (*RelatedArticlesExtractor) Extract ¶
func (rae *RelatedArticlesExtractor) Extract(data interface{}) interface{}
Extract extracts related articles from structured data
type SentimentField ¶
type SentimentField struct {
Score float64 `json:"score"` // -1.0 to 1.0
Label string `json:"label"` // "positive", "negative", "neutral"
Magnitude float64 `json:"magnitude"` // 0.0 to 1.0
Confidence float64 `json:"confidence"`
}
SentimentField represents content sentiment analysis
type StringTransformer ¶
type StringTransformer struct{}
StringTransformer normalizes string fields
func NewStringTransformer ¶
func NewStringTransformer() *StringTransformer
NewStringTransformer creates a new string transformer
func (*StringTransformer) TargetType ¶
func (st *StringTransformer) TargetType() string
TargetType returns the target type
func (*StringTransformer) Transform ¶
func (st *StringTransformer) Transform(value interface{}) interface{}
Transform normalizes a string value
type TagField ¶
type TagField struct {
Name string `json:"name"`
Weight float64 `json:"weight"`
Source string `json:"source"` // "extracted", "meta", "content"
Normalized string `json:"normalized"`
}
TagField represents article tags
type TagsExtractor ¶
type TagsExtractor struct {
BaseFieldExtractor
// contains filtered or unexported fields
}
TagsExtractor extracts and normalizes article tags
func NewTagsExtractor ¶
func NewTagsExtractor() *TagsExtractor
NewTagsExtractor creates a new tags extractor
func (*TagsExtractor) Extract ¶
func (te *TagsExtractor) Extract(data interface{}) interface{}
Extract extracts and normalizes tags
type URLTransformer ¶
type URLTransformer struct {
// contains filtered or unexported fields
}
URLTransformer resolves and normalizes URL fields
func NewURLTransformer ¶
func NewURLTransformer(baseURL string) *URLTransformer
NewURLTransformer creates a new URL transformer with base URL for relative resolution
func (*URLTransformer) TargetType ¶
func (ut *URLTransformer) TargetType() string
TargetType returns the target type
func (*URLTransformer) Transform ¶
func (ut *URLTransformer) Transform(value interface{}) interface{}
Transform resolves and normalizes a URL