2018-06-13 12:23:03 +00:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using DotNetToolkit;
|
|
|
|
|
|
using EntityFrameworkCore.BootKit;
|
|
|
|
|
|
|
|
|
|
|
|
namespace BotSharp.Core.Engines
|
|
|
|
|
|
{
|
|
|
|
|
|
public class BotTrainer
|
|
|
|
|
|
{
|
|
|
|
|
|
private Database dc;
|
|
|
|
|
|
|
|
|
|
|
|
private string agentId;
|
|
|
|
|
|
|
|
|
|
|
|
private string config;
|
|
|
|
|
|
|
|
|
|
|
|
public BotTrainer(string agentId, Database dc, string config = "BotSharpAi")
|
|
|
|
|
|
{
|
|
|
|
|
|
this.dc = dc;
|
|
|
|
|
|
this.agentId = agentId;
|
|
|
|
|
|
this.config = config;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string Train()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Get NLP Provider
|
|
|
|
|
|
string providerName = Database.Configuration.GetSection($"{config}:Provider").Value;
|
|
|
|
|
|
var provider = TypeHelper.GetInstance(providerName, Database.Assemblies) as INlpProvider;
|
2018-06-13 22:17:35 +00:00
|
|
|
|
provider.Configuration = Database.Configuration.GetSection("BotSharpAi");
|
2018-06-13 12:23:03 +00:00
|
|
|
|
|
2018-06-13 22:17:35 +00:00
|
|
|
|
provider.Load();
|
2018-06-13 12:23:03 +00:00
|
|
|
|
|
2018-06-13 22:17:35 +00:00
|
|
|
|
// pipe process
|
2018-06-13 12:23:03 +00:00
|
|
|
|
|
2018-06-13 22:17:35 +00:00
|
|
|
|
// Tokenize
|
|
|
|
|
|
var tokenizerName = provider.Configuration.GetSection("Pipe:Tokenizer").Value;
|
|
|
|
|
|
var tokenizer = TypeHelper.GetInstance(tokenizerName, Database.Assemblies) as INlpTokenizer;
|
|
|
|
|
|
tokenizer.Configuration = provider.Configuration;
|
|
|
|
|
|
var tokens = tokenizer.Tokenize("How are you doing?");
|
|
|
|
|
|
|
|
|
|
|
|
// Featurize
|
|
|
|
|
|
var featurizerName = provider.Configuration.GetSection("Pipe:Featurizer").Value;
|
|
|
|
|
|
var featurizer = TypeHelper.GetInstance(featurizerName, Database.Assemblies) as INlpFeaturizer;
|
|
|
|
|
|
featurizer.Configuration = provider.Configuration;
|
|
|
|
|
|
var features = featurizer.Featurize("How are you doing?");
|
|
|
|
|
|
|
|
|
|
|
|
// Entitize
|
|
|
|
|
|
var entitizerName = provider.Configuration.GetSection("Pipe:Entitizer").Value;
|
|
|
|
|
|
var entitizer = TypeHelper.GetInstance(entitizerName, Database.Assemblies) as INlpEntitizer;
|
|
|
|
|
|
entitizer.Configuration = provider.Configuration;
|
|
|
|
|
|
var entities = entitizer.Entitize("Where are you going tomorrow ?");
|
2018-06-13 12:23:03 +00:00
|
|
|
|
|
|
|
|
|
|
return "";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|