private Problem LoadData(bool withScaling = false) { var file = Path.Combine(TestContext.CurrentContext.TestDirectory, @".\Data\data.arff"); var arff = ArffDataSet.Load <PositivityType>(file); IProblemFactory factory = new ProblemFactory(arff); if (withScaling) { factory = factory.WithRangeScaling(); } return(factory.Construct(arff).GetProblem()); }
public static IMachineSentiment Load(string path) { if (string.IsNullOrEmpty(path)) { throw new ArgumentException("Value cannot be null or empty.", nameof(path)); } log.LogInformation("Loading {0}...", path); IArffDataSet reviews = ArffDataSet.Load <PositivityType>(Path.Combine(path, "data.arff")); var classifier = new Classifier(); classifier.Load(Path.Combine(path, "training.model")); return(new MachineSentiment(reviews, classifier)); }
public void Classify(string arff, string modelName, object result) { var file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data", arff); var dataSet = result.GetType() == typeof(PositivityType) ? ArffDataSet.Load <PositivityType>(file) : ArffDataSet.LoadSimple(file); file = Path.Combine(TestContext.CurrentContext.TestDirectory, "data", modelName); var model = Model.Read(file); IProblemFactory factory = new ProblemFactory(dataSet); var client = new SvmTesting(model, factory); var dataHolder = dataSet.CreateDataSet("Test"); var review = dataHolder.AddDocument(); review.AddRecord("Good").Value = 2; review.AddRecord("Bad").Value = 1; client.Classify(dataHolder); Assert.AreEqual(result, review.Class.Value); }