电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:6日期: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 編程
相關文章:
主站蜘蛛池模板: 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | POS机办理_个人pos机免费领取-银联pos机申请首页 | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 云杂志网-学术期刊-首页 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 面粉仓_储酒罐_不锈钢储酒罐厂家-泰安鑫佳机械制造有限公司 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 陕西自考报名_陕西自学考试网| 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 服务器之家 - 专注于服务器技术及软件下载分享 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 三板富 | 专注于新三板的第一垂直服务平台 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 |