2016-09-08 52 views
0

我需要一個weka訓練文件(arff)來創建一個名稱(String)和一個與該名稱相關聯的字符串數組,以便分類器將該名稱與這些字符串相關聯文本。對於這個任務,我如何在Weka中創建一個屬性爲String的屬性?或者有沒有其他方法可以做到這一點?weka中的字符串數組屬性

(我用樸素貝葉斯分類器)

例如: 迪皮卡·沙阿,貪婪的讀者,有趣,漂亮

所以,如果我有任何上面所給出的迪皮卡·沙阿的字符串的句子,它應該將句子分類爲Deepika Shah。

編輯: 我需要使用句子中的單詞和短語將句子分類爲關於名稱。所以我給出了一組與名稱相關的字符串以及它們與之相關聯的名稱。分類器應該從句子中找到類。或者,也可以在從句子中提取特徵後(假設我已提取特徵)。

+0

那麼,你的名字是你想要預測的字符串數組的類嗎?你能提供至少一個例子,以便我們可以清楚地瞭解。 – drp

+0

是的,名字是班級。 – zoozoofreak

+0

然後在你的String數組上使用StringToWordVector過濾器(我想你的字符串數組就是說「你是個好人」)。在StringToWordvector類中,您可以將字符串數組(由一個或多個單詞組成的句子)轉換爲N-gram格式,您可以通過Tokenizer類指定N的任何值。您需要將String數組指定爲String屬性n arff文件。在arff文件中加上引號的值('你是個好人')。如果你不明白這個評論,讓我知道我會在答案部分詳細提供anser。 – drp

回答

2

你ARFF文件需要在以下格式:

@Relation testRelation 

@attribute firstAtr string 
@attribute secondAtr string 
@attribute thirdAtr string 
@attribute yourClass {Deepika Shah, secondClass, ...other classes listed here} 

@data 
"Voracious reader","funny"," pretty",Deepika Shah 

...more data here 

然後你可以導入你的ARFF文件中秧雞。

現在您需要將字符串值轉換爲數字。爲此,您必須使用位於預處理選項卡的「過濾器」部分中的weka->unsupervised->attribute->StringToWordVector過濾器。 您可以單擊過濾器來調整參數,如術語表示(tf,tf-idf),停用詞,詞幹分析算法,n元組等。 然後單擊「應用」。

完成此過程後,您可以繼續進行分類選項卡並繼續進行分類。您可以選擇分類並且您可以隨時進行分類。

注意:您需要選擇名義類(Nom)yourClass(位於測試選項下)才能使開始按鈕可點擊。

注2:如果您的刺痛屬性是固定的像可笑,可悲,中性等值,您可以使用標稱屬性,而不是字符串


PS一個很好的例子包含上述所有可以在這裏找到:https://www.youtube.com/watch?v=jSZ9jQy1sfE

+0

我的問題是每個類的字符串屬性的數量可能不同。 Deepika Shah可能會有3個字符串來形容她,Katrina Kaif可能會有5個字符串,依此類推。我在這種情況下做什麼? – zoozoofreak

+0

你是什麼意思3串?如果你的意思是有n個字符串來描述一個類,那麼你應該用一個通用類手動替換所有n個字符串。例如,如果Deepika Shah,blablabla1,blablabla2指的是同一類,那麼用Deepika Shah替換所有blablabla1和blablabla2 – xro7

+0

不,我的意思是像你有firstAtr,secondAtr,thirdAtr等等。我有n個屬性。 – zoozoofreak