fasttext使用笔记
http://blog.csdn.net/m0_37306360/article/details/72832606
这里记录使用fastText训练word vector笔记
github地址:https://github.com/facebookresearch/fastText
下载到本机:
$ gitclone https://github.com/facebookresearch/fastText.git
$ cdfastText
$ make
Make报错:
原因GCC版本过低
Gcc –v
升级版本:参考(http://www.linuxidc.com/Linux/2016-11/136840.htm)
1. 添加源
首先添加ppa到库:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
2. 安装新版gcc/g++(注意gcc和g++都要更新)
接着就可以选择安装gcc-4.9,gcc-5之类的啦!(注意目前gcc-5实际上是5.3.0,没有5.1或5.2可供选择)
sudo apt-get install gcc-
4.8g++-
4.8
sudo apt-get install gcc-
4.9g++-
4.9
sudo apt-get install gcc-
5g++-
5
sudo apt-get install gcc-
6g++-
6
具体希望安装哪个版本,大家可以自己选择
3. 刷新db并locate
接着现在可以考虑刷新一下, 否则locate等命令是找不到的, 这个也是可选的(非必须)
sudo updatedb && sudo ldconfig
locate gcc | grep -E "/usr/bin/gcc-[0-9]"
4. 切换版本
通过update-alternatives建立文件关联
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.620
sudo update-alternatives --install /usr/bin/gcc gcc/usr/bin/gcc-4.8 30
然后在fastText文件夹下make,成功生成fastText执行文件。
接下来就可以愉快的使用了。
fastText可以可以用于训练 word represent和text classification,这里记录使用fastText训练word embedding过程。
1. 首先打开word-vector-example.sh文件
RESULTDIR=result //结果保存文件夹
DATADIR=data //输入数据文件夹
mkdir -p"${RESULTDIR}"
mkdir -p"${DATADIR}"
if [ ! -f"${DATADIR}/fil9" ] //如果fil9不存在,就下载
then
wget -c http://mattmahoney.net/dc/enwik9.zip-P "${DATADIR}"
unzip "${DATADIR}/enwik9.zip" -d"${DATADIR}"
perl wikifil.pl "${DATADIR}/enwik9"> "${DATADIR}"/fil9
fi
if [ ! -f"${DATADIR}/rw/rw.txt" ] //如果rw.txt不存在,就下载
then
wget -chttps://nlp.stanford.edu/~lmthang/morphoNLM/rw.zip -P "${DATADIR}"
unzip "${DATADIR}/rw.zip" -d"${DATADIR}"
fi
make
./fasttextskipgram -input "${DATADIR}"/fil9 -output"${RESULTDIR}"/fil9 -lr 0.025 -dim 100 \
-ws 5 -epoch 1 -minCount 5 -neg 5 -loss ns-bucket 2000000 \
-minn 3 -maxn 6 -thread 4 -t 1e-4-lrUpdateRate 100
//这行代码为训练word embedding,输入为DATADIR下的fil9,输出模型保存在RESULTDIR下fil9。
这些参数是强制性设定的:
- minCount 5:单词出现少于5就丢弃 -minn 最小长度的字符 -maxn 最长长度的字符 –t 采样阈值
这些参数是可选的:
-lr 学习率–epoch 迭代次数–neg 负采样–loss loss function {ns,hs, softmax} ---dim 词向量维度 –ws 窗口大小
cut -f1,2 "${DATADIR}"/rw/rw.txt | awk '{print tolower($0)}' | tr '\t' '\n'> "${DATADIR}"/queries.txt
cat"${DATADIR}"/queries.txt | ./fasttext print-word-vectors "${RESULTDIR}"/fil9.bin> "${RESULTDIR}"/vectors.txt
python eval.py -m "${RESULTDIR}"/vectors.txt -d"${DATADIR}"/rw/rw.txt
2. 使用自己的语料训练,这里我使用维基百科英文语料,处理过程前面有讲。
./fasttext cbow –input new_enwiki –output new_enwiki_100_30–epoch 30 –neg 5 –loss ns –dim 100 –ws 5
fasttext使用笔记的更多相关文章
- fasttext学习笔记
When to use FastText? The main principle behind fastText is that the morphological structure of a wo ...
- NLP︱高级词向量表达(二)——FastText(简述、学习笔记)
FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,不过这个项目其实是有两部分组成的,一部分是这篇文章介绍的 fastText 文本分类(paper: ...
- cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)
在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...
- 人工智能头条(公开课笔记)+AI科技大本营——一拨微信公众号文章
不错的 Tutorial: 从零到一学习计算机视觉:朋友圈爆款背后的计算机视觉技术与应用 | 公开课笔记 分享人 | 叶聪(腾讯云 AI 和大数据中心高级研发工程师) 整 理 | Leo 出 ...
- 官网实例详解-目录和实例简介-keras学习笔记四
官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras 版权声明: ...
- 学习笔记(25)- NLP的几个概念
NLP的几个概念 从技术研究的角度,简单介绍自然语言处理的几个概念 1. 对抗学习 主要指对抗生成网络. 2个主要构成:判别器.生成器 判别模型尽可能提取特征正确率增加的模型,生成模型尽可能" ...
- 无所不能的Embedding 2. FastText词向量&文本分类
Fasttext是FaceBook开源的文本分类和词向量训练库.最初看其他教程看的我十分迷惑,咋的一会ngram是字符一会ngram又变成了单词,最后发现其实是两个模型,一个是文本分类模型[Ref2] ...
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
随机推荐
- centos7安装rvm
导入钥匙$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 若是提示 ...
- spring cloud 学习(4) - hystrix 服务熔断处理
hystrix 是一个专用于服务熔断处理的开源项目,当依赖的服务方出现故障不可用时,hystrix有一个所谓的断路器,一但打开,就会直接拦截掉对故障服务的调用,从而防止故障进一步扩大(类似中电路中的跳 ...
- 性能优化:使用SparseArray代替HashMap<Integer,Object>(转)
HashMap是java里比较常用的一个集合类,我比较习惯用来缓存一些处理后的结果.最近在做一个Android项目,在代码中定义这样一个变量,实例化时,Eclipse却给出了一个 performanc ...
- 交叉编译strace
下载地址:https://sourceforge.net/projects/strace/ 我下的版本是4.18, 也可以到这里下载. 下面是交叉编译用的脚本: #!/bin/bash ../conf ...
- 基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
在ipad.iphone网页开发中,我们很可能需要判断是横屏或者竖屏.下面就来介绍如何用 jQuery 判断iPad.iPhone.Android是横屏还是竖屏的方法 其实主要是通过window.or ...
- spring boot 之@JsonView 简单介绍
@JsonView是jackson json中的一个注解,spring webmvc也支持这个注解. 这个注解的作用就是控制输入输出后的json. 假设我们有一个用户类,其中包含用户名和密码,一般情况 ...
- 冰血暴第一季/全集Fargo迅雷下载
冰血暴 第一季 Fargo 1 (2014)本季看点: 该剧改编自科恩兄弟获得1996年奥斯卡提名的同名经典影片,计划总共拍摄10集,第一季将讲述一个完整的故事.由<识骨寻踪第一季>编剧诺 ...
- 通过泛型来简化findViewById
我们一般写findViewById都要加个强制转换,感觉很麻烦,现在你可以在你的BaseActivity中写入如下方法: @SuppressWarnings(“unchecked”) public f ...
- java 模拟发送post请求测试
方法一: HttpClient public void postTest(HttpServletRequest request,Integer type,String phone,String pas ...
- ExpandoObject对象的JSON序列化
如果: dynamic expando = new ExpandoObject(); d.SomeProp=SomeValueOrClass; 然后,我们在控制器中: return new JsonR ...