fasttext的基本使用 java 、python为例子
fasttext的基本使用 java 、python为例子
今天早上在地铁上看到知乎上看到有人使用fasttext进行文本分类,到公司试了下情况在GitHub上找了下,最开始是c++版本的实现,不过有Java、Python版本的实现了,正好拿下来试试手,
python情况:
python版本参考,作者提供了详细的实现,并且提供了中文分词之后的数据,正好拿下来用用,感谢作者,代码提供的数据作者都提供了,点后链接在上面有百度盘,可下载,java接口用到的数据也一样:
- http://blog.csdn.net/lxg0807/article/details/52960072
- import logging
- import fasttext
- logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
- #classifier = fasttext.supervised("fasttext/news_fasttext_train.txt","fasttext/news_fasttext.model",label_prefix="__label__")
- #load训练好的模型
- classifier = fasttext.load_model('fasttext/news_fasttext.model.bin', label_prefix='__label__')
- result = classifier.test("fasttext/news_fasttext_test.txt")
- print(result.precision)
- print(result.recall)
- labels_right = []
- texts = []
- with open("fasttext/news_fasttext_test.txt") as fr:
- lines = fr.readlines()
- for line in lines:
- labels_right.append(line.split("\t")[1].rstrip().replace("__label__",""))
- texts.append(line.split("\t")[0])
- # print labels
- # print texts
- # break
- labels_predict = [e[0] for e in classifier.predict(texts)] #预测输出结果为二维形式
- # print labels_predict
- text_labels = list(set(labels_right))
- text_predict_labels = list(set(labels_predict))
- print(text_predict_labels)
- print(text_labels)
- A = dict.fromkeys(text_labels,0) #预测正确的各个类的数目
- B = dict.fromkeys(text_labels,0) #测试数据集中各个类的数目
- C = dict.fromkeys(text_predict_labels,0) #预测结果中各个类的数目
- for i in range(0,len(labels_right)):
- B[labels_right[i]] += 1
- C[labels_predict[i]] += 1
- if labels_right[i] == labels_predict[i]:
- A[labels_right[i]] += 1
- print(A )
- print(B)
- print( C)
- #计算准确率,召回率,F值
- for key in B:
- p = float(A[key]) / float(B[key])
- r = float(A[key]) / float(C[key])
- f = p * r * 2 / (p + r)
- print ("%s:\tp:%f\t%fr:\t%f" % (key,p,r,f))
java版本情况:
- https://github.com/ivanhk/fastText_java
- package test;
- import java.util.List;
- import fasttext.FastText;
- import fasttext.Main;
- import fasttext.Pair;
- public class Test {
- public static void main(String[] args) throws Exception {
- String[] text = {
- "supervised",
- "-input",
- "/Users/shuubiasahi/Documents/python/fasttext/news_fasttext_train.txt",
- "-output", "/Users/shuubiasahi/Documents/faste.model", "-dim",
- "10", "-lr", "0.1", "-wordNgrams", "2", "-minCount", "1",
- "-bucket", "10000000", "-epoch", "5", "-thread", "4" };
- Main op = new Main();
- op.train(text);
- FastText fasttext = new FastText();
- String[] test = { "就读", "科技", "学生" ,"学生","学生"};
- fasttext.loadModel("/Users/shuubiasahi/Documents/faste.model.bin");
- List<Pair<Float, String>> list = fasttext.predict(test, 6); //得到最大可能的六个预测概率
- for (Pair<Float, String> parir : list) {
- System.out.println("key is:" + parir.getKey() + " value is:"
- + parir.getValue());
- }
- System.out.println(Math.exp(list.get(0).getKey())); //得到最大预测概率
- }
- }
key is:0.0 value is:__label__edu
key is:-17.75125 value is:__label__affairs
key is:-17.75125 value is:__label__economic
key is:-17.75125 value is:__label__ent
key is:-17.75125 value is:__label__fashion
key is:-17.75125 value is:__label__game
1.0
注意fasttext对输入格式有要求,label标签使用 “__label__”+实际标签的形式, over
有问题联系我
2016年5月26 我的模型已经上线了 效果还不错
fasttext的基本使用 java 、python为例子相关推荐
- java python算法_用Python,Java和C ++示例解释的排序算法
java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...
- java python算法_用Java,Python和C ++示例解释的搜索算法
java python算法 什么是搜索算法? (What is a Search Algorithm?) This kind of algorithm looks at the problem of ...
- Eclipse安装教程 ——史上最详细安装Java Python教程说明
Eclipse安装教程 --史上最详细安装Java&Python教程说明 ...
- LeetCode 319. Bulb Switcher--C++,java,python 1行解法--数学题
LeetCode 319. Bulb Switcher–C++,java,python 1行解法 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有 ...
- CUDA,C++,Java,Python,Fortran运行速度比较
通过计算100万以内素数的运行时间比较这5种语言的运行速度. 每种语言运行30次,取平均值.由于python和fortran的运行速度和Java和C++运行差距过大,python只计算了3次,Fort ...
- 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略 ...
- BigData:大数据开发的简介、核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS、HBase、Hive}+Docker)、经典场景应用之详细攻略
BigData:大数据开发的简介.核心知识(linux基础+Java/Python编程语言+Hadoop{HDFS.HBase.Hive}+Docker).经典场景应用之详细攻略 BigData:大数 ...
- [Spark][Python]sortByKey 例子
[Spark][Python]sortByKey 例子: [training@localhost ~]$ hdfs dfs -cat test02.txt 00002 sku010 00001 sku ...
- 【Python基础】告别枯燥,60 秒学会一个 Python 小例子(文末下载)
本文推荐一个python的傻瓜式的学习资源,内容简单易懂,让人可以在60 秒学会一个 Python 小例子 当前库已有 300多 个实用的小例子 本文来源:https://github.com/jac ...
最新文章
- Angular vs React 最全面深入对比
- 用python写脚本看什么书-终于知晓python编写脚本入门教程
- 《认知突围》做复杂时代的明白人,读书分享
- Hello Blog!
- +++程序员高手修炼之路
- iOS 不通过改变url 与web JS 交互
- 关于RMAN recover 过程的讨论
- Streams API
- 提高MyEclipse启动速度
- 安卓微信打开的文档存放在哪里
- 浅谈企业生产现场消防安全管理策略分析
- 2022年3月份报告合集(共353份)
- qt 之 qml 类型 Binding
- Deqin - 接小球游戏
- 磨金石教育摄影技能干货分享|那些酷炫的照片是怎么拍出来的?
- flex布局设置宽度不生效,高度生效
- DANN:利用神经网络算法评估变异位点的有害程度
- 在电脑中安装群辉NAS
- kaggle 2018 data science bowl____一次失败的 kaggle 项目参与经历及反思总结
- Web地图服务发布及运维方案
热门文章
- JAVA vector的遍历_谈谈vector容器的三种遍历方法
- python 设计模式 观察者_设计模式Python实现-观察者模式
- matlab 图像旋转补色,旋转互补色光学错觉
- linux so_nosigpipe,TCP_NODELAY/SO_LINGER/SO_NOSIGPIPE/MSG_NOSIGNAL设置
- UFLDL教程: Exercise: Sparse Autoencoder
- Linux 释放cpugpu内存、显存和硬盘
- Random Forest 实用经验(转)
- 批量提取 caffe 特征 (python, C++, Matlab)(待续)
- 基础10 多进程、协程(multiprocessing、greenlet、gevent、gevent.monkey、select、selector)...
- item-设置可见性