public class WordTree extends HashMap<Character,WordTree>
DFA(Deterministic Finite Automaton 确定有穷自动机)
DFA单词树(以下简称单词树),常用于在某大段文字中快速查找某几个关键词是否存在。
单词树使用group区分不同的关键字集合,不同的分组可以共享树枝,避免重复建树。 单词树使用树状结构表示一组单词。
例如:红领巾,红河构建树后为:
红
/
领 河
/
巾
其中每个节点都是一个WordTree对象,查找时从上向下查找。
WordTree是一个词集之间的树形结构,通过语义范围确定节点上下级关系
如:Norfolk terrier从上到下的节点依次为 physical object、animal、mammal、hunting dog、terrier、Norfolk terrier。语义范围从大到小。
使用WordTree结构预测时,每个节点下的所有子节点,构成了一个同义词集,对所有的同义词集求softmax得到的就是条件概率。
分类时假设图像有一个物体,即
P
r
(
N
o
r
f
o
l
k
t
e
r
r
i
e
r
)
=
P
r
(
N
o
r
f
o
l
k
t
e
r
r
i
e
r
∣
t
e
r
r
i
e
r
)
∗
P
r
(
t
e
r
r
i
e
r
∣
h
u
n
t
i
n
g
d
o
g
)
∗
P
r
(
m
a
m
m
a
l
∣
a
n
i
m
a
l
)
∗
P
r
(
a
n
i
m
a
l
∣
p
h
y
s
i
c
a
l
o
b
j
e
c
t
)
Pr(Norfolk terrier)=Pr(Norfolk terrier ∣ terrier)∗Pr(terrier ∣ hunting dog)∗Pr(mammal ∣ animal)∗Pr(animal ∣ physical object)
Pr(Norfolkterrier)=Pr(Norfolkterrier∣terrier)∗Pr(terrier∣huntingdog)∗Pr(mammal∣animal)∗Pr(animal∣physicalobject)
这样再输出时可以根据阈值选择输出的层级,如上式中,预测时,后面条件概率较低,可以只输出dog而不必输出更小的层级类别。
训练时,扩展为多label,从wordTree中当前节点开始,向上所有层级的父节点都成为此样本的label。如一个label为Norfolk terrier,它同时获得dog、mammal等label。
图像1:
图像2: