1. pip3 install fastTest
报错:
ModuleNotFoundError: No module named 'Cython'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/mv/wj3sbtd54rs9tkm4dfhw7zj80000gn/T/pip-install-v49fp01i/fastText/
2. pip3 install Cython
在安装fastText
3. python3调用仍报错
ModuleNotFoundError: No module named 'fastText'
4. 解决,先卸载已安装的fastText,从官网git下载fastText,make,install
https://fasttext.cc/docs/en/supervised-tutorial.html
方案二:(转载地址https://blog.csdn.net/qq_32023541/article/details/80844036)
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)
---------------------
作者:ouprince
来源:CSDN
原文:https://blog.csdn.net/qq_32023541/article/details/80844036
版权声明:本文为博主原创文章,转载请附上博文链接!