欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python深度學(xué)習之FastText實現(xiàn)文本分類詳解

 更新時間:2022年09月21日 10:45:25   作者:小魚干兒?  
FastText是一種典型的深度學(xué)習詞向量的表示方法,它非常簡單通過Embedding層將單詞映射到稠密空間,然后將句子中所有的單詞在Embedding空間中進行平均,進而完成分類操作

FastText是一個三層的神經(jīng)網(wǎng)絡(luò),輸入層、隱含層和輸出層。

FastText的優(yōu)點:

使用淺層的神經(jīng)網(wǎng)絡(luò)實現(xiàn)了word2vec以及文本分類功能,效果與深層網(wǎng)絡(luò)差不多,節(jié)約資源,且有百倍的速度提升

深度學(xué)習和機器學(xué)習的區(qū)別:

與傳統(tǒng)機器學(xué)習不同,深度學(xué)習既提供特征提取功能,也可以完成分類的功能。機器學(xué)習需要再根據(jù)提取到的特征再進行分類。

安裝FastText

使用pip安裝

pip install fasttext

因為FastText依賴C++的環(huán)境,安裝的時候可能會報錯,有的是C++ 11

有的是C++14看報錯里面缺少那個版本的C++環(huán)境就安裝那個版本的環(huán)境就可以了

使用FastText進行文本分類的一般步驟

數(shù)據(jù)格式的要求:

__label__標簽 文本內(nèi)容  或  文本內(nèi)容 __label__標簽
__label__標簽\t文本內(nèi)容  或  文本內(nèi)容\t__label__標簽
文本內(nèi)容和標簽之間用\t或空格都可以
目前這幾種形式都支持

數(shù)據(jù)預(yù)處理:

將原數(shù)據(jù)處理為數(shù)據(jù)要求的格式,分詞以后詞于詞之間用空格連接

這個根據(jù)自己數(shù)據(jù)的情況自己進行處理

訓(xùn)練模型

import fasttext
model = fasttext.train_supervised('train.csv', lr=1.0, wordNgrams=2, verbose=2, minCount=1, epoch=25, loss="hs")     # 訓(xùn)練模型
# train.csv 文件路徑,也可以是txt文件,里面的參數(shù)根據(jù)需要調(diào)
"""
  訓(xùn)練一個監(jiān)督模型, 返回一個模型對象
  input:           訓(xùn)練數(shù)據(jù)文件路徑
  lr:              學(xué)習率
  dim:             向量維度
  ws:              cbow模型時使用
  epoch:           次數(shù)
  minCount:        詞頻閾值, 小于該值在初始化時會過濾掉
  minCountLabel:   類別閾值,類別小于該值初始化時會過濾掉
  minn:            構(gòu)造subword時最小char個數(shù)
  maxn:            構(gòu)造subword時最大char個數(shù)
  neg:             負采樣
  wordNgrams:      n-gram個數(shù)
  loss:            損失函數(shù)類型, softmax, ns: 負采樣, hs: 分層softmax
  bucket:          詞擴充大小, [A, B]: A語料中包含的詞向量, B不在語料中的詞向量
  thread:          線程個數(shù), 每個線程處理輸入數(shù)據(jù)的一段, 0號線程負責loss輸出
  lrUpdateRate:    學(xué)習率更新
  t:               負采樣閾值
  label:           類別前綴
  verbose:         ??
  pretrainedVectors: 預(yù)訓(xùn)練的詞向量文件路徑, 如果word出現(xiàn)在文件夾中初始化不再隨機
  model object
  """

預(yù)測數(shù)據(jù)

使用predict預(yù)測數(shù)據(jù),預(yù)測一段文本屬于的類別

model.predict(x)  # x文本內(nèi)容 返回的數(shù)據(jù)格式(('__label__4',), array([0.99441689]))
# 可能性最大的標簽和準確率

使用test驗證模型的準確率,傳入的是一個文件,文件的格式和訓(xùn)練集一樣

返回一個元組(樣本數(shù),精確率,找回率)

模型的保存

model.save_model("model_cooking.bin") # 文件路徑

模型讀取

