输出:
2 语境 ['告别', '打招呼']14 词数 ['88', '不好意思', '你好', '再见', '回头见', '回见', '帅哥', '师傅', '您好', '拜拜', '有人吗', '美女', '请问', '靓妹']训练不会根据词汇来分析,因为词汇对于机器来说是没有任何意义的,这也是很多中文分词库所陷入的误区,其实机器并不理解你输入的到底是英文还是中文,我们只需要将单词或者中文转化为包含0/1的数组的词袋 。数组长度将等于词汇量大小,当当前模式中的一个单词或词汇位于给定位置时,将设置为1 。
# create our training datatraining = []# create an empty array for our outputoutput_empty = [0] * len(classes)# training set, bag of words for each sentencefor doc in documents:# initialize our bag of wordsbag = []pattern_words = doc[0]pattern_words = [stemmer.stem(word.lower()) for word in pattern_words]for w in words:bag.append(1) if w in pattern_words else bag.append(0)output_row = list(output_empty)output_row[classes.index(doc[1])] = 1training.append([bag, output_row])random.shuffle(training)training = np.array(training)train_x = list(training[:,0])train_y = list(training[:,1])我们开始进行数据训练,模型是用Keras建立的,基于三层 。由于数据基数小,分类输出将是多类数组,这将有助于识别编码意图 。使用softmax激活来产生多类分类输出(结果返回一个0/1的数组:[1,0,0,...,0]--这个数组可以识别编码意图) 。
model = Sequential()model.add(Dense(128, input_shape=(len(train_x[0]),), activation='relu'))model.add(Dropout(0.5))model.add(Dense(64, activation='relu'))model.add(Dropout(0.5))model.add(Dense(len(train_y[0]), activation='softmax'))sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])model.fit(np.array(train_x), np.array(train_y), epochs=200, batch_size=5, verbose=1)这块是以200次迭代的方式执行训练,批处理量为5个,因为我的测试数据样本小,所以100次也可以,这不是重点 。
开始训练:
14/14 [==============================] - 0s 32ms/step - loss: 0.7305 - acc: 0.5000Epoch 2/20014/14 [==============================] - 0s 391us/step - loss: 0.7458 - acc: 0.4286Epoch 3/20014/14 [==============================] - 0s 390us/step - loss: 0.7086 - acc: 0.3571Epoch 4/20014/14 [==============================] - 0s 395us/step - loss: 0.6941 - acc: 0.6429Epoch 5/20014/14 [==============================] - 0s 426us/step - loss: 0.6358 - acc: 0.7143Epoch 6/20014/14 [==============================] - 0s 356us/step - loss: 0.6287 - acc: 0.5714Epoch 7/20014/14 [==============================] - 0s 366us/step - loss: 0.6457 - acc: 0.6429Epoch 8/20014/14 [==============================] - 0s 899us/step - loss: 0.6336 - acc: 0.6429Epoch 9/20014/14 [==============================] - 0s 464us/step - loss: 0.5815 - acc: 0.6429Epoch 10/20014/14 [==============================] - 0s 408us/step - loss: 0.5895 - acc: 0.6429Epoch 11/20014/14 [==============================] - 0s 548us/step - loss: 0.6050 - acc: 0.6429Epoch 12/20014/14 [==============================] - 0s 468us/step - loss: 0.6254 - acc: 0.6429Epoch 13/20014/14 [==============================] - 0s 388us/step - loss: 0.4990 - acc: 0.7857Epoch 14/20014/14 [==============================] - 0s 392us/step - loss: 0.5880 - acc: 0.7143Epoch 15/20014/14 [==============================] - 0s 370us/step - loss: 0.5118 - acc: 0.8571Epoch 16/20014/14 [==============================] - 0s 457us/step - loss: 0.5579 - acc: 0.7143Epoch 17/20014/14 [==============================] - 0s 432us/step - loss: 0.4535 - acc: 0.7857Epoch 18/20014/14 [==============================] - 0s 357us/step - loss: 0.4367 - acc: 0.7857Epoch 19/20014/14 [==============================] - 0s 384us/step - loss: 0.4751 - acc: 0.7857Epoch 20/20014/14 [==============================] - 0s 346us/step - loss: 0.4404 - acc: 0.9286Epoch 21/20014/14 [==============================] - 0s 500us/step - loss: 0.4325 - acc: 0.8571Epoch 22/20014/14 [==============================] - 0s 400us/step - loss: 0.4104 - acc: 0.9286Epoch 23/20014/14 [==============================] - 0s 738us/step - loss: 0.4296 - acc: 0.7857Epoch 24/20014/14 [==============================] - 0s 387us/step - loss: 0.3706 - acc: 0.9286Epoch 25/20014/14 [==============================] - 0s 430us/step - loss: 0.4213 - acc: 0.8571Epoch 26/20014/14 [==============================] - 0s 351us/step - loss: 0.2867 - acc: 1.0000Epoch 27/20014/14 [==============================] - 0s 3ms/step - loss: 0.2903 - acc: 1.0000Epoch 28/20014/14 [==============================] - 0s 366us/step - loss: 0.3010 - acc: 0.9286Epoch 29/20014/14 [==============================] - 0s 404us/step - loss: 0.2466 - acc: 0.9286Epoch 30/20014/14 [==============================] - 0s 428us/step - loss: 0.3035 - acc: 0.7857Epoch 31/20014/14 [==============================] - 0s 407us/step - loss: 0.2075 - acc: 1.0000Epoch 32/20014/14 [==============================] - 0s 457us/step - loss: 0.2167 - acc: 0.9286Epoch 33/20014/14 [==============================] - 0s 613us/step - loss: 0.1266 - acc: 1.0000Epoch 34/20014/14 [==============================] - 0s 534us/step - loss: 0.2906 - acc: 0.9286Epoch 35/20014/14 [==============================] - 0s 463us/step - loss: 0.2560 - acc: 0.9286Epoch 36/20014/14 [==============================] - 0s 500us/step - loss: 0.1686 - acc: 1.0000Epoch 37/20014/14 [==============================] - 0s 387us/step - loss: 0.0922 - acc: 1.0000Epoch 38/20014/14 [==============================] - 0s 430us/step - loss: 0.1620 - acc: 1.0000Epoch 39/20014/14 [==============================] - 0s 371us/step - loss: 0.1104 - acc: 1.0000Epoch 40/20014/14 [==============================] - 0s 488us/step - loss: 0.1330 - acc: 1.0000Epoch 41/20014/14 [==============================] - 0s 381us/step - loss: 0.1322 - acc: 1.0000Epoch 42/20014/14 [==============================] - 0s 462us/step - loss: 0.0575 - acc: 1.0000Epoch 43/20014/14 [==============================] - 0s 1ms/step - loss: 0.1137 - acc: 1.0000Epoch 44/20014/14 [==============================] - 0s 450us/step - loss: 0.0245 - acc: 1.0000Epoch 45/20014/14 [==============================] - 0s 470us/step - loss: 0.1824 - acc: 1.0000Epoch 46/20014/14 [==============================] - 0s 444us/step - loss: 0.0822 - acc: 1.0000Epoch 47/20014/14 [==============================] - 0s 436us/step - loss: 0.0939 - acc: 1.0000Epoch 48/20014/14 [==============================] - 0s 396us/step - loss: 0.0288 - acc: 1.0000Epoch 49/20014/14 [==============================] - 0s 580us/step - loss: 0.1367 - acc: 0.9286Epoch 50/20014/14 [==============================] - 0s 351us/step - loss: 0.0363 - acc: 1.0000Epoch 51/20014/14 [==============================] - 0s 379us/step - loss: 0.0272 - acc: 1.0000Epoch 52/20014/14 [==============================] - 0s 358us/step - loss: 0.0712 - acc: 1.0000Epoch 53/20014/14 [==============================] - 0s 4ms/step - loss: 0.0426 - acc: 1.0000Epoch 54/20014/14 [==============================] - 0s 370us/step - loss: 0.0430 - acc: 1.0000Epoch 55/20014/14 [==============================] - 0s 368us/step - loss: 0.0292 - acc: 1.0000Epoch 56/20014/14 [==============================] - 0s 494us/step - loss: 0.0777 - acc: 1.0000Epoch 57/20014/14 [==============================] - 0s 356us/step - loss: 0.0496 - acc: 1.0000Epoch 58/20014/14 [==============================] - 0s 427us/step - loss: 0.1485 - acc: 1.0000Epoch 59/20014/14 [==============================] - 0s 381us/step - loss: 0.1006 - acc: 1.0000Epoch 60/20014/14 [==============================] - 0s 421us/step - loss: 0.0183 - acc: 1.0000Epoch 61/20014/14 [==============================] - 0s 344us/step - loss: 0.0788 - acc: 0.9286Epoch 62/20014/14 [==============================] - 0s 529us/step - loss: 0.0176 - acc: 1.0000
推荐阅读
- 我国两位物理神童赴美学习 中国神童
- 耘智愿教育集团 学愿教育
- 王力宏|《狂飙》深度解析2:警察局“太子”被嘲讽?安欣的人设有个漏洞
- 可以学习珠宝首饰设计吗? 珠宝设计可以自学吗
- 消防工程师自学好考吗? 消防工程师学习
- 怎么做奶茶 在家里简单又好喝?如何学习制作奶茶?
- 工程预算学习步骤及如何看建筑施工图 建筑施工图设计学习
- 美国经济深度解析 美国经济简介
- 会计这么学,也太太太简单了 如何学习会计
- 学习园地版面设计图__学习园地的手抄报?
