2017-05-12 1 views
2

Je travaille sur un projet de reconnaissance d'expression faciale. Et j'utilise la bibliothèque weka dans C# pour classer les fonctionnalités recueillies à partir des fichiers .dll de matlab (intégrés dans C# comme assemblage .Net).Est-il possible de passer un tableau de caractères dans weka.core.instance au lieu du fichier .arff

weka.core.Instances(new java.io.FileReader("dataset.arff")) 

est-il possible de lire un tableau plutôt de fichier .arff dans le code ci-dessus.

+0

Bienvenue. S'il vous plaît, enseignez à la communauté comment recréer votre problème sur son propre ordinateur. – Yvon

+0

convertir votre tableau en chaîne. weka prend joyeusement des chaînes où chaque chaîne représente une donnée d'instance :-) –

+0

Shaurabh Bharti pouvez-vous m'envoyer un exemple de code s'il vous plaît. –

Répondre

2

Il est possible de stocker les valeurs de tableau dans un fichier .arff.

Pour créer, vous pouvez le faire ci-dessous,

string[] lines = { "@ATTRIBUTE sepallength NUMERIC", 
    "@ATTRIBUTE sepalwidth NUMERIC", 
    "@ATTRIBUTE petallength NUMERIC", 
    "@ATTRIBUTE petalwidth NUMERIC", 
    "@ATTRIBUTE class  {Iris-setosa,Iris-versicolor,Iris-virginica}", 
    "@DATA"}; 

System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\somefile.arff", 
lines); 

et pour la partie de données, vous pouvez utiliser votre tableau pour chaque ligne.

string[] dataLines = { "5.1,3.5,1.4,0.2,Iris-setosa", 
    "4.9,3.0,1.4,0.2,Iris-setosa", 
    "4.7,3.2,1.3,0.2,Iris-setosa", 
    "4.6,3.1,1.5,0.2,Iris-setosa", 
    "5.0,3.6,1.4,0.2,Iris-setosa", 
    "5.4,3.9,1.7,0.4,Iris-setosa"}; 

using (System.IO.StreamWriter file = 
       new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\somefile.arff", true)) 
      { 
       foreach (string line in dataLines) 
       { 
        file.WriteLine(line); 
       } 
      } 

Here est une guide pour .arff fichier fourni par Waikato pour Weka.