Use missing features in parser

This commit is contained in:
Matthew Honnibal 2017-10-28 16:45:54 +00:00
parent df4803cc6d
commit 5414e2f14b
1 changed files with 5 additions and 3 deletions

View File

@ -157,12 +157,14 @@ cdef void sum_state_features(float* output,
const float* cached, const int* token_ids, int B, int F, int O) nogil: const float* cached, const int* token_ids, int B, int F, int O) nogil:
cdef int idx, b, f, i cdef int idx, b, f, i
cdef const float* feature cdef const float* feature
padding = cached - (F * O)
for b in range(B): for b in range(B):
for f in range(F): for f in range(F):
if token_ids[f] < 0: if token_ids[f] < 0:
continue feature = &padding[f*O]
idx = token_ids[f] * F * O + f*O else:
feature = &cached[idx] idx = token_ids[f] * F * O + f*O
feature = &cached[idx]
for i in range(O): for i in range(O):
output[i] += feature[i] output[i] += feature[i]
output += O output += O