fasttext是word2vec作者提出的文字分類演算法。它是乙個用於高效學習單詞表示和文字分類的庫。
本篇部落格主要介紹fasttext在python下的基本應用
pip install fasttext
訓練樣本train_data.txt
的格式介紹
每一行是文字+分類標籤
分類標籤最好形如__label__news
,__label__
表示分類標籤的字首,news
表示分類的標籤
測試樣本test_data.txt
格式同訓練樣本
import fasttext
# 訓練監督文字,train_data.txt,模型會預設儲存在當前目錄下,名稱為"fasttext_test.model.bin";thread表示以3個執行緒進行訓練,不加預設1個執行緒
classifier = fasttext.supervised('train_data.txt', 'fasttext_test.model', label_prefix='__label__', thread=3)
# 驗證資料集
result = classifier.test('test_data.txt')
# 輸出準確率和召回率
print(result.precision, result.recall)
# **文字分類, articles是一段文字用字串表示, k=3表示輸入可能性較高的三個分類,不加引數預設只輸出乙個
result = classifier.predict(articles, k=3)
# 載入模型
classifier = fasttext.load_model("fasttext_test.model.bin", label_prefix="__label__")
更加具體的用法可參看文件 文字分類 libsvm
關於 libsvm 的介紹以及相關 網上很多,感興趣可以找找。這是libsvm 這裡主要是針對之前學習過的幾種特徵篩選演算法用 libsvm 進行比較。採用搜狗實驗室的資料,選擇商業類文字 1001 篇,娛樂類文字 1208 篇,測試集 29904 篇。分別採用文件頻次,卡方分布,互資訊,資訊增益來...
文字分類四
下面是使用knn演算法來做的。資料均是由前面的程式生成的。做完這個之後,就是將每一步整合起來。然後再盡可能的優化,使得程式效率更好。然後可以嘗試不同的特徵選擇演算法和分類演算法,當然最後要是能有自己的一些小小改進就好了。不過至少有了乙個還可以的結果了。include include include ...
文字分類概論
通過新增特定規則做分類任務,費時費力,覆蓋的範圍和準確率都非常有限。維護停用詞表 包括高頻的代詞連詞介詞等 特徵提取過程中刪除停用表 現的詞等 1.詞袋模型 one hot編碼 缺點 高緯度 高稀疏 無法編碼上下文的關聯資訊,無法表達語義資訊。2.向量空間模型 通過特徵選擇降低維度,特徵權重計算增加...