因此,我发现使用sklearn的SVM算法对单词进行分类有很多种方法。但是,我想按分类法对问题进行分类,如以下数据集所示:

这个任务的目标是预测给定pdf文件/字符串(问题)的分类法。问题如下:
对于此任务,我使用了以下Python库
import pandas as pd
import numpy as np
from nltk.tokenize import word_tokenize, sent_tokenize
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.preprocessing import LabelEncoder
from collections import defaultdict
from nltk.corpus import wordnet as wn
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn import model_selection, naive_bayes, svm
from sklearn.metrics import accuracy_score在这里,我已经将数据集分成了训练集和测试集。
Train_X, Test_X, Train_Y, Test_Y =
model_selection.train_test_split(Corpus['question'],Corpus['taxonomy'],test_size=0.3)
Encoder = LabelEncoder()
Train_Y = Encoder.fit_transform(Train_Y)
Test_Y = Encoder.fit_transform(Test_Y)我用过TF型以色列国防军变压器(TfidfTransformer)在这样的滑雪板库
Tfidf_vect = TfidfVectorizer(max_features=5000)
Tfidf_vect.fit(Corpus['question'])
Train_X_Tfidf = Tfidf_vect.transform(Train_X)
Test_X_Tfidf = Tfidf_vect.transform(Test_X)但这将把问题分解成每一个问题的单词。下面的代码用于制作一个单词分类器,以从单词中预测分类法。
SVM = svm.SVC(C=1.0, kernel='linear', degree=3, gamma='auto')
SVM.fit(Train_X_Tfidf,Train_Y)
# predict the labels on validation dataset
predictions_SVM = SVM.predict(Test_X_Tfidf)任何帮助都将不胜感激!
发布于 2020-07-12 07:05:37
因此,问题是问如何建模以下问题:预测问题分类,给出问题。
我首先想到的是使用编解码结构。为此,您将使用编码器将问题编码为一系列单词/标记。在这里,我们可以使用顺序模型,如RNN或LSTM。然后,这个编码器将问题编码为“隐藏表示”。
然后对隐藏表示进行解码,使用一个带最后3节点的softmax层的正规前馈神经网络,从而在问题分类上产生概率分布。
对于输入,您将把标记转换为word嵌入,然后为每个问题逐个提供它们。对于输出,您只需获得作为类标签的概率最高的索引。
支持向量机( SVM )是个好主意,但它把问题当作一袋单词(即语序不重要)。因此,任何老的随机问题,比如“什么人学会了这一点”(尽管非常不连贯),仍然可以被分类。
https://datascience.stackexchange.com/questions/77566
复制相似问题