MCPcopy Create free account
hub / github.com/brightmart/text_classification / load_data_multilabel

Function load_data_multilabel

a02_TextCNN/data_util.py:16–49  ·  view source on GitHub ↗

convert data as indexes using word2index dicts. :param traning_data_path: :param vocab_word2index: :param vocab_label2index: :return:

(traning_data_path,vocab_word2index, vocab_label2index,sentence_len,training_portion=0.95)

Source from the content-addressed store, hash-verified

14
15
16def load_data_multilabel(traning_data_path,vocab_word2index, vocab_label2index,sentence_len,training_portion=0.95):
17 """
18 convert data as indexes using word2index dicts.
19 :param traning_data_path:
20 :param vocab_word2index:
21 :param vocab_label2index:
22 :return:
23 """
24 file_object = codecs.open(traning_data_path, mode='r', encoding='utf-8')
25 lines = file_object.readlines()
26 random.shuffle(lines)
27 label_size=len(vocab_label2index)
28 X = []
29 Y = []
30 for i,line in enumerate(lines):
31 raw_list = line.strip().split("__label__")
32 input_list = raw_list[0].strip().split(" ")
33 input_list = [x.strip().replace(" ", "") for x in input_list if x != '']
34 x=[vocab_word2index.get(x,UNK_ID) for x in input_list]
35 label_list = raw_list[1:]
36 label_list=[l.strip().replace(" ", "") for l in label_list if l != '']
37 label_list=[vocab_label2index[label] for label in label_list]
38 y=transform_multilabel_as_multihot(label_list,label_size)
39 X.append(x)
40 Y.append(y)
41 if i<10:print(i,"line:",line)
42
43 X = pad_sequences(X, maxlen=sentence_len, value=0.) # padding to max length
44 number_examples = len(lines)
45 training_number=int(training_portion* number_examples)
46 train = (X[0:training_number], Y[0:training_number])
47 valid_number=min(1000,number_examples-training_number)
48 test = (X[training_number+ 1:training_number+valid_number+1], Y[training_number + 1:training_number+valid_number+1])
49 return train,test
50
51
52def transform_multilabel_as_multihot(label_list,label_size):

Callers

nothing calls this directly

Calls 1

Tested by

no test coverage detected