public static IEnumerable <TransitionEmissions> BuildTransitionEmissionsFromBrownText() { var assembly = Assembly.GetExecutingAssembly(); using (var fileStream = assembly.GetManifestResourceStream(Brown_Ca01File)) { if (fileStream == null) { throw new InvalidOperationException("brown-ca01.txt should exist. It doesn't, so you're seeing this error"); } using (var stringReader = new StreamReader(fileStream)) { string line = stringReader.ReadLine(); while (line != null) { var transitionEmissions = new TransitionEmissions(); foreach (var tuple in ReadLine(line)) { transitionEmissions.AddTransitionEmission(tuple.Item1, tuple.Item2); } yield return(transitionEmissions); line = stringReader.ReadLine(); } } } }
public void ExceptionThrownWhenEmissionIsNull() { // arrange var transitionEmission = new TransitionEmissions(); // act transitionEmission.AddTransitionEmission(Transition, null); // assert - exception }
public void RecordsAddedWhenAccessedThroughMethod() { // arrange var transitionEmission = new TransitionEmissions(); // act transitionEmission.AddTransitionEmission(Transition, Emission); // assert Assert.AreEqual(1, transitionEmission.Records.Count); Assert.AreEqual(Transition, transitionEmission.Records [0].Transition); Assert.AreEqual(Emission, transitionEmission.Records [0].Emission); }
public void HiddenMarkovModelInstantiatedWithProperTransitionEmissions() { // arrange const string Transition = "noun"; const string Emission = "Cardio"; var transitionEmissions = new TransitionEmissions(); transitionEmissions.AddTransitionEmission(Transition, Emission); var transitionEmissionsList = new List <TransitionEmissions> (); transitionEmissionsList.Add(transitionEmissions); var hmm = new HiddenMarkovModelBuilder(transitionEmissionsList).Build(); // act var result = hmm.GetEmissions(new[] { Transition }); // assert Assert.AreEqual(1, result.Count()); Assert.AreEqual(Emission, result.First().Emissions.First()); }
private List <TransitionEmissions> BuildTestTransitionEmissions() { // http://nlp.stanford.edu:8080/parser/index.jsp - Thank You! // My dog also likes eating sausage. // My/PRP$ dog/NN also/RB likes/VBZ eating/VBG sausage/NN ./. var firstTransitionEmissions = new TransitionEmissions(); firstTransitionEmissions.AddTransitionEmission("PRP$", "My"); firstTransitionEmissions.AddTransitionEmission("NN", "dog"); firstTransitionEmissions.AddTransitionEmission("RB", "also"); firstTransitionEmissions.AddTransitionEmission("VBZ", "likes"); firstTransitionEmissions.AddTransitionEmission("VBG", "eating"); firstTransitionEmissions.AddTransitionEmission("NN", "sausage"); firstTransitionEmissions.AddTransitionEmission(".", "."); // My/PRP$ dog/NN likes/VBZ eating/VBG turkey/NN ./. var secondTransitionEmissions = new TransitionEmissions(); secondTransitionEmissions.AddTransitionEmission("PRP$", "My"); secondTransitionEmissions.AddTransitionEmission("NN", "dog"); secondTransitionEmissions.AddTransitionEmission("VBZ", "likes"); secondTransitionEmissions.AddTransitionEmission("VBG", "eating"); secondTransitionEmissions.AddTransitionEmission("NN", "turkey"); secondTransitionEmissions.AddTransitionEmission(".", "."); // My/PRP$ dog/NN likes/VBZ walking/VBG ./. var thirdTransitionEmissions = new TransitionEmissions(); thirdTransitionEmissions.AddTransitionEmission("PRP$", "My"); thirdTransitionEmissions.AddTransitionEmission("NN", "dog"); thirdTransitionEmissions.AddTransitionEmission("VBZ", "likes"); thirdTransitionEmissions.AddTransitionEmission("VBG", "walking"); thirdTransitionEmissions.AddTransitionEmission(".", "."); return(new List <TransitionEmissions> { firstTransitionEmissions, secondTransitionEmissions, thirdTransitionEmissions }); }