fasttext.load_model("model_cooking.bin") # 讀取模型

模型的優(yōu)化

直接使用默認參數(shù)去訓(xùn)練模型一般都得不到特別好的結(jié)果,可以通過一些手段來優(yōu)化模型。第一種可以采取的手段是去掉語料庫當中的停止詞,對于英文的語料庫來說,還可以把所有的大寫字母都轉(zhuǎn)化成小寫字母。另一種可以采取的手段是調(diào)整超參數(shù),比如說修改學(xué)習速率、修改epoch等,大家可以參照著fastTest的文檔去進行相應(yīng)的調(diào)整,fastText的文檔中介紹了一種更加方便的自動調(diào)參方法,只要我們同時提供訓(xùn)練集和測試集就可以了,帶來的精確度提升還是非常顯著的:

model = fasttext.train_supervised(input='train.csv', autotuneValidationFile='test.csv', autotuneDuration=600) 
"""
autotuneValidationFile='test.csv',   測試集數(shù)據(jù)集
autotuneDuration=600                 時間限制,單位為秒,默認為5分鐘
"""
# 如果想查看對應(yīng)的參數(shù),可以使用
對象.屬性的方式進行查看

舉例:

使用FastText進行文本分類的基本操作就是這些內(nèi)容,關(guān)于深層次的學(xué)習大家可以參考

傳送門

到此這篇關(guān)于Python深度學(xué)習之FastText實現(xiàn)文本分類詳解的文章就介紹到這了,更多相關(guān)Python FastText內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python腳本完成post接口測試的實例

    Python腳本完成post接口測試的實例

    今天小編就為大家分享一篇Python腳本完成post接口測試的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python調(diào)用shell的方法

    python調(diào)用shell的方法

    這篇文章主要介紹了python調(diào)用shell的方法,python調(diào)用shell命令的方法有許多種,大家可以參考使用
    2013-11-11
  • 從入門到精通:玩轉(zhuǎn)Python?Fire庫

    從入門到精通:玩轉(zhuǎn)Python?Fire庫

    想快速打造屬于你的Python?GUI應(yīng)用嗎?拋開復(fù)雜的代碼,用Python?Fire庫就能輕松實現(xiàn)!本指南將引領(lǐng)你從零起步,駕馭Python?Fire的強大功能,讓編程既簡單又高效,準備好了嗎?讓我們開始玩轉(zhuǎn)Python?Fire,開啟你的編程冒險吧!
    2024-02-02
  • Python實現(xiàn)讀取txt文件并畫三維圖簡單代碼示例

    Python實現(xiàn)讀取txt文件并畫三維圖簡單代碼示例

    這篇文章主要介紹了Python實現(xiàn)讀取txt文件并畫三維圖簡單代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 淺談numpy 函數(shù)里面的axis參數(shù)的含義

    淺談numpy 函數(shù)里面的axis參數(shù)的含義

    這篇文章主要介紹了numpy 函數(shù)里面的axis參數(shù)的含義,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Python 短視頻爬蟲教程

    Python 短視頻爬蟲教程

    今天給大家?guī)硪黄老x小教程,很簡單的幾十行代碼就可以實現(xiàn)了,爬取的目標是短視頻,感興趣的同學(xué)快來跟著小編往下看吧
    2021-11-11
  • 對tf.reduce_sum tensorflow維度上的操作詳解

    對tf.reduce_sum tensorflow維度上的操作詳解

    今天小編就為大家分享一篇對tf.reduce_sum tensorflow維度上的操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • java判斷三位數(shù)的實例講解

    java判斷三位數(shù)的實例講解

    在本文里小編給大家整理了關(guān)于java怎么判斷三位數(shù)的實例方法以及要點總結(jié),需要的朋友們跟著學(xué)習下。
    2019-06-06
  • python中for in的用法詳解

    python中for in的用法詳解

    這篇文章主要介紹了python中for in的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-04-04
  • python 弧度與角度互轉(zhuǎn)實例

    python 弧度與角度互轉(zhuǎn)實例

    這篇文章主要介紹了python 弧度與角度互轉(zhuǎn)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論