国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python如何使用神經網絡進行簡單文本分類

瀏覽:3日期:2022-06-27 10:37:02

深度學習無處不在。在本文中,我們將使用Keras進行文本分類。

準備數據集

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

Python如何使用神經網絡進行簡單文本分類

通常,對于深度學習,我們將劃分訓練和測試數據。

導入所需的軟件包

Python

import pandas as pdimport numpy as npimport picklefrom keras.preprocessing.text import Tokenizerfrom keras.models import Sequentialfrom keras.layers import Activation, Dense, Dropoutfrom sklearn.preprocessing import LabelBinarizerimport sklearn.datasets as skdsfrom pathlib import Path將數據從文件加載到Python變量

Python

# 為了復現性np.random.seed(1237) label_index = files_train.targetlabel_names = files_train.target_nameslabelled_files = files_train.filenames data_tags = ['filename','category','news']data_list = [] # 讀取文件中的數據并將其添加到列表 data = pd.DataFrame.from_records(data_list, columns=data_tags)

我們的數據無法以CSV格式提供。我們有文本數據文件,文件存放的目錄是我們的標簽或類別。

我們將使用scikit-learn load_files方法。這種方法可以提供原始數據以及標簽和標簽索引。

最后我們得到一個數據框,其中包含文件名,類別和實際數據。

拆分數據進行訓練和測試

Python

# 讓我們以80%的數據作為訓練,剩下的20%作為測試。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:]標記化并準備詞匯

Python

# 20個新聞組num_labels = 20vocab_size = 15000batch_size = 100 # 用Vocab Size定義Tokenizertokenizer = Tokenizer(num_words=vocab_size)tokenizer.fit_on_texts(train_posts)

在對文本進行分類時,我們首先使用Bag Of Words方法對文本進行預處理。

預處理輸出標簽/類

在將文本轉換為數字向量后,我們還需要確保標簽以神經網絡模型接受的數字格式表示。

建立Keras模型并擬合

PowerShell

model = Sequential()

它為輸入數據的維度以及構成模型的圖層類型提供了簡單的配置。

這是擬合度和測試準確性的代碼段

100/8145 [..............................] - ETA: 31s - loss: 1.0746e-04 - acc: 1.0000200/8145 [..............................] - ETA: 31s - loss: 0.0186 - acc: 0.9950 300/8145 [>.............................] - ETA: 35s - loss: 0.0125 - acc: 0.9967400/8145 [>.............................] - ETA: 32s - loss: 0.0094 - acc: 0.9975500/8145 [>.............................] - ETA: 30s - loss: 0.0153 - acc: 0.9960...7900/8145 [============================>.] - ETA: 0s - loss: 0.1256 - acc: 0.98548000/8145 [============================>.] - ETA: 0s - loss: 0.1261 - acc: 0.98558100/8145 [============================>.] - ETA: 0s - loss: 0.1285 - acc: 0.98548145/8145 [==============================] - 29s 4ms/step - loss: 0.1293 - acc: 0.9854 - val_loss: 1.0597 - val_acc: 0.8742 Test accuracy: 0.8767123321648251評估模型

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方法訓練了我們的數據集之后,我們將如上所述評估模型。

混淆矩陣

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

Python如何使用神經網絡進行簡單文本分類

保存模型

通常,深度學習的用例就像在不同的會話中進行數據訓練,而使用訓練后的模型進行預測一樣。

# 創建一個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沒有任何實用程序方法可將Tokenizer與模型一起保存。我們必須單獨序列化它。

加載Keras模型

Python

預測環境還需要注意標簽。

encoder.classes_ #標簽二值化預測

如前所述,我們已經預留了一些文件進行實際測試。

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.graphicsFile -> C:DL20news-bydate20news-bydate-testmisc.forsale76115 Predicted label: misc.forsaleFile -> C:DL20news-bydate20news-bydate-testsoc.religion.christian21329 Predicted label: soc.religion.christian

我們知道目錄名是文件的真實標簽,因此上述預測是準確的。

結論

在本文中,我們使用Keras python庫構建了一個簡單而強大的神經網絡。

以上就是Python如何使用神經網絡進行簡單文本分類的詳細內容,更多關于python 神經網絡進行文本分類的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 视频在线观看一区 | 性理论片 | 亚洲色在线视频 | 手机看片福利视频 | 亚洲系列国产系列 | 欧美成人午夜做爰视频在线观看 | 99在线国产视频 | 国产欧美日本在线观看 | 亚洲人成一区二区三区 | 欧美成人午夜片一一在线观看 | 日韩一级精品视频在线观看 | 青青自拍视频一区二区三区 | 久久国产亚洲 | 欧美一级一极性活片免费观看 | avav在线看 | 99精品欧美一区二区三区 | 女人张开双腿让男人桶爽免 | 久久全国免费久久青青小草 | 精品无码久久久久久国产 | 亚洲欧美日韩精品久久亚洲区色播 | 国产一级片网址 | 综合亚洲一区二区三区 | 亚洲影院中文字幕 | 欧美丝袜自拍 | 日本三级网站在线观看 | 久久草在线看 | 亚洲精品久久久久久久久久久网站 | 国产亚洲精品美女一区二区 | 成人欧美一区二区三区黑人免费 | 久久99精品久久久久久国产越南 | 亚洲精品福利一区二区三区 | 国产一级做a爰片在线看 | 成人在线观看国产 | 欧美一级在线毛片免费观看 | 91福利网 | 精品久久香蕉国产线看观看亚洲 | 国产精品自拍在线观看 | 国产成人高清亚洲一区久久 | 欧美α一级毛片 | 久久精品在现线观看免费15 | 99久久国产综合精品2020 |