public void CanHandleUtf8() { using var fastText = new FastTextWrapper(loggerFactory: _loggerFactory); string outPath = Path.Combine(_tempDir, "rus"); fastText.Supervised("data.rus.txt", outPath, new SupervisedArgs()); var labels = fastText.GetLabels(); labels.Length.Should().Be(2); labels.Should().Contain(new[] { "__label__оператор", "__label__выход" }); var pred = fastText.PredictSingle("Позови оператора"); pred.Probability.Should().BeGreaterThan(0); pred.Label.Should().Be("__label__оператор"); var sourceWords = File.ReadAllText("data.rus.txt") .Split(new[] { " ", "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries) .Where(x => !x.StartsWith("__label__")) .Distinct().ToArray(); var nn = fastText.GetNearestNeighbours("оператор", 2); nn.Length.Should().Be(2); sourceWords.Should().Contain(nn.Select(x => x.Label)); foreach (var prediction in nn) { prediction.Probability.Should().BeGreaterThan(0); } }
private static void Test(FastTextWrapper fastText) { var labels = fastText.GetLabels(); var prediction = fastText.PredictSingle("Can I use a larger crockpot than the recipe calls for?"); var predictions = fastText.PredictMultiple("Can I use a larger crockpot than the recipe calls for?", 4); var vector = fastText.GetSentenceVector("Can I use a larger crockpot than the recipe calls for?"); }
private static void LoadModel() { using (var fastText = new FastTextWrapper()) { fastText.LoadModel(@"D:\__Models\cooking.bin"); var labels = fastText.GetLabels(); var prediction = fastText.PredictSingle("Can I use a larger crockpot than the recipe calls for?"); var predictions = fastText.PredictMultiple("Can I use a larger crockpot than the recipe calls for?", 4); var vector = fastText.GetSentenceVector("Can I use a larger crockpot than the recipe calls for?"); } }
static void Main(string[] args) { var fastText = new FastTextWrapper(); fastText.Train(@"C:\_Models\cooking.train.txt", @"C:\_Models\cooking", TrainingArgs.SupervisedDefaults(x => { x.Epochs = 25; x.LearningRate = 1.0; x.WordNGrams = 3; x.Verbose = 2; x.MinCharNGrams = 3; x.MaxCharNGrams = 6; })); //fastText.LoadModel(@"C:\_Models\fasttext.bin"); var prediction = fastText.PredictSingle("what is the difference between a new york strip and a bone-in new york cut sirloin ?"); }