Documentation
¶
Overview ¶
Package feature implements a service for detecting patterns in information sequences. A information sequence can be any string.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsInvalidConfig ¶
IsInvalidConfig asserts invalidConfigError.
func IsInvalidExecution ¶
IsInvalidExecution asserts invalidExecutionError.
Types ¶
type Config ¶
type Config struct {
// Positions represents the index locations of a detected feature.
Positions [][]float64
// Sequence represents the input sequence being detected as feature. That
// means, the sequence of a feature is the actual conceptual feature itself.
Sequence string
}
Config represents the configuration used to create a new feature.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig provides a default configuration to create a new feature by best effort.
type Feature ¶
type Feature interface {
// AddPosition provides a way to add more positions to the initialized
// feature. Note positions are vectors in distribution terms.
AddPosition(position []float64) error
// Count returns the number of occurrences within analysed sequences. That is,
// how often this feature was found. Technically spoken,
// len(Feature.Positions).
Count() int
// Positions returns the feature's configured positions.
Positions() [][]float64
// Sequence returns the sequence that represents this feature. This is the
// sub-sequence, the charactistic detected within analysed sequences.
Sequence() string
}
Feature represents a charactistic within a sequence. During pattern recognition it is tried to detect features. Their distributions describe location patterns within space.
type ScanConfig ¶
type ScanConfig interface {
// MaxLength returns the length maximum of a sequence detected as feature.
// E.g. MaxLength set to 3 results in sequences having a length not larger
// than 3 when detected as features. The value -1 disables any limitiation.
MaxLength() int
// MinLength returns the minimum length of a sequence detected as feature.
// E.g. MinLength set to 3 results in sequences having a length not smaller
// than 3 when detected as features. The value -1 disables any limitiation.
MinLength() int
// MinCount returns the number of occurrences at least required to be detected
// as feature. E.g. MinCount set to 3 requires a feature to be present within
// a given input sequence at least 3 times.
MinCount() int
// Separator returns the separator used to split sequences into smaller parts.
// By default this is an empty string resulting in a character split. This can
// be set to a whitespace to split for words. Note that the concept of words
// is a feature known to humans based on contextual information humans
// connected to create reasonable sences. This needs to be achieved by Anna
// herself. So later this separator needs to be configured by Anna once she is
// able to recognize improvements in feature detection, resulting in even more
// awareness of contextual information.
Separator() string
// Sequences returns the input sequences being analysed. Out of this
// information features are detected, if any.
Sequences() []string
SetMaxLength(maxLength int)
SetMinLength(minLength int)
SetMinCount(minCount int)
SetSeparator(separate string)
SetSequences(sequences []string)
// Validate checks whether ScanConfig is valid for proper execution in
// Feature.Scan.
Validate() error
}
ScanConfig represents the configuration used to scan for new features.
func NewScanConfig ¶
func NewScanConfig() ScanConfig
NewScanConfig creates a new configured scan config.
type Service ¶
type Service interface {
// Boot initializes and starts the whole service like booting a machine. The
// call to Boot blocks until the service is completely initialized, so you
// might want to call it in a separate goroutine.
Boot()
// Scan analyses the given sequences to detect patterns. Found patterns are
// returned in form of a list of features.
Scan(ctx context.Context, config ScanConfig) ([]Feature, error)
// ScanConfig returns a default scan config configured by best effort.
ScanConfig() ScanConfig
// Shutdown ends all processes of the service like shutting down a machine.
// The call to Shutdown blocks until the service is completely shut down, so
// you might want to call it in a separate goroutine.
Shutdown()
}
Service represents a service being able to scan for features within information sequences.
func NewService ¶
func NewService(config ServiceConfig) (Service, error)
NewService creates a new configured service.
type ServiceConfig ¶
type ServiceConfig struct {
}
ServiceConfig represents the configuration used to create a new service.
func DefaultServiceConfig ¶
func DefaultServiceConfig() ServiceConfig
DefaultServiceConfig provides a default configuration to create a new service by best effort.