まず、あなたは "単語ベクトルに文字列" フィルタを適用する必要があります。その後、分類タブで、対象クラスを "(Nom)クラス"に変更する必要があります。これは、ナイーブベイと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を実装するのはどうでしょうか?私は自分のものにコードを入れることができます。もしあなたが望むなら、コードをあなたと共有することができます;) –