使用Turi创建简单的文本分类

时间:2018-05-03 14:53:28

标签: text classification turi

与Turi取得联系我正在尝试创建一个能够区分由字符组成的字符串和由数字组成的字符串的模型。 我有带有训练数据的CSV文件。每行包含两个条目,一个字符串和一个指示符,指示该字符串是数字还是平面字符串

String, isNumber
bvmuuflo , 0
71047015 , 1

我生成模型的Python脚本如下所示:

import graphlab as gl
data =  gl.SFrame('data.csv')
model = gl.classifier.create(data, target="isNumber", features=["String"])

这很好用。但我不知道如何使用模型检查例如“qwerty”是字符串还是数字。 我正在尝试使用model.classify(...) API调用。但这两个电话

model.classify(gl.SFrame(["qwertzui"])

model.classify(gl.SFrame(["98765432"])

返回相同的结果

Columns:
    class   int
    probability float

Rows: 1

Data:
+-------+----------------+
| class |  probability   |
+-------+----------------+
|   1   | 0.509227594584 |
+-------+----------------+
[1 rows x 2 columns]

显然我的程序中存在错误,但我无法找到它。 欢迎任何帮助!

1 个答案:

答案 0 :(得分:0)

由于模型只有一列用于训练,因此能够识别已经看过的字符串,但无法识别它没有的字符串。我的猜测是.509是你输入的一个字符串的百分比,所以它只是响应它以前没见过的任何东西。

这显然是一个玩具的例子但是如果你想让它上班,我会用一些文字,但是用于字母。使用标题a,b,c ... z,0,1 ... 9制作36列,并为每行输入每个字符串的每个字符的计数。这样,模型会将单个字母视为给出类的概率,而不是整个字符串。