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

Python 如何为分类器创建二进制特征向量,python,machine-learning,svm,Python,Machine Learning,Svm,我已经成功地实现了SVM分类器。我没有使用scikit方法。我目前正在使用不同类型的数据对其进行培训。现在,我想测试它的单个文本输入。 我尝试使用熊猫,但后来我不得不改变我的方法,所以我决定不使用它。 该分类器用于带有积极、消极和中性标签的情绪分析。输入分类器的数据集由来自twitter的tweet组成。 这是我的分类器: 因此,我需要帮助用python设计一个函数,该函数将接受一个字符串输入,将其与我的功能列表进行比较,并生成一个二进制向量。或者如果有其他选择,请提出建议。 示例:如果我的文本

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

因此,我需要帮助用python设计一个函数,该函数将接受一个字符串输入,将其与我的功能列表进行比较,并生成一个二进制向量。或者如果有其他选择,请提出建议。 示例:如果我的文本输入为“足球是欧洲流行的运动”
因此,建议的函数将扫描特征列表(已经在测试数据的帮助下生成),如果特征列表中存在诸如“足球”、“流行”、“运动”、“欧洲”等特征词,它将附加1或0。因此,在扫描函数之后,输出应该是[…,1,0,1,1,0,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

什么是分类器?什么是功能?什么是目标?很抱歉略过一些细节。该分类器用于情绪分析,具有正面、负面和中性标签,它包含从推特数据集中提取的特征。那么您的意思是为文本输入生成一个热门特征?scikit有一些文本功能工具可用于此。热功能?只是一个特征向量,它扫描特征列表并生成二进制数组1(如果存在输入特征)或0。请检查示例。这就是你想要的?谢谢你的回答!如果我能在输出中隐藏标签就好了。示例:与['Football':1,'Europe':0..]不同,它可能只是[1,0,0..]吗?在这一步中要小心。既然你在使用字典,你应该记住,口述不能维持秩序。因此,您应该使用初始列表来帮助您实现此目标。此代码应该可以工作:
对于idx,输入枚举(词汇表):热编码器[idx]=二进制包[key]