# _*_coding:utf-8 _*_
import fasttext
import jieba
from sklearn import metrics
import random
def read_file(filename):
i=0;
sentences =[]
out = open('data/cnews/fast_test.txt','a+')
with open(filename) as ft:
for line in ft:
label, content = line.strip().split('\t')
segs = jieba.cut(content)
segs = filter(lambda x:len(x)>1,segs)
sentences.append("__label__"+str(label)+"\t"+" ".join(segs))
random.shuffle(sentences)
for sentence in sentences:
out.write(sentence+"\n")
out.close()
read_file('data/cnews/cnews.train.txt')
classifier = fasttext.supervised('data/cnews/fast_train.txt','new_fasttext.model')
classifier = fasttext.load_model('new_fasttext.model.bin')
categories = ['体育', '财经','房产','家居','教育', '科技', '时尚', '时政', '游戏', '娱乐']
read_file('data/cnews/cnews.test.txt')
result = classifier.test('data/cnews/fast_test.txt')
print("准确率为:%f"%result.precision)
print("召回率为: %f"%result.recall)
with open('data/cnews/cnews.test.txt') as fw:
contents,labels = [],[]
for line in fw:
label ,content = line.strip().split('\t')
segs = jieba.cut(content)
segs = filter(lambda x:len(x)>1,segs)
contents.append(" ".join(segs))
labels.append('__label__'+label)
label_predict = [e[0] for e in classifier.predict(contents)]
print("Precision,Recall and F1-Score....")
print(metrics.classification_report(labels,label_predict,target_names=categories))

关于fasttext的使用一些疑问:fasttext.supervised的参数label_prefix 一直提示我这个参数使用有问题... 然而,搜素了半天,我也没搞明白这个参数哪里有问题

还有一点需要注意的地方:fasttext的识别标签统一需要在标签前面加上"__label__"

后续会更新fastext的原理

fasttext模型 训练THUCNews的更多相关文章

  1. [Kaggle] dogs-vs-cats之模型训练

    上一步建立好模型之后,现在就可以训练模型了. 主要代码如下: import sys #将当期路径加入系统path中 sys.path.append("E:\\CODE\\Anaconda\\ ...

  2. A TensorBoard plugin for visualizing arbitrary tensors in a video as your network trains.Beholder是一个TensorBoard插件,用于在模型训练时查看视频帧。

    Beholder is a TensorBoard plugin for viewing frames of a video while your model trains. It comes wit ...

  3. AI佳作解读系列(一)——深度学习模型训练痛点及解决方法

    1 模型训练基本步骤 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的.选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 定义算法公 ...

  4. VGG19模型训练+读取

    目录 VGG-19模型简单介绍 VGG-19模型文件介绍 分析模型文件 mean值查看 Weight和Bias查看 读取代码 读取模型 训练代码 参考资料 VGG-19的介绍和训练这里不做说明,网上资 ...

  5. 机器学习使用sklearn进行模型训练、预测和评价

    cross_val_score(model_name, x_samples, y_labels, cv=k) 作用:验证某个模型在某个训练集上的稳定性,输出k个预测精度. K折交叉验证(k-fold) ...

  6. 谷歌大规模机器学习:模型训练、特征工程和算法选择 (32PPT下载)

    本文转自:http://mp.weixin.qq.com/s/Xe3g2OSkE3BpIC2wdt5J-A 谷歌大规模机器学习:模型训练.特征工程和算法选择 (32PPT下载) 2017-01-26  ...

  7. facenet模型训练

    做下记录,脚本如下: 对比 python3 src/compare.py ../models/-/ ../faces/pyimgs/dashenlin/ytwRkvSdG1000058.png ../ ...

  8. 人脸检测及识别python实现系列(3)——为模型训练准备人脸数据

    人脸检测及识别python实现系列(3)——为模型训练准备人脸数据 机器学习最本质的地方就是基于海量数据统计的学习,说白了,机器学习其实就是在模拟人类儿童的学习行为.举一个简单的例子,成年人并没有主动 ...

  9. 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练

    背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...

  10. kaldi基于GMM的单音素模型 训练部分

    目录 1. gmm-init-mono 模型初始化 2. compile-train-graghs 训练图初始化 3. align-equal-compiled 特征文件均匀分割 4. gmm-acc ...

随机推荐

  1. 腾讯云开发微信小程序使用体验

    主体内容 代码构成 数据:JSON 配置文件 结构:WXML 模版文件 样式:WXSS 页面样式 交互:JS 脚本逻辑文件 云开发 云数据库 云函数 云存储 WXML 是小程序框架设计的一套标签语言, ...

  2. Thread interrupted() 线程的中断

    问题: 1.线程的中断方式. 2.为什么中断阻塞中的线程,会抛出异常. 代码示例: package com.hdwl.netty; public class ThreadInterrupted { p ...

  3. Luogu5405 CTS2019氪金手游(容斥原理+树形dp)

    考虑外向树怎么做.显然设f[i][j]为i子树中出现权值和为j的合法方案的概率,转移做树形背包即可. 如果树上只有一条反向边,显然可以先不考虑该边计算概率,再减去将整棵树看做外向树的概率.于是考虑容斥 ...

  4. 怎样修改vim的缩进

    默认vim的tab缩进是八个空格, 太长了, 需要改短一点. 第一步: 找到vimrc文件所在位置 # find / -name vimrc 第二步: 找到以后用vim打开vimrc文件并增加下面两行 ...

  5. Python 2.7.x 和 3.x 版本的重要区别小结

    许多Python初学者都会问:我应该学习哪个版本的Python.对于这个问题,我的回答通常是"先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本.等学得差 ...

  6. ReLU函数的缺陷

    ReLU激活功能并不完美. 它有一个被称为 “ReLU 死区” 的问题:在训练过程中,一些神经元会“死亡”,即它们停止输出 0 以外的任何东西.在某些情况下,你可能会发现你网络的一半神经元已经死亡,特 ...

  7. HTTP抓包实战

    HTTP:超文本传输协议 允许将HTTP文档从Web服务器传送到客户端的浏览器.HTTP请求报文分为3部分.第一部分叫做起始行(Request line).第二部分叫首部(Request Header ...

  8. 一、hystrix如何集成在openfeign中使用

    所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 HystrixInvocationHandler hystrix是开源的一个熔断组件,s ...

  9. java利用反射打印出类的结构

    1 输入一个类名:java.lang.String将打印出String类定义的结构,例如: public final class java.lang.String { public java.lang ...

  10. zabbix推送内存监控单应用shell

    利用top方式获取指定第三方的内存使用率 #!/bin/bash process=$1 if [ ! -z $process ];then cd /zabbix/zabbix-agent/script ...