我正在创建一个 CNN 来将一个句子分类为 N 个可能的标签之一。
我已经使用WildML的教程来启动代码,并对其进行了修改以允许多个输出,而不仅仅是真/假。
我正在使用 VocabularyProcessor 将单词转换为数字,然后使用 OneHotEncoder 转换标签以进行评估。我目前正在使用相同的 VocabularyProcessor 来转换 X 和 y
其中 x_text 是加载的句子, y_text 是正确的标签
max_document_length = max([len(x.split(" ")) for x in x_text])
vocab_processor = learn.preprocessing.VocabularyProcessor(max_document_length)
X = np.array(list(vocab_processor.fit_transform(x_text)))
y_val = np.array(list(vocab_processor.transform(y_text)))
from sklearn.preprocessing import OneHotEncoder
onehotencoder = OneHotEncoder(categorical_features = [0])
y = onehotencoder.fit_transform(y_val).toarray()
y = y[:, 1:]
然后通过培训。
我发现的问题是,在评估过程中,如果标签不完全相同,那么索引与即将出现的预测不匹配。
基本上我的问题是,我如何将评估的输出与文本标签相匹配,以便我可以在训练后使用它,而无需预先对标签进行硬编码