婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類

Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類

熱門標(biāo)簽:螳螂科技外呼系統(tǒng)怎么用 舉辦過(guò)冬奧會(huì)的城市地圖標(biāo)注 正安縣地圖標(biāo)注app 400電話申請(qǐng)資格 qt百度地圖標(biāo)注 遼寧智能外呼系統(tǒng)需要多少錢 地圖地圖標(biāo)注有嘆號(hào) 電銷機(jī)器人系統(tǒng)廠家鄭州 阿里電話機(jī)器人對(duì)話

深度學(xué)習(xí)無(wú)處不在。在本文中,我們將使用Keras進(jìn)行文本分類。

準(zhǔn)備數(shù)據(jù)集

出于演示目的,我們將使用  20個(gè)新聞組  數(shù)據(jù)集。數(shù)據(jù)分為20個(gè)類別,我們的工作是預(yù)測(cè)這些類別。如下所示:

通常,對(duì)于深度學(xué)習(xí),我們將劃分訓(xùn)練和測(cè)試數(shù)據(jù)。

導(dǎo)入所需的軟件包

Python

import pandas as pd
import numpy as np
import pickle
from keras.preprocessing.text import Tokenizer
from keras.models import Sequential
from keras.layers import Activation, Dense, Dropout
from sklearn.preprocessing import LabelBinarizer
import sklearn.datasets as skds
from pathlib import Path

將數(shù)據(jù)從文件加載到Python變量

Python

# 為了復(fù)現(xiàn)性

np.random.seed(1237)
  
label_index = files_train.target
label_names = files_train.target_names
labelled_files = files_train.filenames
 
data_tags = ["filename","category","news"]
data_list = []
 
# 讀取文件中的數(shù)據(jù)并將其添加到列表


 
data = pd.DataFrame.from_records(data_list, columns=data_tags)

我們的數(shù)據(jù)無(wú)法以CSV格式提供。我們有文本數(shù)據(jù)文件,文件存放的目錄是我們的標(biāo)簽或類別。

我們將使用scikit-learn load_files方法。這種方法可以提供原始數(shù)據(jù)以及標(biāo)簽和標(biāo)簽索引。

最后我們得到一個(gè)數(shù)據(jù)框,其中包含文件名,類別和實(shí)際數(shù)據(jù)。

拆分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練和測(cè)試

Python

# 讓我們以80%的數(shù)據(jù)作為訓(xùn)練,剩下的20%作為測(cè)試。


train_size = int(len(data) * .8)
 
train_posts = data['news'][:train_size]
train_tags = data['category'][:train_size]
train_files_names = data['filename'][:train_size]
 
test_posts = data['news'][train_size:]
test_tags = data['category'][train_size:]
test_files_names = data['filename'][train_size:]

標(biāo)記化并準(zhǔn)備詞匯

Python

# 20個(gè)新聞組


num_labels = 20
vocab_size = 15000
batch_size = 100
 
# 用Vocab Size定義Tokenizer


tokenizer = Tokenizer(num_words=vocab_size)
tokenizer.fit_on_texts(train_posts) 

在對(duì)文本進(jìn)行分類時(shí),我們首先使用Bag Of Words方法對(duì)文本進(jìn)行預(yù)處理。

預(yù)處理輸出標(biāo)簽/類

在將文本轉(zhuǎn)換為數(shù)字向量后,我們還需要確保標(biāo)簽以神經(jīng)網(wǎng)絡(luò)模型接受的數(shù)字格式表示。

建立Keras模型并擬合

PowerShell

model = Sequential()

它為輸入數(shù)據(jù)的維度以及構(gòu)成模型的圖層類型提供了簡(jiǎn)單的配置。

這是擬合度和測(cè)試準(zhǔn)確性的代碼段

100/8145 [..............................] - ETA: 31s - loss: 1.0746e-04 - acc: 1.0000
200/8145 [..............................] - ETA: 31s - loss: 0.0186 - acc: 0.9950    
300/8145 [>.............................] - ETA: 35s - loss: 0.0125 - acc: 0.9967
400/8145 [>.............................] - ETA: 32s - loss: 0.0094 - acc: 0.9975
500/8145 [>.............................] - ETA: 30s - loss: 0.0153 - acc: 0.9960
...
7900/8145 [============================>.] - ETA: 0s - loss: 0.1256 - acc: 0.9854
8000/8145 [============================>.] - ETA: 0s - loss: 0.1261 - acc: 0.9855
8100/8145 [============================>.] - ETA: 0s - loss: 0.1285 - acc: 0.9854
8145/8145 [==============================] - 29s 4ms/step - loss: 0.1293 - acc: 0.9854 - val_loss: 1.0597 - val_acc: 0.8742
 
