使用字符串数组作为输入向量进行分类

时间:2015-07-07 13:01:33

标签: string algorithm hash machine-learning linear-regression

我有一个与机器学习任务相关的问题。问题是根据字符串向量预测值。想到的最直接的想法是使用线性回归。但是,由于我的输入是非数字的,我以为我会使用我的字符串的哈希码,但我在这里读到的结果将毫无意义。另一个想法是使用字母表中的字母位置在基数26中对我的字符串进行编码,但我还没有测试它,因此请求建议。

有人可以推荐一种好的(有意义的)编码字符串的方法,以便它们可以用于线性回归算法吗?或者建议另一种适合该任务的机器学习算法。

总结一下:分类器的输入将包含一个固定大小的字符串数组(数组是固定长度,而不是字符串),输出应该是0-100范围内的整数。训练数据将包含一组具有相应数字(y值)的输入数组(x值)。

2 个答案:

答案 0 :(得分:1)

使用word2vecGloVe等向量空间模型将strip-frameworks.sh个字符串中的每一个转换为M维向量。然后将这些向量连接到具有N个组件的一个向量。可选地将每个组件标准化为例如0-1。然后,您应该能够对结果运行任何回归(或分类)算法,例如逻辑回归。

您也可以尝试使用群集方法,将词汇表中的所有单词群集到M*N群集中,例如在单词向量上使用k-means或使用brown clustering。然后,您可以使用一个热矢量(即N零和该单词的簇的索引处的单个一个)来表示输入数组中的每个单词。然后再次连接它们并对结果进行回归。

答案 1 :(得分:0)

我用字符串做了类似的项目。我建议你实现它的方法之一。 在机器学习"朴素贝叶斯分类器"会让你的问题变得简单。这适用于概率论。因此,如果您正在使用python,那么有NLTK(工具包)和Textblob(NLTK上的库),这些将对您有所帮助。
你的问题非常通用,所以我不能在这里描述一切,但只要随便问你正在努力的事情,我很乐意回答。