2016-12-23 2 views
1

У меня есть файл arff, содержащий некоторые предложения (персидский язык) и слово перед каждым предложением, которое показывает его класс в части @data. Мне нужно использовать smo для классификации. Вопросы:Как использовать строковые данные для svm (smo) в weka

1) Необходимо ли изменить предложения к векторам?

2) Я выбрал строку «string to word vector», но smo неактивен и по-прежнему не работает. (и, конечно, другие алгоритмы, такие как наивные заливы).

Как я могу использовать эти текстовые данные с помощью smo?

enter image description here

выше картина очень маленький образец файла.

образец файла: https://www.dropbox.com/s/ohpyortve8jbwhe/shoor.arff?dl=0

enter image description here

ответ

0

Во-первых, вам нужно применить "строку вектора слова" фильтра. После этого на вкладке «Классификация» вам нужно изменить целевой класс на «(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

+0

Я решил проблему. Теперь он возвращает ответ. Но когда я использую «string to word vector», потому что предложения являются персидскими, алфавиты меняются на фигуры выше. Означает ли мы эти формы как настоящие слова на персидском языке? Я имею в виду, оказывает ли это какое-либо влияние на ответ? – sara

+0

Как я могу изменить эти фигуры на реальные слова на персидском языке? – sara

+0

Привет, я думаю, да. Но weka - это «черный ящик», поэтому его трудно проверить. Как насчет реализации простого Python и scipy для этого? Я могу иметь код в своих материалах. Если вы хотите, я могу поделиться с вами кодом;) –

Смежные вопросы