Spaces:
Sleeping
Sleeping
| import numpy as np | |
| import sys | |
| def str2label_single(value, characterToIndex={}, unknown_index=None): | |
| if unknown_index is None: | |
| unknown_index = len(characterToIndex) | |
| label = [] | |
| for v in value: | |
| if v not in characterToIndex: | |
| continue | |
| # raise "Unknown Charactor to Label conversion" | |
| label.append(characterToIndex[v]) | |
| return np.array(label, np.uint32) | |
| def label2input_single(value, num_of_inputs, char_break_interval): | |
| idx1 = len(value) * (char_break_interval + 1) + char_break_interval | |
| idx2 = num_of_inputs + 1 | |
| input_data = [[0 for i in range(idx2)] for j in range(idx1)] | |
| cnt = 0 | |
| for i in range(char_break_interval): | |
| input_data[cnt][idx2-1] = 1 | |
| cnt += 1 | |
| for i in range(len(value)): | |
| if value[i] == 0: | |
| input_data[cnt][idx2-1] = 1 | |
| else: | |
| input_data[cnt][value[i]-1] = 1 | |
| cnt += 1 | |
| for i in range(char_break_interval): | |
| input_data[cnt][idx2-1] = 1 | |
| cnt += 1 | |
| return np.array(input_data) | |
| def label2str_single(label, indexToCharacter, asRaw, spaceChar = "~"): | |
| string = "" | |
| for i in range(len(label)): | |
| if label[i] == 0: | |
| if asRaw: | |
| string += spaceChar | |
| else: | |
| break | |
| else: | |
| val = label[i] | |
| string += indexToCharacter[val] | |
| return string | |
| def naive_decode(output): | |
| rawPredData = np.argmax(output, axis=1) | |
| predData = [] | |
| for i in range(len(output)): | |
| if rawPredData[i] != 0 and not ( i > 0 and rawPredData[i] == rawPredData[i-1] ): | |
| predData.append(rawPredData[i]) | |
| # print(predData) | |
| return predData, list(rawPredData) | |