Lihat di sini untuk halaman sklearn tentang SVM, di sana Anda memiliki bagian untuk multikelas klasifikasi menggunakan SVM. Pertama-tama Anda harus mengubah teks Anda menjadi vektor fitur (numerik, jika Anda ingin menggunakan SVM) Jika Anda ingin menggunakan sekumpulan kata, Anda dapat menggunakan pertanyaan SO ini dan halaman manual sklearn ini
Anda dapat menggunakan kode python yang telah ditulis sebelumnya untuk membuat BOW dari teks Anda dengan melakukan sesuatu seperti itu - ingat, saya mengumpulkan informasi yang relevan untuk OP - yang tidak jelas dan tidak kompatibel dengan SO strandarts, jadi Anda mungkin perlu mengerjakan kodenya sedikit agar sesuai dengan penggunaan Anda.
>>> from sklearn.feature_extraction.text import CountVectorizer
>>> vectorizer = CountVectorizer()
>>> vectorizer
CountVectorizer(analyzer=...'word', binary=False, decode_error=...'strict',
dtype=<... 'numpy.int64'>, encoding=...'utf-8', input=...'content',
lowercase=True, max_df=1.0, max_features=None, min_df=1,
ngram_range=(1, 1), preprocessor=None, stop_words=None,
strip_accents=None, token_pattern=...'(?u)\\b\\w\\w+\\b',
tokenizer=None, vocabulary=None)
>>> corpus = [
... 'This is the first document.',
... 'This is the second second document.',
... 'And the third one.',
... 'Is this the first document?',
... ]
>>> X = vectorizer.fit_transform(corpus)
>>> X
<4x9 sparse matrix of type '<... 'numpy.int64'>'
with 19 stored elements in Compressed Sparse ... format>
Maka Anda mungkin perlu mengubah x menjadi matriks padat (tergantung pada versi sklearn) Kemudian Anda dapat memasukkan x ke dalam model SVM yang dapat Anda buat seperti itu
>>>>from sklearn import svm
>>> X = [[0], [1], [2], [3]]
>>> Y = [0, 1, 2, 3]
>>> clf = svm.SVC(gamma='scale', decision_function_shape='ovo')
>>> clf.fit(X, Y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovo', degree=3, gamma='scale', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
>>> dec = clf.decision_function([[1]])
>>> dec.shape[1] # 4 classes: 4*3/2 = 6
6
>>> clf.decision_function_shape = "ovr"
>>> dec = clf.decision_function([[1]])
>>> dec.shape[1] # 4 classes
person
thebeancounter
schedule
02.01.2019