forked from habeanf/yap
-
Notifications
You must be signed in to change notification settings - Fork 20
/
trivial.go
99 lines (86 loc) · 2.31 KB
/
trivial.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package model
// import (
// . "yap/alg/featurevector"
// "yap/alg/perceptron"
// "yap/alg/transition"
// )
// type Trivial struct {
// Vec Sparse
// }
// var _ perceptron.Model = &Trivial{}
// var _ Interface = &Trivial{}
// func (t *Trivial) Score(features interface{}) int64 {
// var (
// retval int64
// feat interface{}
// )
// featuresList := features.(*transition.FeaturesList)
// for featuresList != nil {
// for i, feature := range featuresList.Features {
// feat = MakeFeature(int(featuresList.Transition), i, feature)
// retval += t.Vec[feat]
// }
// featuresList = featuresList.Previous
// }
// return retval
// }
// func (t *Trivial) Add(features interface{}) perceptron.Model {
// var (
// curval int64
// feat interface{}
// )
// featuresList := features.(*transition.FeaturesList)
// for featuresList != nil {
// for i, feature := range featuresList.Features {
// feat = MakeFeature(int(featuresList.Transition), i, feature)
// curval, _ = t.Vec[feat]
// t.Vec[feat] = curval + 1
// }
// featuresList = featuresList.Previous
// }
// return t
// }
// func (t *Trivial) Subtract(features interface{}) perceptron.Model {
// var (
// curval int64
// feat interface{}
// )
// featuresList := features.(*transition.FeaturesList)
// for featuresList != nil {
// for i, feature := range featuresList.Features {
// feat = MakeFeature(int(featuresList.Transition), i, feature)
// curval, _ = t.Vec[feat]
// t.Vec[feat] = curval - 1
// }
// featuresList = featuresList.Previous
// }
// return t
// }
// func (t *Trivial) ScalarDivide(val int64) {
// t.Vec.UpdateScalarDivide(val)
// }
// func (t *Trivial) Copy() perceptron.Model {
// return &Trivial{t.Vec.Copy()}
// }
// func (t *Trivial) New() perceptron.Model {
// return NewTrivial()
// }
// func (t *Trivial) AddModel(m perceptron.Model) {
// other, ok := m.(*Trivial)
// if !ok {
// panic("Can't add perceptron model not of the same type")
// }
// t.Vec.Add(other.Vec)
// }
// func (t *Trivial) TransitionScore(transition transition.Transition, features []Feature) int64 {
// var (
// retval int64
// )
// for i, feat := range features {
// retval += t.Vec[MakeFeature(int(transition), i, feat)]
// }
// return retval
// }
// func NewTrivial() *Trivial {
// return &Trivial{NewSparse()}
// }