Machine learning 如何在weka中使用字符串数据支持向量机(smo)

Machine learning 如何在weka中使用字符串数据支持向量机(smo),machine-learning,nlp,weka,Machine Learning,Nlp,Weka,我有一个arff文件,其中包含一些句子(波斯语),每个句子前面都有一个单词,它在@data部分显示了它的类。我需要使用smo进行分类。问题是: 1) 有必要把句子改成向量吗 2) 我选择了“字符串到单词向量”,但smo处于非活动状态,仍然无法工作。(当然还有其他算法,比如朴素贝叶斯算法) 如何将此文本数据用于smo 上面的图片是一个非常小的示例文件 文件示例: 首先,您需要应用“字符串到单词向量”过滤器。之后,在分类选项卡上,您需要将目标类更改为“(Nom)类”。这足以支持朴素贝叶斯和支持向

我有一个arff文件,其中包含一些句子(波斯语),每个句子前面都有一个单词,它在@data部分显示了它的类。我需要使用smo进行分类。问题是:

1) 有必要把句子改成向量吗

2) 我选择了“字符串到单词向量”,但smo处于非活动状态,仍然无法工作。(当然还有其他算法,比如朴素贝叶斯算法)

如何将此文本数据用于smo

上面的图片是一个非常小的示例文件

文件示例:

首先,您需要应用“字符串到单词向量”过滤器。之后,在分类选项卡上,您需要将目标类更改为“(Nom)类”。这足以支持朴素贝叶斯和支持向量机算法。我下载了数据集,效果很好

您可以按照本教程进行操作:

希望它能帮助你

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

首先,您需要应用“字符串到单词向量”过滤器。之后,在分类选项卡上,您需要将目标类更改为“(Nom)类”。这足以支持朴素贝叶斯和支持向量机算法。我下载了数据集,效果很好

您可以按照本教程进行操作:

希望它能帮助你

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能在波斯语中将这些形状识别为真实的单词吗?我的意思是它对答案有影响吗?我怎样才能把这些形状变成真正的波斯语单词?嗨,我猜是的。但是weka是一个“黑匣子”,所以测试它有点困难。实现一个简单的Python和scipy如何?我可以在我的东西里有密码。如果您愿意,我可以与您共享代码;)对非常感谢。我需要它。你能把它放在投递箱上吗?我解决了这个问题。现在它返回答案。但当我使用“字符串到单词向量”时,因为句子是波斯语,字母表会变成上图中的形状。weka能在波斯语中将这些形状识别为真实的单词吗?我的意思是它对答案有影响吗?我怎样才能把这些形状变成真正的波斯语单词?嗨,我猜是的。但是weka是一个“黑匣子”,所以测试它有点困难。实现一个简单的Python和scipy如何?我可以在我的东西里有密码。如果您愿意,我可以与您共享代码;)对非常感谢。我需要它。请把它放在投递箱上好吗。