parseCfgGrammar
Parse context-free grammar (CFG) from text format.Parameters
Grammar rules in text format. Each rule has the form:
- Left-hand side: Single nonterminal (uppercase, e.g.,
S,NP,VP) - Right-hand side: Space-separated symbols
- Nonterminals: Uppercase identifiers
- Terminals: Quoted strings (
'word'or"word")
- Multiple alternatives separated by
| - Comments start with
#
Start symbol for parsing. Defaults to the left-hand side of the first rule.
Returns
Parsed grammar object with:startSymbol: string - Grammar start symbolproductions: CfgProduction[] - Array of productions, each with:lhs: string - Left-hand side nonterminalrhs: string[] - Right-hand side symbols
Example
chartParse
Parse tokens using CYK chart parsing algorithm.Parameters
Array of tokens to parse
Parsed CFG grammar from
parseCfgGrammarMaximum number of parse trees to return. Must be at least 1.
Override start symbol from grammar
Returns
Array of parse trees (up tomaxTrees), where each tree has:
label: string - Node label (nonterminal or terminal)children: Array of ParseTree or string - Child nodes or terminal strings
Example
Algorithm
Uses CYK (Cocke-Younger-Kasami) chart parsing:- Converts grammar to Chomsky Normal Form (CNF)
- Builds parse chart bottom-up
- Handles unary chains and binary rules
- Native optimization for recognition
parseTextWithCfg
Parse natural language text using CFG grammar.Parameters
Natural language text to parse
Parsed grammar or grammar text string
Maximum parse trees to return
Override grammar start symbol
Convert tokens to lowercase before parsing
Returns
Array of parse trees. SeechartParse for tree structure.
Example
Processing
- Tokenizes text using word tokenizer
- Filters to alphanumeric tokens
- Normalizes to lowercase (if enabled)
- Parses with
chartParse
Grammar Format
SeeparseCfgGrammar for grammar syntax details.