如何为分类器创建二进制特征向量

时间:2017-04-09 12:30:03

标签: python machine-learning svm

我已经成功实现了SVM分类器。我没有使用scikit方法。我目前正在使用不同类型的数据进行培训。现在,我想测试它的单个文本输入。 我尝试使用熊猫,但后来我不得不改变方法,所以我决定不使用它。 分类器用于积极,消极和中性标签的情绪分析。馈送到分类器的数据集由来自twitter的推文组成。 这是我的分类器:https://pastebin.com/JZ5LVLW7

所以,我需要帮助设计python中的一个函数,它将接受一个字符串输入,将它与我的功能列表进行比较并生成一个二进制向量。或者如果还有其他选择,请建议。 例如:如果我的文字输入是"足球是欧洲流行的运动" 因此,建议的功能将扫描功能列表(已经在测试数据的帮助下生成),并且如果特征词像" football"," popular"," sport& #34;,"欧洲"它会出现在要附加1的特征列表中,否则为0.因此,在扫描函数后,输出应该像[...,1,0,1,1,0,0,0,... ]

1 个答案:

答案 0 :(得分:0)

创建一个词汇表,其中包含您感兴趣的单词和相同大小的热编码器。阅读文本文件,并在您找到词汇表中的单词时更新热编码器。这段代码应该有用。

vocabulary = ['Football', 'Europe'] # Put your targer words in here
hot_encoder = [0] * len(vocabulary)
binary_bag = dict(zip(vocabulary, hot_encoder))
with open('text.txt', 'r') as f: #Put your text sample in here
    words = [word for line in f for word in line.split()]
    for word in words:
        if word in vocabulary and binary_bag[word] == 0:
            binary_bag[word] = 1
相关问题