3

我正在尝试使用快速文本 API 构建一个有监督的分类器。我的数据是“output.txt”,有 15000 行、2 列(性别和姓名)和 2 个类 m/f。

__label__F Mary
__label__F Santa
...
__label__M John

代码:

#model = fasttext.load_model('model.bin') # using the default model
classifier = fasttext.supervised('output.txt','model', label_prefix='__label__',thread=8)

labels = classifier.predict('Maria',k=1)
print(labels)

当我用一个名字进行测试时,它会返回

[[],[],[],[]]

我不明白我的错误在哪里。我按照fastext github中的代码行。当相同的代码能够在 Linux 中运行时,在 Windows 中创建的问题是什么?

我正在使用 Windows,python 3.4x。

更新:我已经评论了模型 = fasttext.load .....

以便将学习到的监督分类器模型保存在model.bin中。相同的代码在 Ubuntu 中有效,但在 Windows 中无效。任何帮助表示赞赏。

4

2 回答 2

0

在 Windows 上,您还必须安装fasttext-win

pip install fasttext-win

见这里:https ://pypi.org/project/fasttext-win/

于 2019-05-14T20:29:37.637 回答
-1

我猜你得到一个数组作为答案的原因是它看起来像predict想要一个列表作为参数。

    labels = classifier.predict(['Maria'],k=1)

但不幸的是,我不知道为什么提供的标签是空的。我在 Windows 下遇到了同样的问题(model.labels返回一个空列表)。

于 2018-05-20T14:11:10.937 回答