日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dnn文本分类

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dnn文本分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

文本分類任務根據給定一條文本的內容,判斷該文本所屬的類別,是自然語言處理領域的一項重要的基礎任務。具體的,本任務是對文本quey進行分類,任務流程如下:
  • 收集用戶query數據。
  • 清洗,標記。
  • 模型設計。
  • 模型學習效果評估。
  • 運行

    訓練: sh +x train.sh 預測: python infer.py

    輸入/輸出

    輸入樣本:

    label text(分詞后)

    0 龍脈溫泉 住宿 1 龍馬 機場 飛機 2 龍里 旅游 其中,label 0,1和2分別代表:酒店,票務和住宿。

    預估樣本:

    2 0.0002 0.0001 0.9997 港澳 7 日 自助游 label prob text 其中,label為概率最大的類別,即2旅游,中間三個數值為每個類別的概率。

    DNN 模型

    DNN 模型結構入下圖所示:

    ?

    圖1. 本例中的 DNN 文本分類模型 在 PaddlePaddle 實現該 DNN 結構的代碼見 network_conf.py 中的 fc_net 函數,模型主要分為如下幾個部分:
    • 詞向量層:為了更好地表示不同詞之間語義上的關系,首先將詞語轉化為固定維度的向量。訓練完成后,詞與詞語義上的相似程度可以用它們的詞向量之間的距離來表示,語義上越相似,距離越近。關于詞向量的更多信息請參考PaddleBook中的詞向量一節。
    • 最大池化層:最大池化在時間序列上進行,池化過程消除了不同語料樣本在單詞數量多少上的差異,并提煉出詞向量中每一下標位置上的最大值。經過池化后,詞向量層輸出的向量序列被轉化為一條固定維度的向量。例如,假設最大池化前向量的序列為[[2,3,5],[7,3,6],[1,4,0]],則最大池化的結果為:[7,4,6]。
    • 全連接隱層:經過最大池化后的向量被送入兩個連續的隱層,隱層之間為全連接結構。
    • 輸出層:輸出層的神經元數量和樣本的類別數一致,例如在二分類問題中,輸出層會有2個神經元。通過Softmax激活函數,輸出結果是一個歸一化的概率分布,和為1,因此第$i$個神經元的輸出就可以認為是樣本屬于第$i$類的預測概率。
    該 DNN 模型默認對輸入的語料進行二分類(class_dim=3),embedding(詞向量)維度默認為28(emd_dim=28),兩個隱層均使用Tanh激活函數(act=paddle.activation.Tanh())。需要注意的是,該模型的輸入數據為整數序列,而不是原始的單詞序列。事實上,為了處理方便,我們一般會事先將單詞根據詞頻順序進行 id 化,即將詞語轉化成在字典中的序號。

    源碼:

    import sys import math import gzipfrom paddle.v2.layer import parse_network import paddle.v2 as paddle__all__ = ["fc_net", "convolution_net"]def fc_net(dict_dim,class_num,emb_dim=28,hidden_layer_sizes=[28, 8],is_infer=False):""" define the topology of the dnn network:param dict_dim: size of word dictionary:type input_dim: int:params class_num: number of instance class:type class_num: int:params emb_dim: embedding vector dimension:type emb_dim: int""" # define the input layersdata = paddle.layer.data("word",paddle.data_type.integer_value_sequence(dict_dim))if not is_infer:lbl = paddle.layer.data("label",paddle.data_type.integer_value(class_num))# define the embedding layeremb = paddle.layer.embedding(input=data, size=emb_dim)# max pooling to reduce the input sequence into a vector (non-sequence)seq_pool = paddle.layer.pooling(input=emb, pooling_type=paddle.pooling.Max())for idx, hidden_size in enumerate(hidden_layer_sizes):hidden_init_std = 1.0 / math.sqrt(hidden_size)hidden = paddle.layer.fc(input=hidden if idx else seq_pool,size=hidden_size,act=paddle.activation.Tanh(),param_attr=paddle.attr.Param(initial_std=hidden_init_std))prob = paddle.layer.fc(input=hidden,size=class_num,act=paddle.activation.Softmax(),param_attr=paddle.attr.Param(initial_std=1.0 / math.sqrt(class_num)))if is_infer:return probelse:return paddle.layer.classification_cost(input=prob, label=lbl), prob, lbldef convolution_net(dict_dim,class_dim=2,emb_dim=28,hid_dim=128,is_infer=False):""" cnn network definition:param dict_dim: size of word dictionary:type input_dim: int:params class_dim: number of instance class:type class_dim: int:params emb_dim: embedding vector dimension:type emb_dim: int:params hid_dim: number of same size convolution kernels:type hid_dim: int""" # input layersdata = paddle.layer.data("word",paddle.data_type.integer_value_sequence(dict_dim))lbl = paddle.layer.data("label", paddle.data_type.integer_value(class_dim))# embedding layeremb = paddle.layer.embedding(input=data, size=emb_dim)# convolution layers with max poolingconv_3 = paddle.networks.sequence_conv_pool(input=emb, context_len=3, hidden_size=hid_dim)conv_4 = paddle.networks.sequence_conv_pool(input=emb, context_len=4, hidden_size=hid_dim)# fc and output layerprob = paddle.layer.fc(input=[conv_3, conv_4], size=class_dim, act=paddle.activation.Softmax())if is_infer:return probelse:cost = paddle.layer.classification_cost(input=prob, label=lbl)return cost, prob, lbl

    ?

    訓練結果如下圖:

    預估結果:

    ?

    轉載于:https://www.cnblogs.com/rongyux/p/7295571.html

    總結

    以上是生活随笔為你收集整理的dnn文本分类的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 免费日本视频 | 青青草99| 91丨九色丨蝌蚪丨老版 | 国产视频三级 | 激情爱爱网| 免费无遮挡无码永久在线观看视频 | 91视频三区| 国产精品久久久久久免费播放 | 红桃一区二区三区 | 国产激情视频一区二区三区 | 天天尻逼 | 欧洲熟妇的性久久久久久 | 无码人妻一区二区三区线 | 伊人狠狠操| 亚洲乱色熟女一区二区 | 亚洲码无人客一区二区三区 | 我们好看的2018视频在线观看 | 综合色区 | 99av国产精品欲麻豆 | 97爱视频| 杨幂一区二区三区免费看视频 | 日韩欧美成人一区二区三区 | 亚洲欧洲日本一区二区三区 | 黄色三级三级三级三级 | 日韩欧美一区在线 | 华人在线视频 | 日韩少妇 | 午夜电影天堂 | 亚洲激情视频在线 | 亚洲av乱码久久精品蜜桃 | 欧美a级片在线观看 | 欧美激情xxxxx | 淫人网| 韩国一级淫片 | 国产成人精品亚洲精品色欲 | 一区一区三区产品乱码 | 国产精品区一 | 91尤物视频在线观看 | 免费观看av毛片 | 欧美激情va永久在线播放 | 免费在线观看黄色网址 | 久久91精品 | 国产免费久久久 | 久久精品国产欧美亚洲人人爽 | 亚洲激情在线播放 | 婷婷丁香综合网 | 亚洲黄色一级大片 | 久久久久亚洲av成人网人人网站 | 国产a级免费视频 | 丰满岳乱妇一区二区三区 | 香蕉视频黄色在线观看 | 日韩av免费在线观看 | 欧美无遮挡高潮床戏 | 亚洲免费大全 | 看片免费黄在线观看入口 | 日本黄色美女视频 | 欧洲一级黄 | 国产精品成人aaaa在线 | 免费av国产 | 超碰操| 69av在线视频| 翔田千里一区二区 | 日本视频在线看 | 热久久国产精品 | 国产视频精品视频 | 欧美性猛交乱大交xxxx | 欧美日韩不卡一区二区 | 男人操女人网站 | 性a视频 | 久久久精品中文字幕麻豆发布 | 日韩一区二区在线视频 | 久久97人妻无码一区二区三区 | av在线免费观看不卡 | 噜噜狠狠狠狠综合久久 | 97超碰站| 国产熟女高潮视频 | 91国视频| 91黄版| 午夜国产片 | 91精品91| 国产免费大片 | 欧美性生活网 | 91免费观看视频 | 久久久精品视频一区 | 欧美性区 | 亚洲精品久久久久avwww潮水 | 亚洲精品888| 欧美激情在线一区 | 福利视频第一页 | 黄色一级片网站 | 欧美大片免费观看网址 | 91国内| 四虎国产精品免费 | av网站在线免费观看 | 特黄视频在线观看 | a猛片| 日韩特一级 | www.色妞| 秋霞在线观看视频 |