diff --git a/.gitignore b/.gitignore
index cae01f15..4298cb56 100644
--- a/.gitignore
+++ b/.gitignore
@@ -294,3 +294,12 @@ __pycache__/
/BotSharp.UnitTest/App_Data/BotSharp.db
/BotSharp.WebHost/App_Data/BotSharp.db
/BotSharp.UI
+/BotSharp.WebHost/App_Data/TrainingFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318.parsed.txt
+/BotSharp.WebHost/App_Data/TrainingFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318.model
+/BotSharp.WebHost/App_Data/TrainingFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318.corpus.txt
+/BotSharp.WebHost/App_Data/ModelFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318/ner-crf.model
+/BotSharp.WebHost/App_Data/ModelFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318/metadata.json
+/BotSharp.WebHost/App_Data/TrainingFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318/ner-crf.parsed.txt
+/BotSharp.WebHost/App_Data/TrainingFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318/ner-crf.corpus.txt
+/BotSharp.WebHost/App_Data/ModelFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318
+/BotSharp.WebHost/App_Data/TrainingFiles/bff7605c-3db5-44dc-9ba7-1c9be2832318
diff --git a/BotSharp.Core/Abstractions/IBotPlatform.cs b/BotSharp.Core/Abstractions/IBotPlatform.cs
index a07c4198..546c6b11 100644
--- a/BotSharp.Core/Abstractions/IBotPlatform.cs
+++ b/BotSharp.Core/Abstractions/IBotPlatform.cs
@@ -4,6 +4,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines
{
@@ -18,6 +19,6 @@ namespace BotSharp.Core.Engines
AIResponse TextRequest(AIRequest request);
- void Train();
+ Task Train();
}
}
diff --git a/BotSharp.Core/Abstractions/INlpPipeline.cs b/BotSharp.Core/Abstractions/INlpPipeline.cs
index 774be45e..eb16b353 100644
--- a/BotSharp.Core/Abstractions/INlpPipeline.cs
+++ b/BotSharp.Core/Abstractions/INlpPipeline.cs
@@ -1,9 +1,11 @@
using BotSharp.Core.Agents;
+using BotSharp.Core.Engines;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Abstractions
{
@@ -14,6 +16,14 @@ namespace BotSharp.Core.Abstractions
{
IConfiguration Configuration { get; set; }
- bool Process(Agent agent, JObject data);
+ ///
+ /// Process
+ ///
+ ///
+ /// Intermediate result
+ /// Meta data which is packed to model
+ ///
+ Task Train(Agent agent, JObject data, PipeModel meta);
+ Task Predict(Agent agent, JObject data, PipeModel meta);
}
}
diff --git a/BotSharp.Core/BotSharp.Core.csproj b/BotSharp.Core/BotSharp.Core.csproj
index 6378b2af..fec84743 100644
--- a/BotSharp.Core/BotSharp.Core.csproj
+++ b/BotSharp.Core/BotSharp.Core.csproj
@@ -35,7 +35,7 @@
-
+
@@ -46,4 +46,8 @@
+
+
+
+
diff --git a/BotSharp.Core/Engines/BotEngineBase.cs b/BotSharp.Core/Engines/BotEngineBase.cs
index 6445072b..c5854450 100644
--- a/BotSharp.Core/Engines/BotEngineBase.cs
+++ b/BotSharp.Core/Engines/BotEngineBase.cs
@@ -4,11 +4,13 @@ using BotSharp.Core.Intents;
using BotSharp.Core.Models;
using EntityFrameworkCore.BootKit;
using Microsoft.EntityFrameworkCore;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines
{
@@ -32,6 +34,13 @@ namespace BotSharp.Core.Engines
DbInitializerPath = Path.Join(dataPath, $"DbInitializer");
}
+ public AIResponse TextRequest(AIRequest request)
+ {
+ var preditor = new BotPreditor();
+ var text = preditor.Predict(agent, request);
+ return null;
+ }
+
public Agent LoadAgent(string id)
{
if (agent == null)
@@ -177,9 +186,9 @@ namespace BotSharp.Core.Engines
return corpus;
}
- public virtual void Train()
+ public virtual Task Train()
{
-
+ return Task.CompletedTask;
}
}
diff --git a/BotSharp.Core/Engines/BotPreditor.cs b/BotSharp.Core/Engines/BotPreditor.cs
new file mode 100644
index 00000000..e6522a58
--- /dev/null
+++ b/BotSharp.Core/Engines/BotPreditor.cs
@@ -0,0 +1,53 @@
+using BotSharp.Core.Abstractions;
+using BotSharp.Core.Agents;
+using BotSharp.Core.Models;
+using DotNetToolkit;
+using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BotSharp.Core.Engines
+{
+ public class BotPreditor
+ {
+ public async Task Predict(Agent agent, AIRequest request)
+ {
+ // load model
+ var dir = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "ModelFiles", agent.Id);
+ Console.WriteLine($"Load model from {dir}");
+ var metaJson = File.ReadAllText(Path.Join(dir, "metadata.json"));
+ var meta = JsonConvert.DeserializeObject(metaJson);
+
+ // Get NLP Provider
+ var config = (IConfiguration)AppDomain.CurrentDomain.GetData("Configuration");
+ var assemblies = (string[])AppDomain.CurrentDomain.GetData("Assemblies");
+
+ var providerPipe = meta.Pipeline.First();
+ var provider = TypeHelper.GetInstance(providerPipe.Name, assemblies) as INlpPipeline;
+ provider.Configuration = config.GetSection(meta.Platform);
+
+ var data = JObject.FromObject(new
+ {
+ });
+
+ await provider.Train(agent, data, providerPipe);
+ meta.Pipeline.RemoveAt(0);
+
+ // pipe process
+ meta.Pipeline.ForEach(async pipeMeta =>
+ {
+ var pipe = TypeHelper.GetInstance(pipeMeta.Name, assemblies) as INlpPipeline;
+ pipe.Configuration = provider.Configuration;
+ await pipe.Predict(agent, data, pipeMeta);
+ });
+
+ return "";
+ }
+ }
+}
diff --git a/BotSharp.Core/Engines/BotSharp/BotSharpAi.cs b/BotSharp.Core/Engines/BotSharp/BotSharpAi.cs
index bec9333e..4ea57d6f 100644
--- a/BotSharp.Core/Engines/BotSharp/BotSharpAi.cs
+++ b/BotSharp.Core/Engines/BotSharp/BotSharpAi.cs
@@ -1,21 +1,18 @@
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
using BotSharp.Core.Models;
namespace BotSharp.Core.Engines.BotSharp
{
public class BotSharpAi : BotEngineBase, IBotPlatform
{
- public AIResponse TextRequest(AIRequest request)
- {
- throw new NotImplementedException();
- }
- public override void Train()
+ public override async Task Train()
{
agent.Corpus = GetIntentExpressions();
var trainer = new BotTrainer(agent.Id, dc);
- trainer.Train(agent);
+ await trainer.Train(agent);
}
}
}
diff --git a/BotSharp.Core/Engines/BotTrainer.cs b/BotSharp.Core/Engines/BotTrainer.cs
index 9065a3f2..ed56e360 100644
--- a/BotSharp.Core/Engines/BotTrainer.cs
+++ b/BotSharp.Core/Engines/BotTrainer.cs
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Text;
+using System.Threading.Tasks;
using BotSharp.Core.Abstractions;
using BotSharp.Core.Agents;
using BotSharp.Core.Intents;
@@ -9,7 +11,9 @@ using DotNetToolkit;
using EntityFrameworkCore.BootKit;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using Newtonsoft.Json.Serialization;
namespace BotSharp.Core.Engines
{
@@ -25,7 +29,7 @@ namespace BotSharp.Core.Engines
this.agentId = agentId;
}
- public string Train(Agent agent)
+ public async Task Train(Agent agent)
{
agent.Intents = dc.Table()
.Include(x => x.Contexts)
@@ -47,9 +51,37 @@ namespace BotSharp.Core.Engines
string providerName = config.GetSection($"{platform}:Provider").Value;
var provider = TypeHelper.GetInstance(providerName, assemblies) as INlpPipeline;
provider.Configuration = config.GetSection(platform);
- provider.Process(agent, data);
- //var corpus = agent.GrabCorpus(dc);
+ var pipeModel = new PipeModel
+ {
+ Name = providerName,
+ Class = provider.ToString(),
+ Meta = new JObject(),
+ Time = DateTime.UtcNow
+ };
+
+ await provider.Train(agent, data, pipeModel);
+
+ var meta = new ModelMetaData
+ {
+ Platform = platform,
+ Language = agent.Language,
+ TrainingDate = DateTime.UtcNow,
+ Version = config.GetValue($"Version"),
+ Pipeline = new List() { pipeModel }
+ };
+
+ var dirTrain = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "TrainingFiles", agent.Id);
+ if (!Directory.Exists(dirTrain))
+ {
+ Directory.CreateDirectory(dirTrain);
+ }
+
+ var dirModel = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "ModelFiles", agent.Id);
+ if (!Directory.Exists(dirModel))
+ {
+ Directory.CreateDirectory(dirModel);
+ }
// pipe process
var pipelines = provider.Configuration.GetSection($"Pipe").Value
@@ -57,15 +89,34 @@ namespace BotSharp.Core.Engines
.Select(x => x.Trim())
.ToList();
- pipelines.ForEach(pipeName =>
+ pipelines.ForEach(async pipeName =>
{
var pipe = TypeHelper.GetInstance(pipeName, assemblies) as INlpPipeline;
pipe.Configuration = provider.Configuration;
- pipe.Process(agent, data);
+ pipeModel = new PipeModel
+ {
+ Name = pipeName,
+ Class = pipe.ToString(),
+ Time = DateTime.UtcNow
+ };
+ meta.Pipeline.Add(pipeModel);
+
+ await pipe.Train(agent, data, pipeModel);
});
+ // save model meta data
+ var dir = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "ModelFiles", agent.Id);
+ var metaJson = JsonConvert.SerializeObject(meta, new JsonSerializerSettings
+ {
+ Formatting = Formatting.Indented,
+ NullValueHandling = NullValueHandling.Ignore,
+ ContractResolver = new CamelCasePropertyNamesContractResolver()
+ });
+ File.WriteAllText(Path.Join(dir, "metadata.json"), metaJson);
- return "";
+ Console.WriteLine(metaJson);
+
+ return metaJson;
}
}
}
diff --git a/BotSharp.Core/Engines/CRFsuite/CRFsuiteEntityRecognizer.cs b/BotSharp.Core/Engines/CRFsuite/CRFsuiteEntityRecognizer.cs
index 9094bde1..673d27da 100644
--- a/BotSharp.Core/Engines/CRFsuite/CRFsuiteEntityRecognizer.cs
+++ b/BotSharp.Core/Engines/CRFsuite/CRFsuiteEntityRecognizer.cs
@@ -1,17 +1,19 @@
using BotSharp.Core.Abstractions;
using BotSharp.Core.Agents;
using BotSharp.MachineLearning.NLP;
+using DotNetToolkit;
using EntityFrameworkCore.BootKit;
using Microsoft.Extensions.Configuration;
-using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Diagnostics;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines.CRFsuite
{
@@ -19,73 +21,70 @@ namespace BotSharp.Core.Engines.CRFsuite
{
public IConfiguration Configuration { get; set; }
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
var dc = new DefaultDataContextLoader().GetDefaultDc();
var corpus = agent.Corpus;
-
- List> tags = data["Tags"].ToObject>>();
+
+ meta.Model = "ner-crf.model";
+
List> tokens = data["Tokens"].ToObject>>();
List> userSays = corpus.UserSays;
List> list = new List>();
- var dir = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "TrainingFiles");
- FileStream fs = new FileStream(Path.Join(dir, "rawTrain.txt"), FileMode.Create);
- StreamWriter sw = new StreamWriter(fs);
+ var dirTrain = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "TrainingFiles", agent.Id);
+ var dirModel = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "ModelFiles", agent.Id);
+ string rawTrainingDataFileName = Path.Join(dirTrain, "ner-crf.corpus.txt");
+ string parsedTrainingDataFileName = Path.Join(dirTrain, "ner-crf.parsed.txt");
+ string modelFileName = Path.Join(dirModel, meta.Model);
- for (int i = 0 ; i < tags.Count; i++)
+ using (FileStream fs = new FileStream(rawTrainingDataFileName, FileMode.Create))
{
- List curLine = Merge(tokens[i], tags[i], userSays[i].Entities);
- list.Add(curLine);
- curLine.ForEach(trainingData =>{
- string[] wordParams = {trainingData.Entity, trainingData.Token, trainingData.Tag, trainingData.Chunk};
- string wordStr = string.Join(" ", wordParams);
- sw.Write(wordStr + "\n");
- });
- sw.Write("\n");
- }
- sw.Flush();
- sw.Close();
- fs.Close();
-
- new MachineLearning.CRFsuite.Ner().NerStart();
-
- Runcmd();
+ using (StreamWriter sw = new StreamWriter(fs))
+ {
+ for (int i = 0; i < tokens.Count; i++)
+ {
+ List curLine = Merge(tokens[i], userSays[i].Entities);
+ curLine.ForEach(trainingData =>
+ {
+ string[] wordParams = { trainingData.Entity, trainingData.Token, trainingData.Pos, trainingData.Chunk };
+ string wordStr = string.Join(" ", wordParams);
+ sw.Write(wordStr + "\n");
+ });
+ list.Add(curLine);
+ sw.Write("\n");
+ }
+ sw.Flush();
+ }
+ }
+
+ var fields = Configuration.GetValue($"CRFsuiteEntityRecognizer:fields");
+ var uniFeatures = Configuration.GetValue($"CRFsuiteEntityRecognizer:uniFeatures");
+ var biFeatures = Configuration.GetValue($"CRFsuiteEntityRecognizer:biFeatures");
+
+ new MachineLearning.CRFsuite.Ner()
+ .NerStart(rawTrainingDataFileName, parsedTrainingDataFileName, fields, uniFeatures.Split(" "), biFeatures.Split(" "));
+
+ var algorithmDir = Path.Join(AppDomain.CurrentDomain.GetData("ContentRootPath").ToString(), "Algorithms");
+
+ CmdHelper.Run(Path.Join(algorithmDir, "crfsuite"), $"learn -m {modelFileName} {parsedTrainingDataFileName}"); // --split=3 -x
+
+ Console.WriteLine($"Saved model to {modelFileName}");
+ meta.Meta = new JObject();
+ meta.Meta["fields"] = fields;
+ meta.Meta["uniFeatures"] = uniFeatures;
+ meta.Meta["biFeatures"] = biFeatures;
return true;
}
- public void Runcmd ()
- {
- var algorithmDir = Path.Join(AppDomain.CurrentDomain.GetData("ContentRootPath").ToString(), "Algorithms");
- var dataDir = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "TrainingFiles");
-
- string cmd = $"{algorithmDir}/crfsuite learn -m {dataDir}/crfsuite/bolo.model {dataDir}/crfsuite/1.txt";
- System.Diagnostics.Process p = new System.Diagnostics.Process();
- p.StartInfo.FileName = "sh";
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.RedirectStandardInput = true;
- p.StartInfo.RedirectStandardOutput = true;
- p.StartInfo.RedirectStandardError = true;
- p.StartInfo.CreateNoWindow = false;
- p.Start();
-
- p.StandardInput.WriteLine(cmd + "&exit");
- p.StandardInput.AutoFlush = false;
-
- string output = p.StandardOutput.ReadToEnd();
-
- p.WaitForExit();//等待程序执行完退出进程
- p.Close();
- Console.WriteLine(output);
- }
- public List Merge(List sentence, List tags, List entities)
+ public List Merge(List tokens, List entities)
{
List trainingTuple = new List();
HashSet entityWordBag = new HashSet();
int wordCandidateCount = 0;
- for (int i = 0; i < sentence.Count; i++)
+ for (int i = 0; i < tokens.Count; i++)
{
TrainingIntentExpressionPart curEntity = null;
if (entities != null)
@@ -97,7 +96,7 @@ namespace BotSharp.Core.Engines.CRFsuite
string[] words = entity.Value.Split(" ");
for (int j = 0; j < words.Length; j++)
{
- if (sentence[i + j].Text == words[j])
+ if (tokens[i + j].Text == words[j])
{
wordCandidateCount++;
if (j == words.Length - 1)
@@ -116,7 +115,7 @@ namespace BotSharp.Core.Engines.CRFsuite
String entityName = curEntity.Entity.Contains(":")? curEntity.Entity.Substring(curEntity.Entity.IndexOf(":") + 1): curEntity.Entity;
foreach(string s in words)
{
- trainingTuple.Add(new TrainingData(entityName, s, tags[i], "I"));
+ trainingTuple.Add(new TrainingData(entityName, s, tokens[i].Pos, "I"));
}
entityFinded = true;
}
@@ -125,50 +124,36 @@ namespace BotSharp.Core.Engines.CRFsuite
}
if (wordCandidateCount == 0)
{
- trainingTuple.Add(new TrainingData("O", sentence[i].Text, tags[i], "O"));
+ trainingTuple.Add(new TrainingData("O", tokens[i].Text, tokens[i].Pos, "O"));
}
else
{
i = i + wordCandidateCount - 1;
}
}
- return trainingTuple;
+ return trainingTuple;
}
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
}
public class TrainingData
{
public String Token { get; set; }
public String Entity { get; set; }
- public String Tag { get; set; }
+ public String Pos { get; set; }
public String Chunk { get; set; }
- public TrainingData(string entity, string token, string tag, string chunk)
+ public TrainingData(string entity, string token, string pos, string chunk)
{
- this.Token = token;
- this.Entity = entity;
- this.Tag = tag;
- this.Chunk = chunk;
+ Token = token;
+ Entity = entity;
+ Pos = pos;
+ Chunk = chunk;
}
}
-
-
- public class Token
- {
- public String Text { get; set; }
- public int Offset { get; set; }
- public int End { get; set; }
- }
-
- public class Entity
- {
- public String EntityName { get; set; }
- public String Value { get; set; }
- public int Start { get; set; }
- public int End { get; set; }
- }
-
-
}
diff --git a/BotSharp.Core/Engines/Classifiers/FasttextClassifier.cs b/BotSharp.Core/Engines/Classifiers/FasttextClassifier.cs
new file mode 100644
index 00000000..3d442da1
--- /dev/null
+++ b/BotSharp.Core/Engines/Classifiers/FasttextClassifier.cs
@@ -0,0 +1,49 @@
+using BotSharp.Core.Abstractions;
+using BotSharp.Core.Agents;
+using DotNetToolkit;
+using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BotSharp.Core.Engines.Classifiers
+{
+ public class FasttextClassifier : INlpPipeline
+ {
+ public IConfiguration Configuration { get; set; }
+
+ public Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ throw new NotImplementedException();
+ }
+
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
+ {
+ meta.Model = "classification-fasttext.model";
+ var algorithmDir = Path.Join(AppDomain.CurrentDomain.GetData("ContentRootPath").ToString(), "Algorithms");
+ var dirTrain = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "TrainingFiles", agent.Id);
+ var dirModel = Path.Join(AppDomain.CurrentDomain.GetData("DataPath").ToString(), "ModelFiles", agent.Id);
+
+ string parsedTrainingDataFileName = Path.Join(dirTrain, $"classification-fasttext.parsed.txt");
+ string modelFileName = Path.Join(dirModel, meta.Model);
+
+ // assemble corpus
+ StringBuilder corpus = new StringBuilder();
+ agent.Corpus.UserSays.ForEach(x => corpus.AppendLine($"__label__{x.Intent} {x.Text}"));
+
+ File.WriteAllText(parsedTrainingDataFileName, corpus.ToString());
+
+ var output = CmdHelper.Run(Path.Join(algorithmDir, "fasttext"), $"supervised -input {parsedTrainingDataFileName} -output {modelFileName}");
+
+ Console.WriteLine($"Saved model to {modelFileName}");
+ meta.Meta = new JObject();
+ meta.Meta["compiled at"] = "Aug 3, 2018";
+
+
+ return true;
+ }
+ }
+}
diff --git a/BotSharp.Core/Engines/ModelMetaData.cs b/BotSharp.Core/Engines/ModelMetaData.cs
new file mode 100644
index 00000000..6ea1ea64
--- /dev/null
+++ b/BotSharp.Core/Engines/ModelMetaData.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BotSharp.Core.Engines
+{
+ public class ModelMetaData
+ {
+ public string Platform { get; set; }
+ public string Language { get; set; }
+
+ public string Version { get; set; }
+ public DateTime TrainingDate { get; set; }
+
+ public List Pipeline { get; set; }
+ }
+}
diff --git a/BotSharp.Core/Engines/PipeModel.cs b/BotSharp.Core/Engines/PipeModel.cs
new file mode 100644
index 00000000..d971408a
--- /dev/null
+++ b/BotSharp.Core/Engines/PipeModel.cs
@@ -0,0 +1,29 @@
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BotSharp.Core.Engines
+{
+ public class PipeModel
+ {
+ ///
+ /// Pipe name
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// Pipe type name
+ ///
+ public string Class { get; set; }
+
+ public DateTime Time { get; set; }
+
+ public string Model { get; set; }
+
+ ///
+ /// Extra meta data according to pipe
+ ///
+ public JObject Meta { get; set; }
+ }
+}
diff --git a/BotSharp.Core/Engines/Sebis/AgentImporterInSebis.cs b/BotSharp.Core/Engines/Sebis/AgentImporterInSebis.cs
index 48863211..ba849bfd 100644
--- a/BotSharp.Core/Engines/Sebis/AgentImporterInSebis.cs
+++ b/BotSharp.Core/Engines/Sebis/AgentImporterInSebis.cs
@@ -105,7 +105,7 @@ namespace BotSharp.Core.Engines
Text = say.Text.Substring(entity.Start, entity.Value.Length)
});
- pos = entity.End;
+ pos = entity.End + 1;
if (pos < say.Text.Length && entityIdx == say.Entities.Count - 1)
{
diff --git a/BotSharp.Core/Engines/SpaCy/SpaCyEntitizer.cs b/BotSharp.Core/Engines/SpaCy/SpaCyEntitizer.cs
index 23a596fe..8d32ed33 100644
--- a/BotSharp.Core/Engines/SpaCy/SpaCyEntitizer.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpaCyEntitizer.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
using BotSharp.Core.Abstractions;
using BotSharp.Core.Agents;
using BotSharp.Core.Models;
@@ -15,7 +16,12 @@ namespace BotSharp.Core.Engines.SpaCy
{
public IConfiguration Configuration { get; set; }
- public bool Process(Agent agent, JObject data)
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
+
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
var client = new RestClient(Configuration.GetSection("SpaCyProvider:Url").Value);
var request = new RestRequest("entitize", Method.GET);
diff --git a/BotSharp.Core/Engines/SpaCy/SpaCyEntityRecognizer.cs b/BotSharp.Core/Engines/SpaCy/SpaCyEntityRecognizer.cs
index d0338412..acfb1f59 100644
--- a/BotSharp.Core/Engines/SpaCy/SpaCyEntityRecognizer.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpaCyEntityRecognizer.cs
@@ -9,6 +9,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines.SpaCy
{
@@ -17,7 +18,7 @@ namespace BotSharp.Core.Engines.SpaCy
List entitiesInTrainingSet = new List();
public IConfiguration Configuration { get; set; }
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
String modelPath = "./entity_rec_output";
String newModelName = "test";
@@ -54,6 +55,11 @@ namespace BotSharp.Core.Engines.SpaCy
return true;
}
+
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
}
public class Result
diff --git a/BotSharp.Core/Engines/SpaCy/SpaCyProvider.cs b/BotSharp.Core/Engines/SpaCy/SpaCyProvider.cs
index 2d214b92..f61d9810 100644
--- a/BotSharp.Core/Engines/SpaCy/SpaCyProvider.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpaCyProvider.cs
@@ -1,26 +1,46 @@
using BotSharp.Core.Abstractions;
using BotSharp.Core.Agents;
using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines.SpaCy
{
public class SpaCyProvider : INlpPipeline
{
public IConfiguration Configuration { get; set; }
-
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
var client = new RestClient(Configuration.GetSection("SpaCyProvider:Url").Value);
var request = new RestRequest("load", Method.GET);
- var response = client.Execute(request);
+ var response = client.Execute(request);
+
+ meta.Meta = JObject.FromObject(response.Data);
+ meta.Meta["models"] = null;
+ meta.Model = response.Data.Models;
return response.IsSuccessful;
}
+
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
+
+ private class Result
+ {
+ [JsonProperty("spaCy ver")]
+ public string Version { get; set; }
+ [JsonProperty("models")]
+ public string Models { get; set; }
+ [JsonProperty("python ver")]
+ public string Python { get; set; }
+ }
}
}
diff --git a/BotSharp.Core/Engines/SpaCy/SpaCyTagger.cs b/BotSharp.Core/Engines/SpaCy/SpaCyTagger.cs
index 46305e6f..15878f76 100644
--- a/BotSharp.Core/Engines/SpaCy/SpaCyTagger.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpaCyTagger.cs
@@ -8,6 +8,7 @@ using System;
using System.Collections.Generic;
using System.Text;
using BotSharp.MachineLearning.NLP;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines.SpaCy
{
@@ -15,8 +16,7 @@ namespace BotSharp.Core.Engines.SpaCy
{
public IConfiguration Configuration { get; set; }
-
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
var client = new RestClient(Configuration.GetSection("SpaCyProvider:Url").Value);
var request = new RestRequest("tagger", Method.GET);
@@ -36,7 +36,12 @@ namespace BotSharp.Core.Engines.SpaCy
return res;
}
- public class Result
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
+
+ private class Result
{
public List Tags { get; set; }
}
diff --git a/BotSharp.Core/Engines/SpaCy/SpaCyTextCategorizer.cs b/BotSharp.Core/Engines/SpaCy/SpaCyTextCategorizer.cs
index dc95802a..6ae93765 100644
--- a/BotSharp.Core/Engines/SpaCy/SpaCyTextCategorizer.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpaCyTextCategorizer.cs
@@ -9,6 +9,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines.SpaCy
{
@@ -16,7 +17,7 @@ namespace BotSharp.Core.Engines.SpaCy
{
public IConfiguration Configuration { get; set; }
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
//var input = new List>();
@@ -62,6 +63,11 @@ namespace BotSharp.Core.Engines.SpaCy
return true;
}
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
+
public class Result
{
public String ModelName { get; set; }
diff --git a/BotSharp.Core/Engines/SpaCy/SpaCyTokenizer.cs b/BotSharp.Core/Engines/SpaCy/SpaCyTokenizer.cs
index 8835b7f0..f68d5417 100644
--- a/BotSharp.Core/Engines/SpaCy/SpaCyTokenizer.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpaCyTokenizer.cs
@@ -10,6 +10,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Threading.Tasks;
namespace BotSharp.Core.Engines.SpaCy
{
@@ -17,32 +18,37 @@ namespace BotSharp.Core.Engines.SpaCy
{
public IConfiguration Configuration { get; set; }
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
var client = new RestClient(Configuration.GetSection("SpaCyProvider:Url").Value);
- var request = new RestRequest("tokenize", Method.GET);
+ var request = new RestRequest("tokenizer", Method.GET);
List> tokens = new List>();
Boolean res = true;
var dc = new DefaultDataContextLoader().GetDefaultDc();
var corpus = agent.Corpus;
corpus.UserSays.ForEach(usersay => {
+ Console.WriteLine(usersay.Text);
request.AddParameter("text", usersay.Text);
var response = client.Execute(request);
+
tokens.Add(response.Data.Tokens);
+
res = res && response.IsSuccessful;
+
});
-
-
-
data.Add("Tokens", JToken.FromObject(tokens));
return res;
}
-
- public class Result
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
+
+ private class Result
{
public List Tokens { get; set; }
}
diff --git a/BotSharp.Core/Engines/SpaCy/SpacyFeaturizer.cs b/BotSharp.Core/Engines/SpaCy/SpacyFeaturizer.cs
index f456b8a2..2293a2fb 100644
--- a/BotSharp.Core/Engines/SpaCy/SpacyFeaturizer.cs
+++ b/BotSharp.Core/Engines/SpaCy/SpacyFeaturizer.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
using BotSharp.Core.Abstractions;
using BotSharp.Core.Agents;
using EntityFrameworkCore.BootKit;
@@ -14,7 +15,7 @@ namespace BotSharp.Core.Engines.SpaCy
{
public IConfiguration Configuration { get; set; }
- public bool Process(Agent agent, JObject data)
+ public async Task Train(Agent agent, JObject data, PipeModel meta)
{
var client = new RestClient(Configuration.GetSection("SpaCyProvider:Url").Value);
var request = new RestRequest("featurize", Method.GET);
@@ -35,6 +36,11 @@ namespace BotSharp.Core.Engines.SpaCy
return res;
}
+ public async Task Predict(Agent agent, JObject data, PipeModel meta)
+ {
+ return true;
+ }
+
public class Result
{
public List Vectors { get; set; }
diff --git a/BotSharp.MachineLearning/CRFsuite/Crfutils.cs b/BotSharp.MachineLearning/CRFsuite/Crfutils.cs
index c3db9e11..f725ef1d 100644
--- a/BotSharp.MachineLearning/CRFsuite/Crfutils.cs
+++ b/BotSharp.MachineLearning/CRFsuite/Crfutils.cs
@@ -135,16 +135,19 @@ namespace BotSharp.MachineLearning.CRFsuite
/// an extractor which to do the feature extracting work
/// attributes name seperated by space
/// string whihch seperated by
- public void CRFFileGenerator (System.Action>> FeatureExtractor, string fields, string sep= " ")
+ public void CRFFileGenerator (System.Action>> FeatureExtractor, string fields, string rawFile, string parsedName, string sep= " ")
{
- String fiPath = "/home/bolo/Desktop/BotSharp/TrainingFiles/rawTrain.txt";
- FileStream fs = new FileStream("/home/bolo/Desktop/BotSharp/TrainingFiles/1.txt", FileMode.Create);
+ FileStream fs = new FileStream(parsedName, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
List F = fields.Split(" ").ToList();
- List>> Xs = Readiter(fiPath, F, " ");
+ List>> Xs = Readiter(rawFile, F, " ");
foreach (List> X in Xs)
{
+ if (X.Any(x => x["w"].ToString() == ""))
+ {
+
+ }
FeatureExtractor(X);
OutputFeatures(sw, X, "y");
}
diff --git a/BotSharp.MachineLearning/CRFsuite/Ner.cs b/BotSharp.MachineLearning/CRFsuite/Ner.cs
index 904fe423..c4b63a90 100644
--- a/BotSharp.MachineLearning/CRFsuite/Ner.cs
+++ b/BotSharp.MachineLearning/CRFsuite/Ner.cs
@@ -11,8 +11,7 @@ namespace BotSharp.MachineLearning.CRFsuite
{
// Separator of field values.
string separator = " ";
- // Field names of the input data.
- string fields = "y w pos chk";
+
Template templates = new Template();
public string GetShape (string token)
@@ -469,15 +468,9 @@ namespace BotSharp.MachineLearning.CRFsuite
}
}
- string[] Uique = new string[]{"w", "wl", "pos", "chk", "shape", "shaped", "type",
- "p1", "p2", "p3", "p4","s1", "s2", "s3", "s4",
- "2d", "4d", "d&a", "d&-", "d&/", "d&,", "d&.", "up",
- "iu", "au", "al", "ad", "ao", "cu", "cl", "ca", "cd", "cs"};
- string[] Bi = new string[]{"w", "pos", "chk", "shaped", "type"};
-
- public void InitialTemplate ()
+ public void InitialTemplate (string[] uniFeatures, string[] biFeatures)
{
- foreach (string name in Uique)
+ foreach (string name in uniFeatures)
{
for (int i = -2 ; i < 3; i++)
{
@@ -487,7 +480,7 @@ namespace BotSharp.MachineLearning.CRFsuite
}
}
- foreach (string name in Bi)
+ foreach (string name in biFeatures)
{
for (int i = -2 ; i < 2; i++)
{
@@ -509,7 +502,6 @@ namespace BotSharp.MachineLearning.CRFsuite
// Apply the feature templates.
new Crfutils().ApplyTemplates(X, templates);
- // Append disjunctive features.
for (int t = 0; t < X.Count ; t++)
{
DisJunctive(X, t, "w", -4, -1);
@@ -522,10 +514,10 @@ namespace BotSharp.MachineLearning.CRFsuite
}
}
- public void NerStart ()
+ public void NerStart(string rawFile, string parsedName, string fields, string[] uniFeatures, string[] biFeatures)
{
- InitialTemplate();
- new Crfutils().CRFFileGenerator(FeatureExtractor, fields, separator);
+ InitialTemplate(uniFeatures, biFeatures);
+ new Crfutils().CRFFileGenerator(FeatureExtractor, fields, rawFile, parsedName, separator);
}
diff --git a/BotSharp.MachineLearning/NLP/NlpToken.cs b/BotSharp.MachineLearning/NLP/NlpToken.cs
index fdd3613f..e6cb34b8 100644
--- a/BotSharp.MachineLearning/NLP/NlpToken.cs
+++ b/BotSharp.MachineLearning/NLP/NlpToken.cs
@@ -8,6 +8,9 @@ namespace BotSharp.MachineLearning.NLP
{
public string Text { get; set; }
public int Offset { get; set; }
+ public string Pos { get; set; }
+ public string Tag { get; set; }
+ public string Lemma { get; set; }
public int End
{
get
diff --git a/BotSharp.MachineLearning/SpaCy/server.py b/BotSharp.MachineLearning/SpaCy/server.py
index 37d47bcf..467b3c0f 100644
--- a/BotSharp.MachineLearning/SpaCy/server.py
+++ b/BotSharp.MachineLearning/SpaCy/server.py
@@ -1,25 +1,35 @@
from bottle import route, run, request
-from spacy.tokenizer import Tokenizer
from spacy.pipeline import EntityRecognizer
from spacy.pipeline import TextCategorizer
+from spacy.gold import GoldParse
+#import plac
+import random
import spacy
nlp = spacy.load('en')
-tokenizer = Tokenizer(nlp.vocab)
ner = EntityRecognizer(nlp.vocab)
@route('/load')
def load():
pass
-@route('/tokenize')
+@route('/tokenizer')
def tokenize():
- tokens = tokenizer(request.query.text)
+ doc = nlp(request.query.text)
+ tokens = []
+ for token in doc:
+ tokens.append({'text': token.text, 'offset': token.idx, 'pos': token.pos_, 'tag': token.tag_, 'lemma': token.lemma_})
+ return {'tokens': tokens}
+
+
+@route('/tagger')
+def tagger():
+ doc = nlp(request.query.text)
list = []
- for token in tokens:
- print(token)
- list.append({'text': token.text, 'offset': token.idx})
- return {'tokens': list}
+ for token in doc:
+ list.append(token.tag_)
+ return {'tags': list}
+
@route('/featurize')
def tokenize():
@@ -46,13 +56,16 @@ def textcategorizer():
texts = request.json["Texts"]
golds = request.json["Golds"]
labels = request.json["Labels"]
- print(labels)
+ i = 1
train_data = []
for index in range(len(texts)):
tuple =(texts[index], golds[index])
train_data.append(tuple)
-
- print("training data body is: {0}".format(train_data))
+ '''
+ for tup in train_data:
+ print("cur tuple {0}, training data body: {1}".format(i, train_data))
+ i = i + 1
+ '''
textcat = nlp.create_pipe('textcat')
nlp.add_pipe(textcat, last=True)
for label in labels:
@@ -68,8 +81,8 @@ def textcategorizer():
return {'ModelName':'textcat_try'}
-@route('/predict')
-def predict():
+@route('/textcategorizerpredict')
+def textcategorizerpredict():
textcat = TextCategorizer(nlp.vocab)
textcat.from_disk('./textcat_try')
@@ -78,15 +91,114 @@ def predict():
doc = nlp(request.query.text)
#scores = textcat.predict([request.query.text])
- #print(scores)
+ print(doc.cats)
list = []
- for label, confidence in doc.cats:
- print(label)
- list.append({'Label': label, 'Confidence': confidence})
+ for key in doc.cats:
+ print(key)
+ list.append({'Label': key, 'Confidence': doc.cats[key]})
print (list)
return {'Labels': list}
-run(host='0.0.0.0', port=5005, debug=True)
+@route('/entityrecognizer', method='POST')
+def entityrecognizer():
+ model = request.json["ModelPath"]
+ new_model_name = request.json["NewModelName"]
+ output_dir = request.json["OutputDir"]
+ n_iter = request.json["IterTimes"]
+ raw_data = request.json["TrainingData"]
+ # generate training_data from raw_data
+ training_data = []
+ for node in raw_data:
+ labels = []
+ for entity in node['Labels']:
+ label = (entity['Start'], entity['End'], entity['Name'])
+ labels.append(label)
+ tup = (node['Text'], labels)
+ training_data.append(tup)
+ print(training_data)
+
+ if model is not None:
+ nlp = spacy.load(model) # load existing spaCy model
+ print("Loaded model '%s'" % model)
+ else:
+ nlp = spacy.blank('en') # create blank Language class
+ print("Created blank 'en' model")
+
+ # Add entity recognizer to model if it's not in the pipeline
+ # nlp.create_pipe works for built-ins that are registered with spaCy
+ if 'ner' not in nlp.pipe_names:
+ ner = nlp.create_pipe('ner')
+ nlp.add_pipe(ner)
+ print("ner created succeed!")
+ # otherwise, get it, so we can add labels to it
+ else:
+ ner = nlp.get_pipe('ner')
+ print("ner loaded succeed!")
+
+ # check whether there are new labels
+ entities_in_training_set = request.json["EntitiesInTrainingSet"]
+ en_labels = ["PERSON","NORP","FAC","ORG","GPE","LOC","PRODUCT",\
+ "EVENT","WORK_OF_ART","LAW","LANGUAGE","DATE","TIME","PERCENT",\
+ "MONEY","QUANTITY","ORDINAL","CARDINAL"]
+
+ extra_labels = nlp.entity.cfg[u'extra_labels'] \
+ if ('extra_labels' in nlp.entity.cfg) else []
+
+ labels = []
+ for entity in entities_in_training_set:
+ if (entity in en_labels or entity in extra_labels):
+ continue
+ labels.append(entity)
+
+ for label in labels:
+ ner.add_label(label) # add new entity label to entity recognizer
+ print("label added succeed!")
+
+ if model is None:
+ optimizer = nlp.begin_training()
+ else:
+ # Note that 'begin_training' initializes the models, so it'll zero out
+ # existing entity types.
+ optimizer = nlp.entity.create_optimizer()
+
+ # get names of other pipes to disable them during training
+ other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
+ with nlp.disable_pipes(*other_pipes): # only train NER
+ for itn in range(n_iter):
+ random.shuffle(training_data)
+ losses = {}
+ for text, annotations in training_data:
+ print(text)
+ print(annotations)
+ #
+ doc = nlp.make_doc(text)
+ gold = GoldParse(doc, entities=annotations)
+ #
+ nlp.update([doc], [gold], sgd=optimizer, drop=0.35)#,losses=losses)
+ #print(losses)
+
+ # save model to output directory
+ if output_dir is not None:
+ output_dir = Path(output_dir)
+ if not output_dir.exists():
+ output_dir.mkdir()
+ nlp.meta['name'] = new_model_name # rename model
+ nlp.to_disk(output_dir)
+ print("Saved model to", output_dir)
+ return True
+
+@route('/entityrecognizerpredict')
+def entityrecognizerpredict():
+
+ print("Loading from", './entity_rec_output')
+ nlp2 = spacy.load('./entity_rec_output')
+ doc2 = nlp2(request.query.text)
+ for ent in doc2.ents:
+ print(ent.label_, ent.text)
+
+
+
+run(host='0.0.0.0', port=5005, debug=True)
\ No newline at end of file
diff --git a/BotSharp.RestApi/Dialogs/DialogController.cs b/BotSharp.RestApi/Dialogs/DialogController.cs
index 85487baf..701c541d 100644
--- a/BotSharp.RestApi/Dialogs/DialogController.cs
+++ b/BotSharp.RestApi/Dialogs/DialogController.cs
@@ -13,6 +13,7 @@ namespace BotSharp.RestApi.Dialogs
///
/// Conversation controller
///
+ [Authorize]
[Route("v1/[controller]")]
public class DialogController : ControllerBase
{
@@ -33,16 +34,10 @@ namespace BotSharp.RestApi.Dialogs
///
///
///
- [AllowAnonymous]
[HttpPost("/v1/query")]
public ActionResult Query([FromBody] QueryModel request)
{
- String clientAccessToken = Request.Headers["Authorization"];
- if (String.IsNullOrEmpty(clientAccessToken))
- {
- return Unauthorized();
- }
-
+ String clientAccessToken = Request.Headers["ClientAccessToken"];
var config = new AIConfiguration(clientAccessToken, SupportedLanguage.English);
config.SessionId = request.SessionId;
diff --git a/BotSharp.WebHost/Algorithms/crfsuite.exe b/BotSharp.WebHost/Algorithms/crfsuite.exe
new file mode 100644
index 00000000..0a3843bd
Binary files /dev/null and b/BotSharp.WebHost/Algorithms/crfsuite.exe differ
diff --git a/BotSharp.WebHost/Algorithms/fasttext.exe b/BotSharp.WebHost/Algorithms/fasttext.exe
new file mode 100644
index 00000000..0ffcdd4c
Binary files /dev/null and b/BotSharp.WebHost/Algorithms/fasttext.exe differ
diff --git a/BotSharp.WebHost/App_Data/DbInitializer/Accounts/users.json b/BotSharp.WebHost/App_Data/DbInitializer/Accounts/users.json
index 9b7fabcb..16d0b63b 100644
--- a/BotSharp.WebHost/App_Data/DbInitializer/Accounts/users.json
+++ b/BotSharp.WebHost/App_Data/DbInitializer/Accounts/users.json
@@ -1,5 +1,6 @@
[
{
+ "id": "54cc19ee-e3d5-4d59-a011-fa0121450e36",
"userName": "botsharp",
"email": "support@botsharp.io",
"firstName": "Support",
diff --git a/BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Airport/agent.json b/BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Chatbot/agent.json
similarity index 100%
rename from BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Airport/agent.json
rename to BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Chatbot/agent.json
diff --git a/BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Airport/corpus.json b/BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Chatbot/corpus.json
similarity index 94%
rename from BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Airport/corpus.json
rename to BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Chatbot/corpus.json
index 5f605388..6475d44c 100644
--- a/BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Airport/corpus.json
+++ b/BotSharp.WebHost/App_Data/DbInitializer/Agents/Sebis/Chatbot/corpus.json
@@ -1,4243 +1,4201 @@
-{
- "name": "ChatbotCorpus",
- "desc": "Visit https://github.com/sebischair/NLU-Evaluation-Corpora for more information",
- "lang": "en",
- "sentences": [
- {
- "text": "i want to go marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "when is the next train in muncher freiheit?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "muncher freiheit"
- }
- ]
- },
- {
- "text": "when does the next u-bahn leaves from garching forschungszentrum?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "u-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 10,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "from olympia einkaufszentrum to hauptbahnhof",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 2,
- "text": "olympia einkaufszentrum"
- },
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "when is the next train from winterstraße 12 to kieferngarten",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "winterstraße 12"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "kieferngarten"
- }
- ]
- },
- {
- "text": "when is the next rocket from winterstraße 12 to kieferngarte",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "rocket"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "winterstraße 12"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "kieferngarte"
- }
- ]
- },
- {
- "text": "can you find a connection from garching to hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "how to get from untere strassäcker 21 to fröttmaning",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 6,
- "text": "untere strassäcker 21"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "fröttmaning"
- }
- ]
- },
- {
- "text": "how i can get from marienplatz to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "connection from boltzmannstraße to kieferngarten",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 2,
- "stop": 2,
- "text": "boltzmannstraße"
- },
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "kieferngarten"
- }
- ]
- },
- {
- "text": "how to get from bonner platz to freimann?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 5,
- "text": "bonner platz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "freimann"
- }
- ]
- },
- {
- "text": "when is the next s-bahn leaving at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "s-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 9,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how do i get from oez to hbf?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "oez"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "hbf"
- }
- ]
- },
- {
- "text": "how to get from winterstrasse 12 to fröttmaning",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 5,
- "text": "winterstrasse 12"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "fröttmaning"
- }
- ]
- },
- {
- "text": "how do i get from garching forschungszentrum to pasing",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "pasing"
- }
- ]
- },
- {
- "text": "theresienstraße to assling",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 0,
- "stop": 0,
- "text": "theresienstraße"
- },
- {
- "entity": "StationDest",
- "start": 2,
- "stop": 2,
- "text": "assling"
- }
- ]
- },
- {
- "text": "how can i get from theresienstraße to munich east?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "theresienstraße"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "munich east"
- }
- ]
- },
- {
- "text": "when does the next bus starts from garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "from quiddestraße to garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "can you find a connection from kurt-eisner-straße to garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 8,
- "text": "kurt-eisner-straße"
- },
- {
- "entity": "StationDest",
- "start": 10,
- "stop": 11,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "can you find a connection from quiddestraße to garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 9,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "when does the next train leaves at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "from hauptbahnhof to garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get to glockenbachviertel from garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "glockenbachviertel"
- }
- ]
- },
- {
- "text": "how i can get from garching to nordfriedhof",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "nordfriedhof"
- }
- ]
- },
- {
- "text": "how can i get to glockenbachviertel from garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "glockenbachviertel"
- }
- ]
- },
- {
- "text": "when is the next train leaving in garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how can i get from moosach to quiddestraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "moosach"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "how can i get from moosach to poccistraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "moosach"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "poccistraße"
- }
- ]
- },
- {
- "text": "how can i get from kurt-eisner-straße to garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "kurt-eisner-straße"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how can i get from moosach to quiddestraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "moosach"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "how can i get from moosach to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "moosach"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "when does the next bus starts at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "what's the shortest way from quiddestraße to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 4,
- "stop": 4,
- "text": "shortest"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "when is the next bus from ostbahnhof",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "ostbahnhof"
- }
- ]
- },
- {
- "text": "how i can get from garching to neuperlach sued",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "neuperlach sued"
- }
- ]
- },
- {
- "text": "when is the next train in munchner freiheit?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "munchner freiheit"
- }
- ]
- },
- {
- "text": "how i can get from marienplatz to garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how do i get from poccistraße to laim",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "poccistraße"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "laim"
- }
- ]
- },
- {
- "text": "i want to go garching from marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how i can get from marienplatz to garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get from hauptbahnhof to odeonsplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "prinzregentenplatz to rotkreuzplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 0,
- "stop": 0,
- "text": "prinzregentenplatz"
- },
- {
- "entity": "StationDest",
- "start": 2,
- "stop": 2,
- "text": "rotkreuzplatz"
- }
- ]
- },
- {
- "text": "i want to go to garching from marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "garching"
- }
- ]
- },
- {
- "text": "next train from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "train"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "from prinzregentenplatz to rotkreuzplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "prinzregentenplatz"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "rotkreuzplatz"
- }
- ]
- },
- {
- "text": "when is the next subway from garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "subway"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "from garching to klinikum",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "klinikum"
- }
- ]
- },
- {
- "text": "from garching foschungszentrum to odeonsplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 2,
- "text": "garching foschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "next bus in garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the train leaving in garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "next subway from garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "subway"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 4,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "tell me the next bus from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "next bus from garching, please.",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "next bus from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "next bus from central station",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 4,
- "text": "central station"
- }
- ]
- },
- {
- "text": "from garching to marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "next bus from garching.",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "connection from garching to hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 2,
- "stop": 2,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "when does the next bus departs from garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "find connection from hauptbahnhof to odeonsplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "when does the next u-bahn departs at garching forschungszentrum?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "u-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 10,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "when does the next u-bahn departs at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "u-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 9,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next subway departs at garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "subway"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the next train in garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how to get from münchner freiheit to garching ?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 5,
- "text": "münchner freiheit"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "implerstraße to ostbahnhof",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 0,
- "stop": 0,
- "text": "implerstraße"
- },
- {
- "entity": "StationDest",
- "start": 2,
- "stop": 2,
- "text": "ostbahnhof"
- }
- ]
- },
- {
- "text": "how can i get from hauptbahnhof to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how can i go from garching forschungszentrum to prinzregentenplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "prinzregentenplatz"
- }
- ]
- },
- {
- "text": "how can i get from mangfallplatz to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "mangfallplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get to hohenlindenerstraße",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "hohenlindenerstraße"
- }
- ]
- },
- {
- "text": "harthaus to hackerbrücke",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 0,
- "stop": 0,
- "text": "harthaus"
- },
- {
- "entity": "StationDest",
- "start": 2,
- "stop": 2,
- "text": "hackerbrücke"
- }
- ]
- },
- {
- "text": "how can i get from feldmoching to garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "feldmoching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "from marienplatz to petershausen",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "petershausen"
- }
- ]
- },
- {
- "text": "when is the train from garching to marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "neufahrn to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 0,
- "stop": 0,
- "text": "neufahrn"
- },
- {
- "entity": "StationDest",
- "start": 2,
- "stop": 2,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get from mangfallplatz to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "mangfallplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get to hohenlindenerstr",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "hohenlindenerstr"
- }
- ]
- },
- {
- "text": "when is the next bus from garching forschungzentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "garching forschungzentrum"
- }
- ]
- },
- {
- "text": "how do i get from spitzingplatz to poccistraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "spitzingplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "poccistraße"
- }
- ]
- },
- {
- "text": "how can i get from garching forschungszentrum to marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "how can i get from klinkum to marienplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "klinkum"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "how to get from alte heide to marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 5,
- "text": "alte heide"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "next train from muenchen freicheit",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 4,
- "text": "muenchen freicheit"
- }
- ]
- },
- {
- "text": "depart in garching, i assume",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "StationStart",
- "start": 2,
- "stop": 2,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next u-bahn depart at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "u-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 9,
- "text": "garching"
- }
- ]
- },
- {
- "text": "the next bus from garching forschungzentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 2,
- "stop": 2,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 1,
- "stop": 1,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 5,
- "text": "garching forschungzentrum"
- }
- ]
- },
- {
- "text": "when is the next train in alte heide?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "alte heide"
- }
- ]
- },
- {
- "text": "or depart from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "garching"
- }
- ]
- },
- {
- "text": "hello munich city bot! how do i get from münchner freiheit to scheidplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 10,
- "stop": 11,
- "text": "münchner freiheit"
- },
- {
- "entity": "StationDest",
- "start": 13,
- "stop": 13,
- "text": "scheidplatz"
- }
- ]
- },
- {
- "text": "how can i get from garching forschungszentrum to prinzregentenplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "prinzregentenplatz"
- }
- ]
- },
- {
- "text": "how can i get from neufahrn to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "neufahrn"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "take me to the airport",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "airport"
- }
- ]
- },
- {
- "text": "when does the next u6 leave from garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Line",
- "start": 4,
- "stop": 4,
- "text": "u6"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how i can get from munchner freiheit to nordfriedhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "munchner freiheit"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "nordfriedhof"
- }
- ]
- },
- {
- "text": "from harthaus to hackerbrücke",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "harthaus"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "hackerbrücke"
- }
- ]
- },
- {
- "text": "when is the train from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- }
- ]
- },
- {
- "text": "what is the next train from münchner freiheit",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "münchner freiheit"
- }
- ]
- },
- {
- "text": "how can i get from theresienstrasse to garching forschungszentrum",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "theresienstrasse"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how can i get from münchner freiheit to odeonsplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "münchner freiheit"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "from garching to hauptbahnhof",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "how can i get from garching to odeonsplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "start: neufahrn end:garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 2,
- "stop": 2,
- "text": "neufahrn"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get from studentenstadt to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "studentenstadt"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the next bus from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "take me from hauptbahnhof to odeonsplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "what's the shortest connection between quiddestraße and odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 4,
- "stop": 4,
- "text": "shortest"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "what is the cheapest connection between quiddestraße and hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "cheapest"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "what's the shortest way between hauptbahnhof and odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 4,
- "stop": 4,
- "text": "shortest"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how can i get from garching to münchner freiheit as fast as possible?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 10,
- "stop": 10,
- "text": "fast"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "münchner freiheit"
- }
- ]
- },
- {
- "text": "what's the cheapest way from neuperlach süd to lehel?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 4,
- "stop": 4,
- "text": "cheapest"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "neuperlach süd"
- },
- {
- "entity": "StationDest",
- "start": 10,
- "stop": 10,
- "text": "lehel"
- }
- ]
- },
- {
- "text": "how can i get from neuperlach zentrum to karlsplatz as fast as possible?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 10,
- "stop": 10,
- "text": "fast"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "neuperlach zentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "karlsplatz"
- }
- ]
- },
- {
- "text": "could you give me the fastest connection between brudermühlstraße and alte heide?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 5,
- "stop": 5,
- "text": "fastest"
- },
- {
- "entity": "StationStart",
- "start": 8,
- "stop": 8,
- "text": "brudermühlstraße"
- },
- {
- "entity": "StationDest",
- "start": 10,
- "stop": 11,
- "text": "alte heide"
- }
- ]
- },
- {
- "text": "is there a train from neuperlach zentrum to garching at 3 pm?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "TimeStartTime",
- "start": 10,
- "stop": 11,
- "text": "3 pm"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "neuperlach zentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "garching"
- }
- ]
- },
- {
- "text": "can you find a connection from olympiazentrum to lehel at 2 pm?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "TimeStartTime",
- "start": 10,
- "stop": 11,
- "text": "2 pm"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "olympiazentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "lehel"
- }
- ]
- },
- {
- "text": "i need a connection from harras to karl-preis-platz at 8 am.",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "TimeStartTime",
- "start": 13,
- "stop": 14,
- "text": "8 am"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "harras"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 11,
- "text": "karl-preis-platz"
- }
- ]
- },
- {
- "text": "in need to be at hauptbahnhof at 1 pm, can you search a connection from garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "TimeEndTime",
- "start": 7,
- "stop": 8,
- "text": "1 pm"
- },
- {
- "entity": "StationStart",
- "start": 16,
- "stop": 17,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "i need to be in garching at 9",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "TimeEndTime",
- "start": 7,
- "stop": 7,
- "text": "9"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "garching"
- }
- ]
- },
- {
- "text": "can i take a bus from quiddestraße to hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "can you find the shortest way from moosfeld to milbertshofen?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 4,
- "stop": 4,
- "text": "shortest"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "moosfeld"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "milbertshofen"
- }
- ]
- },
- {
- "text": "how can i get to neuperlach süd from garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 8,
- "stop": 9,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 6,
- "text": "neuperlach süd"
- }
- ]
- },
- {
- "text": "can you find a bus from quiddestraße to lehel?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "lehel"
- }
- ]
- },
- {
- "text": "is there a tram from karlsplatz to lehel?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "tram"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "karlsplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "lehel"
- }
- ]
- },
- {
- "text": "is there a bus from garching to moosach at around 5?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "bus"
- },
- {
- "entity": "TimeStartTime",
- "start": 10,
- "stop": 10,
- "text": "5"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "moosach"
- }
- ]
- },
- {
- "text": "is there a bus from odeonsplatz to hauptbahnhof at 3 pm?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "bus"
- },
- {
- "entity": "TimeStartTime",
- "start": 9,
- "stop": 10,
- "text": "3 pm"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "odeonsplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "can you tell me the cheapest way from garching forschungszentrum to quiddestraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 5,
- "stop": 5,
- "text": "cheapest"
- },
- {
- "entity": "StationStart",
- "start": 8,
- "stop": 9,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 11,
- "stop": 11,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "how can i get to quiddestraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "when does the next bus leaves from hauptbahnhof?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "how can i get from garching to hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "how can i get from kurt-eisner-straße to garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 9,
- "text": "kurt-eisner-straße"
- },
- {
- "entity": "StationDest",
- "start": 11,
- "stop": 11,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when the next train in garching,forschungszentrum is leaving?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 2,
- "stop": 2,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 7,
- "text": "garching,forschungszentrum"
- }
- ]
- },
- {
- "text": "what is the next connection from garching forschungszentrum to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how can i get from mossach to garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "mossach"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how can i get from garching forschungszentrum to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how can i get from garching, forschungszentrum to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 7,
- "text": "garching, forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how can i get from garching forschungszentrum to kurt-eisner-straße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 12,
- "text": "kurt-eisner-straße"
- }
- ]
- },
- {
- "text": "how can i get to boltzmannstraße from quiddestraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "boltzmannstraße"
- }
- ]
- },
- {
- "text": "when does the next train departs from quiddestraße?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "when the next train in garching forschungszentrum is leaving?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 2,
- "stop": 2,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "when is the next u6 leaving from garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Line",
- "start": 4,
- "stop": 4,
- "text": "u6"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next train leave from garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "when is the next u6?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Line",
- "start": 4,
- "stop": 4,
- "text": "u6"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- }
- ]
- },
- {
- "text": "when is the next subway leaving from garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "subway"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when the next train in garching is leaving?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 2,
- "stop": 2,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the next train leaving in garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next train leaves from odeonsplatz?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "when does the next train leaves from quiddestraße?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "when is the next train",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- }
- ]
- },
- {
- "text": "when does the next bus leaves at garching forschungszentrum?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "when does the next train leaves?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- }
- ]
- },
- {
- "text": "when does the next bus leave in garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next s-bahn leaves from hauptbahnhof?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "s-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 9,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "when does the next subway departes from odeonsplatz?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "subway"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "show me the next bus from garching!",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next tram starts from hauptbahnhof?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "tram"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "when will the next u-bahn depart from garching forschungszentrum?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 6,
- "text": "u-bahn"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 9,
- "stop": 10,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "show me the next bus from michaelibad.",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "michaelibad"
- }
- ]
- },
- {
- "text": "when does the next train starts at sendlinger tor?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "sendlinger tor"
- }
- ]
- },
- {
- "text": "hey bot, when does the next bus starts at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 7,
- "stop": 7,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 6,
- "stop": 6,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 10,
- "stop": 10,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when does the next bus leaves at garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the bus from quiddestraße?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "bus"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "when can i get a bus at mariahilfplatz?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 5,
- "stop": 5,
- "text": "bus"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "mariahilfplatz"
- }
- ]
- },
- {
- "text": "when does the next bus leaves at romanplatz?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "romanplatz"
- }
- ]
- },
- {
- "text": "when does the bus to röblingweg starts?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "bus"
- },
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "röblingweg"
- }
- ]
- },
- {
- "text": "next bus from quiddestraße?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 1,
- "stop": 1,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 0,
- "stop": 0,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 3,
- "stop": 3,
- "text": "quiddestraße"
- }
- ]
- },
- {
- "text": "when is the next bus leaving from garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the train leaving in garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the train leaving in garching?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 3,
- "stop": 3,
- "text": "train"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get from garching to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "when is adrians next subway leaving at garching forschungszentrum?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "subway"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how can i get from olympiazentrum to hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "olympiazentrum"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "how can i get from quiddestraße to boltzmannstraße?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "quiddestraße"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "boltzmannstraße"
- }
- ]
- },
- {
- "text": "how can i get from moosach to garching forschungszentrum?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "moosach"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "can you give me a connection from garching to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 9,
- "stop": 9,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "when is the next train from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when comes the next train",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- }
- ]
- },
- {
- "text": "when is the next train in nordfriedhof",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "nordfriedhof"
- }
- ]
- },
- {
- "text": "when does the next train come at garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "when is the next train from nordfriedhof to garching forschungszentrum",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "nordfriedhof"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 9,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "i want to travel from garching to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how can i get to sendlinger tor?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 6,
- "text": "sendlinger tor"
- }
- ]
- },
- {
- "text": "how do i get to untere straussäcker?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 6,
- "text": "untere straussäcker"
- }
- ]
- },
- {
- "text": "how can i get from garching to garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get from garching to sendlinger tor?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 8,
- "text": "sendlinger tor"
- }
- ]
- },
- {
- "text": "how can i get from garchingto garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garchingto"
- },
- {
- "entity": "StationDest",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "when is the next train from garching",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how do i get from marienplatz zu garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "marienplatz"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get to milbertshofen from garching?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 7,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 5,
- "stop": 5,
- "text": "milbertshofen"
- }
- ]
- },
- {
- "text": "when is the next train to garching",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "StationDest",
- "start": 6,
- "stop": 6,
- "text": "garching"
- }
- ]
- },
- {
- "text": "how can i get from garching to milbertshofen?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "milbertshofen"
- }
- ]
- },
- {
- "text": "when does the next rocket leaves from garching forschungszentrum?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "rocket"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 8,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "connection from untere straßäcker 21 to kieferngarten",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 2,
- "stop": 4,
- "text": "untere straßäcker 21"
- },
- {
- "entity": "StationDest",
- "start": 6,
- "stop": 6,
- "text": "kieferngarten"
- }
- ]
- },
- {
- "text": "how to get from untere strassäcker 21 to frötmaning",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 6,
- "text": "untere strassäcker 21"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "frötmaning"
- }
- ]
- },
- {
- "text": "how to get from untere strassaecker 21 to frötmaning",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 6,
- "text": "untere strassaecker 21"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "frötmaning"
- }
- ]
- },
- {
- "text": "when is the next train from untere straßaecker 21 to kieferngarten",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 8,
- "text": "untere straßaecker 21"
- },
- {
- "entity": "StationDest",
- "start": 10,
- "stop": 10,
- "text": "kieferngarten"
- }
- ]
- },
- {
- "text": "when is the next train from untere straßaecker 21, garching to kieferngarten",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 7,
- "stop": 10,
- "text": "straßaecker 21, garching"
- },
- {
- "entity": "StationDest",
- "start": 12,
- "stop": 12,
- "text": "kieferngarten"
- }
- ]
- },
- {
- "text": "from garching to perlach",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "perlach"
- }
- ]
- },
- {
- "text": "how to get from garching to perlach?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 4,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 6,
- "stop": 6,
- "text": "perlach"
- }
- ]
- },
- {
- "text": "how to get from bonnerplatz to freimann",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 4,
- "stop": 4,
- "text": "bonnerplatz"
- },
- {
- "entity": "StationDest",
- "start": 6,
- "stop": 6,
- "text": "freimann"
- }
- ]
- },
- {
- "text": "when is the next train in nordfriedhof?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 6,
- "text": "nordfriedhof"
- }
- ]
- },
- {
- "text": "when is the next train in münchner freiheit?",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "train"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "münchner freiheit"
- }
- ]
- },
- {
- "text": "connection from hauptbahnhof to odeonsplatz?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 2,
- "stop": 2,
- "text": "hauptbahnhof"
- },
- {
- "entity": "StationDest",
- "start": 4,
- "stop": 4,
- "text": "odeonsplatz"
- }
- ]
- },
- {
- "text": "how do i get from olympia einkaufszentrum to hauptbahnhof?",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 6,
- "text": "olympia einkaufszentrum"
- },
- {
- "entity": "StationDest",
- "start": 8,
- "stop": 8,
- "text": "hauptbahnhof"
- }
- ]
- },
- {
- "text": "when is the next bus in garching forschungszentrum",
- "intent": "DepartureTime",
- "entities": [
- {
- "entity": "Vehicle",
- "start": 4,
- "stop": 4,
- "text": "bus"
- },
- {
- "entity": "Criterion",
- "start": 3,
- "stop": 3,
- "text": "next"
- },
- {
- "entity": "StationStart",
- "start": 6,
- "stop": 7,
- "text": "garching forschungszentrum"
- }
- ]
- },
- {
- "text": "how can i get from garching to marienplatz",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 5,
- "stop": 5,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 7,
- "stop": 7,
- "text": "marienplatz"
- }
- ]
- },
- {
- "text": "from garching to studentenstadt",
- "intent": "FindConnection",
- "entities": [
- {
- "entity": "StationStart",
- "start": 1,
- "stop": 1,
- "text": "garching"
- },
- {
- "entity": "StationDest",
- "start": 3,
- "stop": 3,
- "text": "studentenstadt"
- }
- ]
- }
- ]
-}
+{
+ "name": "ChatbotCorpus",
+ "desc": "Visit https://github.com/sebischair/NLU-Evaluation-Corpora for more information",
+ "lang": "en",
+ "sentences": [
+ {
+ "text": "i want to go marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in muncher freiheit?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "muncher freiheit"
+ }
+ ]
+ },
+ {
+ "text": "when does the next u-bahn leaves from garching forschungszentrum?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "u-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 10,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "from olympia einkaufszentrum to hauptbahnhof",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 2,
+ "text": "olympia einkaufszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train from winterstraße 12 to kieferngarten",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "winterstraße 12"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "kieferngarten"
+ }
+ ]
+ },
+ {
+ "text": "when is the next rocket from winterstraße 12 to kieferngarte",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "rocket"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "winterstraße 12"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "kieferngarte"
+ }
+ ]
+ },
+ {
+ "text": "can you find a connection from garching to hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how to get from untere strassäcker 21 to fröttmaning",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 6,
+ "text": "untere strassäcker 21"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "fröttmaning"
+ }
+ ]
+ },
+ {
+ "text": "how i can get from marienplatz to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "connection from boltzmannstraße to kieferngarten",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 2,
+ "stop": 2,
+ "text": "boltzmannstraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "kieferngarten"
+ }
+ ]
+ },
+ {
+ "text": "how to get from bonner platz to freimann?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 5,
+ "text": "bonner platz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "freimann"
+ }
+ ]
+ },
+ {
+ "text": "when is the next s-bahn leaving at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "s-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 9,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how do i get from oez to hbf?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "oez"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "hbf"
+ }
+ ]
+ },
+ {
+ "text": "how to get from winterstrasse 12 to fröttmaning",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 5,
+ "text": "winterstrasse 12"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "fröttmaning"
+ }
+ ]
+ },
+ {
+ "text": "how do i get from garching forschungszentrum to pasing",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "pasing"
+ }
+ ]
+ },
+ {
+ "text": "theresienstraße to assling",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 0,
+ "stop": 0,
+ "text": "theresienstraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 2,
+ "stop": 2,
+ "text": "assling"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from theresienstraße to munich east?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "theresienstraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "munich east"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus starts from garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "from quiddestraße to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "can you find a connection from kurt-eisner-straße to garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 8,
+ "text": "kurt-eisner-straße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 10,
+ "stop": 11,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "can you find a connection from quiddestraße to garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 9,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train leaves at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "from hauptbahnhof to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to glockenbachviertel from garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "glockenbachviertel"
+ }
+ ]
+ },
+ {
+ "text": "how i can get from garching to nordfriedhof",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "nordfriedhof"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to glockenbachviertel from garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "glockenbachviertel"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train leaving in garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from moosach to quiddestraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "moosach"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from moosach to poccistraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "moosach"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "poccistraße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from kurt-eisner-straße to garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "kurt-eisner-straße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from moosach to quiddestraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "moosach"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from moosach to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "moosach"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus starts at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "what's the shortest way from quiddestraße to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 4,
+ "stop": 4,
+ "text": "shortest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "when is the next bus from ostbahnhof",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "ostbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how i can get from garching to neuperlach sued",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "neuperlach sued"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in munchner freiheit?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "munchner freiheit"
+ }
+ ]
+ },
+ {
+ "text": "how i can get from marienplatz to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how do i get from poccistraße to laim",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "poccistraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "laim"
+ }
+ ]
+ },
+ {
+ "text": "i want to go garching from marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how i can get from marienplatz to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from hauptbahnhof to odeonsplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "prinzregentenplatz to rotkreuzplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 0,
+ "stop": 0,
+ "text": "prinzregentenplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 2,
+ "stop": 2,
+ "text": "rotkreuzplatz"
+ }
+ ]
+ },
+ {
+ "text": "i want to go to garching from marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "next train from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "train"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "from prinzregentenplatz to rotkreuzplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "prinzregentenplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "rotkreuzplatz"
+ }
+ ]
+ },
+ {
+ "text": "when is the next subway from garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "subway"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "from garching to klinikum",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "klinikum"
+ }
+ ]
+ },
+ {
+ "text": "from garching foschungszentrum to odeonsplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 2,
+ "text": "garching foschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "next bus in garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the train leaving in garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "next subway from garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "subway"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 4,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "tell me the next bus from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "next bus from garching, please.",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "next bus from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "next bus from central station",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 4,
+ "text": "central station"
+ }
+ ]
+ },
+ {
+ "text": "from garching to marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "next bus from garching.",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "connection from garching to hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 2,
+ "stop": 2,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus departs from garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "find connection from hauptbahnhof to odeonsplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "when does the next u-bahn departs at garching forschungszentrum?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "u-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 10,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "when does the next u-bahn departs at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "u-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 9,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next subway departs at garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "subway"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how to get from münchner freiheit to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 5,
+ "text": "münchner freiheit"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "implerstraße to ostbahnhof",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 0,
+ "stop": 0,
+ "text": "implerstraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 2,
+ "stop": 2,
+ "text": "ostbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from hauptbahnhof to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i go from garching forschungszentrum to prinzregentenplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "prinzregentenplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from mangfallplatz to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "mangfallplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to hohenlindenerstraße",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "hohenlindenerstraße"
+ }
+ ]
+ },
+ {
+ "text": "harthaus to hackerbrücke",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 0,
+ "stop": 0,
+ "text": "harthaus"
+ },
+ {
+ "entity": "StationDest",
+ "start": 2,
+ "stop": 2,
+ "text": "hackerbrücke"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from feldmoching to garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "feldmoching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "from marienplatz to petershausen",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "petershausen"
+ }
+ ]
+ },
+ {
+ "text": "when is the train from garching to marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "neufahrn to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 0,
+ "stop": 0,
+ "text": "neufahrn"
+ },
+ {
+ "entity": "StationDest",
+ "start": 2,
+ "stop": 2,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from mangfallplatz to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "mangfallplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to hohenlindenerstr",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "hohenlindenerstr"
+ }
+ ]
+ },
+ {
+ "text": "when is the next bus from garching forschungzentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "garching forschungzentrum"
+ }
+ ]
+ },
+ {
+ "text": "how do i get from spitzingplatz to poccistraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "spitzingplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "poccistraße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching forschungszentrum to marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from klinkum to marienplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "klinkum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "how to get from alte heide to marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 5,
+ "text": "alte heide"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "next train from muenchen freicheit",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 4,
+ "text": "muenchen freicheit"
+ }
+ ]
+ },
+ {
+ "text": "depart in garching, i assume",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 2,
+ "stop": 2,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next u-bahn depart at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "u-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 9,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "the next bus from garching forschungzentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 2,
+ "stop": 2,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 1,
+ "stop": 1,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 5,
+ "text": "garching forschungzentrum"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in alte heide?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "alte heide"
+ }
+ ]
+ },
+ {
+ "text": "or depart from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "hello munich city bot! how do i get from münchner freiheit to scheidplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 10,
+ "stop": 11,
+ "text": "münchner freiheit"
+ },
+ {
+ "entity": "StationDest",
+ "start": 13,
+ "stop": 13,
+ "text": "scheidplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching forschungszentrum to prinzregentenplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "prinzregentenplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from neufahrn to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "neufahrn"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "take me to the airport",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "airport"
+ }
+ ]
+ },
+ {
+ "text": "when does the next u6 leave from garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Line",
+ "start": 4,
+ "stop": 4,
+ "text": "u6"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how i can get from munchner freiheit to nordfriedhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "munchner freiheit"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "nordfriedhof"
+ }
+ ]
+ },
+ {
+ "text": "from harthaus to hackerbrücke",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "harthaus"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "hackerbrücke"
+ }
+ ]
+ },
+ {
+ "text": "when is the train from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "what is the next train from münchner freiheit",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "münchner freiheit"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from theresienstrasse to garching forschungszentrum",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "theresienstrasse"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from münchner freiheit to odeonsplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "münchner freiheit"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "from garching to hauptbahnhof",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to odeonsplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "start: neufahrn end:garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 2,
+ "stop": 2,
+ "text": "neufahrn"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from studentenstadt to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "studentenstadt"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the next bus from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "take me from hauptbahnhof to odeonsplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "what's the shortest connection between quiddestraße and odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 4,
+ "stop": 4,
+ "text": "shortest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "what is the cheapest connection between quiddestraße and hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "cheapest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "what's the shortest way between hauptbahnhof and odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 4,
+ "stop": 4,
+ "text": "shortest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to münchner freiheit as fast as possible?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 10,
+ "stop": 10,
+ "text": "fast"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "münchner freiheit"
+ }
+ ]
+ },
+ {
+ "text": "what's the cheapest way from neuperlach süd to lehel?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 4,
+ "stop": 4,
+ "text": "cheapest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "neuperlach süd"
+ },
+ {
+ "entity": "StationDest",
+ "start": 10,
+ "stop": 10,
+ "text": "lehel"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from neuperlach zentrum to karlsplatz as fast as possible?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 10,
+ "stop": 10,
+ "text": "fast"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "neuperlach zentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "karlsplatz"
+ }
+ ]
+ },
+ {
+ "text": "could you give me the fastest connection between brudermühlstraße and alte heide?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 5,
+ "stop": 5,
+ "text": "fastest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 8,
+ "stop": 8,
+ "text": "brudermühlstraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 10,
+ "stop": 11,
+ "text": "alte heide"
+ }
+ ]
+ },
+ {
+ "text": "is there a train from neuperlach zentrum to garching at 3 pm?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "neuperlach zentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "can you find a connection from olympiazentrum to lehel at 2 pm?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "olympiazentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "lehel"
+ }
+ ]
+ },
+ {
+ "text": "i need a connection from harras to karl-preis-platz at 8 am.",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "harras"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 11,
+ "text": "karl-preis-platz"
+ }
+ ]
+ },
+ {
+ "text": "in need to be at hauptbahnhof at 1 pm, can you search a connection from garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 16,
+ "stop": 17,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "i need to be in garching at 9",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "can i take a bus from quiddestraße to hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "can you find the shortest way from moosfeld to milbertshofen?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 4,
+ "stop": 4,
+ "text": "shortest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "moosfeld"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "milbertshofen"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to neuperlach süd from garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 8,
+ "stop": 9,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 6,
+ "text": "neuperlach süd"
+ }
+ ]
+ },
+ {
+ "text": "can you find a bus from quiddestraße to lehel?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "lehel"
+ }
+ ]
+ },
+ {
+ "text": "is there a tram from karlsplatz to lehel?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "tram"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "karlsplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "lehel"
+ }
+ ]
+ },
+ {
+ "text": "is there a bus from garching to moosach at around 5?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "moosach"
+ }
+ ]
+ },
+ {
+ "text": "is there a bus from odeonsplatz to hauptbahnhof at 3 pm?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "odeonsplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "can you tell me the cheapest way from garching forschungszentrum to quiddestraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 5,
+ "stop": 5,
+ "text": "cheapest"
+ },
+ {
+ "entity": "StationStart",
+ "start": 8,
+ "stop": 9,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 11,
+ "stop": 11,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to quiddestraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus leaves from hauptbahnhof?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from kurt-eisner-straße to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 9,
+ "text": "kurt-eisner-straße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 11,
+ "stop": 11,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when the next train in garching,forschungszentrum is leaving?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 2,
+ "stop": 2,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 7,
+ "text": "garching,forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "what is the next connection from garching forschungszentrum to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from mossach to garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "mossach"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching forschungszentrum to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching, forschungszentrum to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 7,
+ "text": "garching, forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching forschungszentrum to kurt-eisner-straße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 12,
+ "text": "kurt-eisner-straße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to boltzmannstraße from quiddestraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "boltzmannstraße"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train departs from quiddestraße?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "when the next train in garching forschungszentrum is leaving?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 2,
+ "stop": 2,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "when is the next u6 leaving from garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Line",
+ "start": 4,
+ "stop": 4,
+ "text": "u6"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train leave from garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "when is the next u6?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Line",
+ "start": 4,
+ "stop": 4,
+ "text": "u6"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ }
+ ]
+ },
+ {
+ "text": "when is the next subway leaving from garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "subway"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when the next train in garching is leaving?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 2,
+ "stop": 2,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train leaving in garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train leaves from odeonsplatz?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train leaves from quiddestraße?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus leaves at garching forschungszentrum?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train leaves?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus leave in garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next s-bahn leaves from hauptbahnhof?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "s-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 9,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "when does the next subway departes from odeonsplatz?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "subway"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "show me the next bus from garching!",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next tram starts from hauptbahnhof?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "tram"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "when will the next u-bahn depart from garching forschungszentrum?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 6,
+ "text": "u-bahn"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 9,
+ "stop": 10,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "show me the next bus from michaelibad.",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "michaelibad"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train starts at sendlinger tor?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "sendlinger tor"
+ }
+ ]
+ },
+ {
+ "text": "hey bot, when does the next bus starts at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 7,
+ "stop": 7,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 6,
+ "stop": 6,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 10,
+ "stop": 10,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus leaves at garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the bus from quiddestraße?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "when can i get a bus at mariahilfplatz?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 5,
+ "stop": 5,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "mariahilfplatz"
+ }
+ ]
+ },
+ {
+ "text": "when does the next bus leaves at romanplatz?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "romanplatz"
+ }
+ ]
+ },
+ {
+ "text": "when does the bus to röblingweg starts?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "bus"
+ },
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "röblingweg"
+ }
+ ]
+ },
+ {
+ "text": "next bus from quiddestraße?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 1,
+ "stop": 1,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 0,
+ "stop": 0,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 3,
+ "stop": 3,
+ "text": "quiddestraße"
+ }
+ ]
+ },
+ {
+ "text": "when is the next bus leaving from garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the train leaving in garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the train leaving in garching?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 3,
+ "stop": 3,
+ "text": "train"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "when is adrians next subway leaving at garching forschungszentrum?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "subway"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from olympiazentrum to hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "olympiazentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from quiddestraße to boltzmannstraße?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "quiddestraße"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "boltzmannstraße"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from moosach to garching forschungszentrum?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "moosach"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "can you give me a connection from garching to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 9,
+ "stop": 9,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when comes the next train",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in nordfriedhof",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "nordfriedhof"
+ }
+ ]
+ },
+ {
+ "text": "when does the next train come at garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train from nordfriedhof to garching forschungszentrum",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "nordfriedhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 9,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "i want to travel from garching to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to sendlinger tor?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 6,
+ "text": "sendlinger tor"
+ }
+ ]
+ },
+ {
+ "text": "how do i get to untere straussäcker?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 6,
+ "text": "untere straussäcker"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to sendlinger tor?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 8,
+ "text": "sendlinger tor"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garchingto garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garchingto"
+ },
+ {
+ "entity": "StationDest",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train from garching",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how do i get from marienplatz zu garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "marienplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get to milbertshofen from garching?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 7,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 5,
+ "stop": 5,
+ "text": "milbertshofen"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train to garching",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "StationDest",
+ "start": 6,
+ "stop": 6,
+ "text": "garching"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to milbertshofen?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "milbertshofen"
+ }
+ ]
+ },
+ {
+ "text": "when does the next rocket leaves from garching forschungszentrum?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "rocket"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 8,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "connection from untere straßäcker 21 to kieferngarten",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 2,
+ "stop": 4,
+ "text": "untere straßäcker 21"
+ },
+ {
+ "entity": "StationDest",
+ "start": 6,
+ "stop": 6,
+ "text": "kieferngarten"
+ }
+ ]
+ },
+ {
+ "text": "how to get from untere strassäcker 21 to frötmaning",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 6,
+ "text": "untere strassäcker 21"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "frötmaning"
+ }
+ ]
+ },
+ {
+ "text": "how to get from untere strassaecker 21 to frötmaning",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 6,
+ "text": "untere strassaecker 21"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "frötmaning"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train from untere straßaecker 21 to kieferngarten",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 8,
+ "text": "untere straßaecker 21"
+ },
+ {
+ "entity": "StationDest",
+ "start": 10,
+ "stop": 10,
+ "text": "kieferngarten"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train from untere straßaecker 21, garching to kieferngarten",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 7,
+ "stop": 10,
+ "text": "straßaecker 21, garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 12,
+ "stop": 12,
+ "text": "kieferngarten"
+ }
+ ]
+ },
+ {
+ "text": "from garching to perlach",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "perlach"
+ }
+ ]
+ },
+ {
+ "text": "how to get from garching to perlach?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 4,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 6,
+ "stop": 6,
+ "text": "perlach"
+ }
+ ]
+ },
+ {
+ "text": "how to get from bonnerplatz to freimann",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 4,
+ "stop": 4,
+ "text": "bonnerplatz"
+ },
+ {
+ "entity": "StationDest",
+ "start": 6,
+ "stop": 6,
+ "text": "freimann"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in nordfriedhof?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 6,
+ "text": "nordfriedhof"
+ }
+ ]
+ },
+ {
+ "text": "when is the next train in münchner freiheit?",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "train"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "münchner freiheit"
+ }
+ ]
+ },
+ {
+ "text": "connection from hauptbahnhof to odeonsplatz?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 2,
+ "stop": 2,
+ "text": "hauptbahnhof"
+ },
+ {
+ "entity": "StationDest",
+ "start": 4,
+ "stop": 4,
+ "text": "odeonsplatz"
+ }
+ ]
+ },
+ {
+ "text": "how do i get from olympia einkaufszentrum to hauptbahnhof?",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 6,
+ "text": "olympia einkaufszentrum"
+ },
+ {
+ "entity": "StationDest",
+ "start": 8,
+ "stop": 8,
+ "text": "hauptbahnhof"
+ }
+ ]
+ },
+ {
+ "text": "when is the next bus in garching forschungszentrum",
+ "intent": "DepartureTime",
+ "entities": [
+ {
+ "entity": "Vehicle",
+ "start": 4,
+ "stop": 4,
+ "text": "bus"
+ },
+ {
+ "entity": "Criterion",
+ "start": 3,
+ "stop": 3,
+ "text": "next"
+ },
+ {
+ "entity": "StationStart",
+ "start": 6,
+ "stop": 7,
+ "text": "garching forschungszentrum"
+ }
+ ]
+ },
+ {
+ "text": "how can i get from garching to marienplatz",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 5,
+ "stop": 5,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 7,
+ "stop": 7,
+ "text": "marienplatz"
+ }
+ ]
+ },
+ {
+ "text": "from garching to studentenstadt",
+ "intent": "FindConnection",
+ "entities": [
+ {
+ "entity": "StationStart",
+ "start": 1,
+ "stop": 1,
+ "text": "garching"
+ },
+ {
+ "entity": "StationDest",
+ "start": 3,
+ "stop": 3,
+ "text": "studentenstadt"
+ }
+ ]
+ }
+ ]
+}
diff --git a/BotSharp.WebHost/App_Data/DbInitializer/Agents/agents.json b/BotSharp.WebHost/App_Data/DbInitializer/Agents/agents.json
index 34f854ad..4a3e46f4 100644
--- a/BotSharp.WebHost/App_Data/DbInitializer/Agents/agents.json
+++ b/BotSharp.WebHost/App_Data/DbInitializer/Agents/agents.json
@@ -16,7 +16,7 @@
},
{
"Id": "bff7605c-3db5-44dc-9ba7-1c9be2832318",
- "Name": "Airport",
+ "Name": "Chatbot",
"UserId": "8da9e1e0-42dc-420a-8016-79b04c1297d0",
"ClientAccessToken": "6ba8a06865944f14981ce18d229283f5",
"DeveloperAccessToken": "f12fbdb0da5a4616b18fa7582d32f6e3",
diff --git a/BotSharp.WebHost/BotSharp.WebHost.csproj b/BotSharp.WebHost/BotSharp.WebHost.csproj
index 757b271d..055b5818 100644
--- a/BotSharp.WebHost/BotSharp.WebHost.csproj
+++ b/BotSharp.WebHost/BotSharp.WebHost.csproj
@@ -5,6 +5,21 @@
Portable;win10-x64;centos.7-x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -57,7 +72,6 @@
-
diff --git a/BotSharp.WebHost/Settings/app.json b/BotSharp.WebHost/Settings/app.json
index e60729fd..9ea54790 100644
--- a/BotSharp.WebHost/Settings/app.json
+++ b/BotSharp.WebHost/Settings/app.json
@@ -1,4 +1,5 @@
{
"Assemblies": "BotSharp.Core",
- "BotPlatform": "BotSharpAi"
+ "BotPlatform": "BotSharpAi",
+ "Version": "0.1.0"
}
diff --git a/BotSharp.WebHost/Settings/bot.json b/BotSharp.WebHost/Settings/bot.json
index b6924bd2..3e721a5e 100644
--- a/BotSharp.WebHost/Settings/bot.json
+++ b/BotSharp.WebHost/Settings/bot.json
@@ -9,6 +9,11 @@
"SpaCyProvider": {
"Url": "http://10.2.21.200:5005"
},
- "Pipe": "SpaCyTokenizer, SpaCyTagger, CRFsuiteEntityRecognizer"
+ "Pipe": "SpaCyTokenizer, CRFsuiteEntityRecognizer, FasttextClassifier",
+ "CRFsuiteEntityRecognizer": {
+ "fields": "y w pos chk",
+ "uniFeatures": "w wl pos chk shape shaped type p1 p2 p3 p4 s1 s2 s3 s4 2d 4d d&a d&- d&/ d&, d&. up iu au al ad ao cu cl ca cd cs",
+ "biFeatures": "w pos chk shaped type"
+ }
}
}
diff --git a/BotSharp.WebHost/Startup.cs b/BotSharp.WebHost/Startup.cs
index 140496da..0518ebe5 100644
--- a/BotSharp.WebHost/Startup.cs
+++ b/BotSharp.WebHost/Startup.cs
@@ -16,6 +16,8 @@ using Swashbuckle.AspNetCore.Swagger;
using BotSharp.Core.Engines.BotSharp;
using System.Collections.Generic;
using Newtonsoft.Json;
+using DotNetToolkit.JwtHelper;
+using BotSharp.Core.Agents;
namespace BotSharp.WebHost
{
@@ -31,6 +33,7 @@ namespace BotSharp.WebHost
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
+ services.AddJwtAuth(Configuration);
services.AddMvc(options =>
{
@@ -43,6 +46,18 @@ namespace BotSharp.WebHost
services.AddSwaggerGen(c =>
{
+ c.AddSecurityDefinition("Bearer", new ApiKeyScheme()
+ {
+ In = "header",
+ Description = "Please insert JWT with Bearer schema. Example: \"Authorization: Bearer {token}\"",
+ Name = "Authorization",
+ Type = "apiKey"
+ });
+
+ c.AddSecurityRequirement(new Dictionary> {
+ { "Bearer", Enumerable.Empty() },
+ });
+
var info = Configuration.GetSection("Swagger").Get();
c.SwaggerDoc(info.Version, info);
@@ -74,10 +89,7 @@ namespace BotSharp.WebHost
app.UseDefaultFiles();
app.UseStaticFiles();
- app.UseSwagger(c =>
- {
-
- });
+ app.UseSwagger();
app.UseSwaggerUI(c =>
{
var info = Configuration.GetSection("Swagger").Get();
@@ -95,8 +107,15 @@ namespace BotSharp.WebHost
app.Use(async (context, next) =>
{
string token = context.Request.Headers["Authorization"];
- if (string.IsNullOrWhiteSpace(token))
+ if (!string.IsNullOrWhiteSpace(token) && (token = token.Split(' ').Last()).Length == 32)
{
+ var config = (IConfiguration)AppDomain.CurrentDomain.GetData("Configuration");
+ context.Request.Headers["ClientAccessToken"] = token;
+
+ var dc = new DefaultDataContextLoader().GetDefaultDc();
+ var userId = dc.Table().FirstOrDefault(x => x.ClientAccessToken == token)?.UserId;
+
+ context.Request.Headers["Authorization"] = "Bearer " + JwtToken.GenerateToken(config, userId);
}
await next.Invoke();
@@ -114,51 +133,6 @@ namespace BotSharp.WebHost
loader.Env = env;
loader.Config = Configuration;
loader.Load();
-
- /*Runcmd();
- var ai = new BotSharpAi();
- ai.LoadAgent("6a9fd374-c43d-447a-97f2-f37540d0c725");
- ai.Train();*/
- }
-
- public void Runcmd ()
- {
- string cmd = "/home/bolo/Desktop/BotSharp/TrainingFiles/crfsuite learn -m /home/bolo/Desktop/BotSharp/TrainingFiles/bolo.model /home/bolo/Desktop/BotSharp/TrainingFiles/1.txt";
- System.Diagnostics.Process p = new System.Diagnostics.Process();
- p.StartInfo.FileName = "sh";
- p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
- p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
- p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
- p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
- p.StartInfo.CreateNoWindow = false;//不显示程序窗口
- p.Start();//启动程序
-
- //向cmd窗口发送输入信息
- p.StandardInput.WriteLine(cmd + "&exit");
-
- p.StandardInput.AutoFlush = false;
- //p.StandardInput.WriteLine("exit");
- //向标准输入写入要执行的命令。这里使用&是批处理命令的符号,表示前面一个命令不管是否执行成功都执行后面(exit)命令,如果不执行exit命令,后面调用ReadToEnd()方法会假死
- //同类的符号还有&&和||前者表示必须前一个命令执行成功才会执行后面的命令,后者表示必须前一个命令执行失败才会执行后面的命令
-
-
-
- //获取cmd窗口的输出信息
- string output = p.StandardOutput.ReadToEnd();
-
- //StreamReader reader = p.StandardOutput;
- //string line=reader.ReadLine();
- //while (!reader.EndOfStream)
- //{
- // str += line + " ";
- // line = reader.ReadLine();
- //}
-
- p.WaitForExit();//等待程序执行完退出进程
- p.Close();
-
-
- Console.WriteLine(output);
}
}
}
\ No newline at end of file
diff --git a/README.md b/README.md
index 4a61e83c..b23b17e1 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
### The Open Source AI Chatbot Platform Builder for Enterprise
###
-**BotSharp** is an open source AI chatbot platform builder not only a bot builder, it's a complete out of box toolkit for building up a functional chabot platform which utilize aritifical intelligence. It's witten in C# running on .Net Core that is full cross-platform framework. C# is a enterprise grade programming language which is widely used to code business logic in information management related system. BotSharp adopts machine learning algrithm in C/C++ interfaces directly which skips the python interfaces. That will facilitate the feature of the typed language C#, and be more easier when refactoring code in system scope.
+**BotSharp** is an open source AI chatbot platform builder's framework. It's not only a bot builder but also a complete out of box toolkit for building up a functional chabot platform which utilize aritifical intelligence. It's witten in C# running on .Net Core that is full cross-platform framework. C# is a enterprise grade programming language which is widely used to code business logic in information management related system. BotSharp adopts machine learning algrithm in C/C++ interfaces directly which skips the python interfaces. That will facilitate the feature of the typed language C#, and be more easier when refactoring code in system scope.
Why we do this? because we all know python is not friendly programming language for enterprise developers, it's not only because it's low performance but also it's a type weak language, it will be a disater if you use python to build your bussiness system.