CFGLib.CNFGrammar.Cyk C# (CSharp) Method

Cyk() public method

public Cyk ( Sentence s ) : double
s Sentence
return double
		public double Cyk(Sentence s) {
			var cyk = new Parsers.CYK.CykParser(this);
			return cyk.ParseGetProbability(s);
		}

Usage Example

Esempio n. 1
0
		public void TestCYK01() {
			var productions = new List<Production> {
				new Production(
					Nonterminal.Of("S"),
					new Sentence { Nonterminal.Of("X"), Nonterminal.Of("X") },
					2
				),
				new Production(
					Nonterminal.Of("X"),
					new Sentence { Nonterminal.Of("X"), Nonterminal.Of("X") },
					2
				),
				new Production(
					Nonterminal.Of("S"),
					new Sentence { Terminal.Of("a") },
					8
				),
				new Production(
					Nonterminal.Of("X"),
					new Sentence { Terminal.Of("a") },
					8
				)
			};

			var g = new CNFGrammar(productions, Nonterminal.Of("S"));
			
			Helpers.AssertNear(0.8, g.Cyk(Sentence.FromLetters("a")));
			Helpers.AssertNear(0.128, g.Cyk(Sentence.FromLetters("aa")));
			Helpers.AssertNear(0.04096, g.Cyk(Sentence.FromLetters("aaa")));
			Helpers.AssertNear(0.016384, g.Cyk(Sentence.FromLetters("aaaa")));
			Helpers.AssertNear(0.007340032, g.Cyk(Sentence.FromLetters("aaaaa")));
		}
All Usage Examples Of CFGLib.CNFGrammar::Cyk