Test accuracy: 0.8767123321648251

評(píng)估模型

Python

for i in range(10):
    prediction = model.predict(np.array([x_test[i]]))
    predicted_label = text_labels[np.argmax(prediction[0])]
    print(test_files_names.iloc[i])
    print('Actual label:' + test_tags.iloc[i])
    print("Predicted label: " + predicted_label)

在Fit方法訓(xùn)練了我們的數(shù)據(jù)集之后,我們將如上所述評(píng)估模型。

混淆矩陣

混淆矩陣是可視化模型準(zhǔn)確性的最佳方法之一。

保存模型

通常,深度學(xué)習(xí)的用例就像在不同的會(huì)話中進(jìn)行數(shù)據(jù)訓(xùn)練,而使用訓(xùn)練后的模型進(jìn)行預(yù)測(cè)一樣。

# 創(chuàng)建一個(gè)HDF5文件'my_model.h5'


model.model.save('my_model.h5')
 
# 保存令牌生成器,即詞匯表


with open('tokenizer.pickle', 'wb') as handle:
    pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL)

Keras沒(méi)有任何實(shí)用程序方法可將Tokenizer與模型一起保存。我們必須單獨(dú)序列化它。

加載Keras模型

Python

預(yù)測(cè)環(huán)境還需要注意標(biāo)簽。

encoder.classes_ #標(biāo)簽二值化

預(yù)測(cè)

如前所述,我們已經(jīng)預(yù)留了一些文件進(jìn)行實(shí)際測(cè)試。

Python

 labels = np.array(['alt.atheism', 'comp.graphics', 'comp.os.ms-windows.misc',
'comp.sys.ibm.pc.hardware', 'comp.sys.mac.hardware', 'comp.windows.x',
'misc.forsale', 'rec.autos', 'rec.motorcycles', 'rec.sport.baseball',
'rec.sport.hockey', 'sci.crypt', 'sci.electronics', 'sci.med', 'sci.space',
'soc.religion.christian', 'talk.politics.guns', 'talk.politics.mideast',
'talk.politics.misc', 'talk.religion.misc'])
 ...
for x_t in x_tokenized:
    prediction = model.predict(np.array([x_t]))
    predicted_label = labels[np.argmax(prediction[0])]
    print("File ->", test_files[i], "Predicted label: " + predicted_label)
    i += 1

輸出

File -> C:DL20news-bydate20news-bydate-testcomp.graphics38758 Predicted label: comp.graphics
File -> C:DL20news-bydate20news-bydate-testmisc.forsale76115 Predicted label: misc.forsale
File -> C:DL20news-bydate20news-bydate-testsoc.religion.christian21329 Predicted label: soc.religion.christian

我們知道目錄名是文件的真實(shí)標(biāo)簽,因此上述預(yù)測(cè)是準(zhǔn)確的。

結(jié)論

在本文中,我們使用Keras python庫(kù)構(gòu)建了一個(gè)簡(jiǎn)單而強(qiáng)大的神經(jīng)網(wǎng)絡(luò)。

以上就是Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類的詳細(xì)內(nèi)容,更多關(guān)于python 神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • numpy創(chuàng)建神經(jīng)網(wǎng)絡(luò)框架
  • 教你使用Python建立任意層數(shù)的深度神經(jīng)網(wǎng)絡(luò)
  • python神經(jīng)網(wǎng)絡(luò)編程之手寫數(shù)字識(shí)別
  • python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)
  • pytorch動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)(擬合)實(shí)現(xiàn)
  • pytorch之深度神經(jīng)網(wǎng)絡(luò)概念全面整理

標(biāo)簽:興安盟 隨州 昭通 信陽(yáng) 合肥 阜新 濟(jì)源 淘寶好評(píng)回訪

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類》,本文關(guān)鍵詞  Python,如何,使用,神經(jīng)網(wǎng)絡(luò),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python如何使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 玛多县| 邳州市| 申扎县| 德江县| 桑植县| 衡阳市| 望江县| 醴陵市| 花莲市| 邵阳市| 都安| 泉州市| 襄垣县| 冷水江市| 扎赉特旗| 巧家县| 县级市| 台东县| 隆昌县| 阿克| 教育| 宁城县| 卢湾区| 大同市| 平乐县| 北安市| 贞丰县| 余庆县| 佛山市| 师宗县| 滕州市| 阿合奇县| 教育| 家居| 安达市| 鞍山市| 蓬莱市| 句容市| 乐都县| 英吉沙县| 都江堰市|