fasttext(2)-- 安装 & 使用

本文介绍了fastText的安装步骤及使用方法,包括通过pip安装、setuptools安装等途径,并详细讲解了fastText用于单词表示学习和文本分类的应用案例。

fastText 安装

fasttext 是一个有效的学习字词表达和句子分类的库。建立在现代 Mac OS 和 Linux 发行版上。因为它使用了 C++11 的特性,所以需要一个支持 C++11 的编译器,这些包括:

gcc-4.8 或更高版本

clang-3.3 或更高版本

安装 fasttext

(1)最简单的方法是使用 pip 安装

$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ pip install .

(2)也可以使用 setuptools 安装

$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ python setup.py install

(3)现在可以直接安装

pip install fasttext

一般来说,正确处理数据是很重要的,fasttext 采用 UTF-8 编码的文本。所有的文本必须是 Python2的Unicode 和Python3的str。传递的文本将被 pybind11 编码为 UTF-8 ,然后传递给 fasttext c++ 库。这意味着在构建模型时使用 UTF-8 编码的文本非常重要。在类 unix 系统中,可以使用 iconv 转换文本。

fasttext 将基于以下 ASCII 字符进行标记(将文本分割成块)。特别是,它不知道 UTF-8 空格。建议将 UTF-8空格/字符边界转换成下列符号之一作为批准:

空格  tab 空字符 回车符

 

fastText 使用

fasttext 包有两个主要用例:单词表示学习 和 文本分类

1.单词表示学习

为了学习单词向量,我们可以使用 fasttext.skipgram 和 fasttext.cbow 功能

import fasttext
# skipgram model
model = fasttext.skipgram('data.txt','model')
print model.words # 字典中的词汇列表

# CBOW model
model = fasttext.cbow('data.txt','model')
print model.words

data.txt 是一个以 UTF-8 编码的训练文本文件,在默认情况下,单词向量将会考虑到 n-grams 的3 到 6 个字符。在优化结束时,程序将保存 2 个文件: model.bin 和 model.vec

获取词汇表外单词的向量,已经训练过的模型可以用来计算词汇表外的词汇向量。

# 单词 'king' 的词向量
print model['king']

加载训练好的词向量模型,我们可以使用 fasttext.load_model 方法

# 加载前面训练好的模型 model.bin
model = fasttext.load_model("model.bin")
print model.words # model 中的词汇列表
print model["king"] # "king" 的词向量

2.文本分类

该包还可以用于训练监督文本分类器,并从 fasttext 加载经过训练的分类器

训练文本分类器如下,data.train.txt 是一个包含训练语句和标签的文本文件,可以先参考上一节中训练语料的格式。默认情况下,我们假定标签是由字符串 __label__ 为前缀的单词。

# 训练文本分类器
classifier = fasttext.supervised('data.train.txt','model')
# 还可以用 label_prefix 指定标签前缀
classifier = fasttext.supervised('data.train.txt','model',label_prefix = '__label__')

将输出两个文件: model.bin 和 model.vec

一旦模型被训练,我们可以计算分类器在测试数据集上的准确率和召回率来评估模型 classifer.test 方法

# 加载模型
classifier = fasttext.load_model("model.bin",label_prefix = "__label__")

# 使用 classifier.test 方法在测试数据集上评估模型
result = classifier.test("test.txt")
print "准确率:" , result.precision
print "召回率:" , result.recall
print "Number of examples:", result.nexamples

为了使用训练的模型预测文本列表中最有可能的标签,我们可以用 classifier.predict 方法

texts = ["example very long text 1","example very longtext 2"]
labels = classifier.predict(texts)
print labels

或者加上可能性,也就是这个标签的预测概率,我们用 classifier.predict_proba 方法

texts = ["example very long text 1","example very longtext 2"]
labels = classifier.predict_proba(texts)
print labels

我们也可以指定 k 值,从分类器中得到 k-best 标签

# 不含预测可能性的 k = 3
labels = classifier.predict(texts,k = 3)

# 含可能性的 k = 3
labels = classifier.predict_proba(texts,k = 3)
### 安装适用于 Python 3.9 的 FastText 库 对于 Python 3.9 用户来说,安装 FastText 可能会遇到一些兼容性问题。以下是关于如何找到并安装适合 Python 3.9 (CP39)FastText 轮子文件(wheel file)的相关信息。 #### 方法一:通过 PyPI 获取预编译版本 可以从官方 PyPI 页面获取 FastText 预编译的轮子文件。访问以下链接可以选择对应的版本下载: - 下载页面地址:[PyPI FastText Wheel](https://pypi.org/project/fasttext-wheel/#files)[^1] 在选择具体文件时需要注意以下几个方面: - **Python 版本**:确保所选文件中的 `cp39` 表示其适配的是 Python 3.9。 - **操作系统架构**:如果是 Windows 系统,则应选择带有 `-win_amd64.whl` 后缀的文件,表示该文件针对 Win64 架构进行了优化。 完成下载之后,在命令行工具中切换至存储 `.whl` 文件的位置,并运行如下命令来执行安装操作: ```bash pip install fasttext_wheel-0.9.2-cp39-cp39-win_amd64.whl ``` #### 方法二:从第三方资源站点下载 如果上述方法无法满足需求或者存在其他错误情况,还可以尝试从另一个可信源下载所需的 wheel 文件。推荐使用由 Christoph Gohlke 提供的支持多种科学计算包的网站: - 下载地址:[Unofficial Windows Binaries for Python Extension Packages](https://www.lfd.uci.edu/~gohlke/pythonlibs/#fasttext)[^2] 同样地,挑选与当前环境相匹配的 wheel 文件至关重要。例如,对于 Python 3.9 和 Windows 64 位系统而言,应该选用形如 `fasttext‑0.9.2‑cp39‑cp39‑win_amd64.whl` 的文件名称结构。 随后进入 Anaconda Prompt 或者标准 CMD 控制台界面,定位到已保存 .whl 文件的具体目录位置后输入相应指令实现安装过程: ```bash pip install fasttext‑0.9.2‑cp39‑cp39‑win_amd64.whl ``` #### 方法三:手动编译安装 作为最后一种备选方案,也可以考虑自行编译 fastText 来适应特定平台的需求。这通常需要具备 C++ 编程基础以及配置好相应的开发工具链。基本流程包括但不限于克隆仓库、解压压缩包等步骤: 1. 克隆或下载最新的 fastText 发布版代码库: ```bash wget https://github.com/facebookresearch/fastText/archive/v0.9.2.zip unzip fastText-0.9.2.zip ``` 2. 根据个人计算机系统的差异调整 Makefile 设置参数后再利用 make 命令启动构建进程[^3]。 尽管这种方法理论上能够覆盖更广泛的场景组合,但它往往更加耗时且技术门槛较高。 --- ### 总结 为了成功部署 FastText 至基于 Python 3.9 的项目环境中,请优先参照前两种简便快捷的方式选取合适的 pre-built binary package 并借助 pip 工具完成自动化装配工作。只有当常规手段均告失败的情况下才建议转向复杂度较高的自定义编译途径。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值