首先,您需要申請 「串詞矢量」 過濾器。之後,在分類選項卡上,您需要將目標類更改爲「(Nom)class」。這足以支持樸素貝葉斯和SVM算法。我下載了數據集,並且運行良好。
您可以按照本教程: https://www.youtube.com/watch?v=zlVJ2_N_Olo
希望它可以幫助你
from sklearn.feature_extraction.text import TfidfVectorizer
import arff
from sklearn import svm
import numpy as np
from sklearn.model_selection import train_test_split
data=list(arff.load('shoor.arff'))
text=[]
label=[]
for r in data:
if (len(r)>1):
text.append(r[0])
label.append(r[1])
tfidf = TfidfVectorizer().fit_transform(text)
features = (tfidf * tfidf.T).A
X_train, X_test, y_train, y_test = train_test_split(features, label, test_size=0.5, random_state=0)
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
clf.score(X_test, y_test)
1.0
我解決了這個問題。現在它返回答案。但是當我使用「字符串到單詞向量」時,由於句子是波斯語,因此字母變成上圖中的形狀。 Weka認識到這些形狀在波斯語中是真實的詞彙嗎?我的意思是它對答案有任何影響嗎? – sara
如何將這些形狀更改爲波斯語中的真實單詞? – sara
嗨,我的猜測是肯定的。但是weka是一個「黑盒子」,所以測試它有點困難。如何實現一個簡單的Python和scipy來做到這一點?我可以在我的東西有一個代碼。如果你願意,我可以與你分享代碼;) –