100 lines
No EOL
4.9 KiB
HTML
100 lines
No EOL
4.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>CLiki: CL-EARLEY-PARSER</title>
|
|
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
|
|
href="https://www.cliki.net/site/feed/article.atom?title=CL-EARLEY-PARSER">
|
|
<link rel="stylesheet" href="static/css/style.css">
|
|
<link rel="stylesheet" href="static/css/colorize.css">
|
|
</head>
|
|
|
|
<body>
|
|
<span class="hidden">CLiki - CL-EARLEY-PARSER</span>
|
|
<div id="content"><div id="content-area"><div id="article-title">CL-EARLEY-PARSER</div><div id="article">The Earley parser depends on a grammar description (currently in Backus-Naur form) and a lexicon (currently in a plist like form). Based on these, the EARLEY-PARSE function performs a syntax analysis on a sentence (parses it). The result is a listing of parse charts, that can easily be converted to a list of syntax-trees in s-expression form.<p>It is available on <a href="https://github.com/oyvinht/cl-earley-parser">Github</a>.<p>Here is how to use it:<p><pre>
|
|
CL-USER> (require :asdf)
|
|
:ASDF
|
|
("ASDF")
|
|
CL-USER> (asdf:oos 'asdf:load-op 'cl-earley-parser)
|
|
NIL
|
|
CL-USER> (use-package :earley-parser)
|
|
T
|
|
CL-USER> (earley-parse "Book that flight"
|
|
(load-bnf-grammar "./examples/grammar.txt")
|
|
(load-lexicon "./examples/lexicon.txt"))
|
|
#CHART-LISTING:
|
|
0. #CHART:
|
|
#{G -> . S [0,0]}
|
|
#{S -> . NP VP [0,0]}
|
|
#{S -> . VP [0,0]}
|
|
#{S -> . Aux NP VP [0,0]}
|
|
#{NP -> . det nominal [0,0]}
|
|
#{NP -> . proper-noun [0,0]}
|
|
#{VP -> . verb [0,0]}
|
|
#{VP -> . verb NP [0,0]}
|
|
1. #CHART:
|
|
#{verb -> Book . [0,1]}
|
|
#{VP -> verb . [0,1]}
|
|
#{VP -> verb . NP [0,1]}
|
|
#{S -> VP . [0,1]}
|
|
#{NP -> . det nominal [1,1]}
|
|
#{NP -> . proper-noun [1,1]}
|
|
#{G -> S . [0,1]}
|
|
2. #CHART:
|
|
#{det -> that . [1,2]}
|
|
#{NP -> det . nominal [1,2]}
|
|
#{nominal -> . noun [2,2]}
|
|
#{nominal -> . noun nominal [2,2]}
|
|
3. #CHART:
|
|
#{noun -> flight . [2,3]}
|
|
#{nominal -> noun . [2,3]}
|
|
#{nominal -> noun . nominal [2,3]}
|
|
#{NP -> det nominal . [1,3]}
|
|
#{nominal -> . noun [3,3]}
|
|
#{nominal -> . noun nominal [3,3]}
|
|
#{VP -> verb NP . [0,3]}
|
|
#{S -> VP . [0,3]}
|
|
#{G -> S . [0,3]}
|
|
|
|
CL-USER> (chart-listing->trees *)
|
|
(("S" ("VP" ("verb" "Book") ("NP" ("det" "that") ("nominal" ("noun" "flight"))))))
|
|
CL-USER>
|
|
</pre><p><hr>
|
|
<a href="Natural Language Processing.html" class="category">Natural Language Processing</a></div></div>
|
|
<div id="footer" class="buttonbar"><ul><li><a href="CL-EARLEY-PARSER.html">Current version</a></li>
|
|
<li><a href="https://www.cliki.net/site/history?article=CL-EARLEY-PARSER">History</a></li>
|
|
<li><a href="https://www.cliki.net/site/backlinks?article=CL-EARLEY-PARSER">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=CL-EARLEY-PARSER&from-revision=3689153339">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
|
|
</div>
|
|
<div id="header-buttons" class="buttonbar">
|
|
<ul>
|
|
<li><a href="https://www.cliki.net/">Home</a></li>
|
|
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
|
|
<li><a href="CLiki.html">About</a></li>
|
|
<li><a href="Text Formatting.html">Text Formatting</a></li>
|
|
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
|
|
</ul>
|
|
<div id="search">
|
|
<form action="https://www.cliki.net/site/search">
|
|
<label for="search_query" class="hidden">Search CLiki</label>
|
|
<input type="text" name="query" id="search_query" value="" />
|
|
<input type="submit" value="search" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div id="pageheader">
|
|
<div id="header">
|
|
<span id="logo">CLiki</span>
|
|
<span id="slogan">the common lisp wiki</span>
|
|
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
|
|
<label for="login_name" class="hidden">Account name</label>
|
|
<input type="text" name="name" id="login_name" class="login_input" />
|
|
<label for= "login_password" class="hidden">Password</label>
|
|
<input type="password" name="password" id="login_password" class="login_input" />
|
|
<input type="submit" name="login" value="login" id="login_submit" /><br />
|
|
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
|
|
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body></html> |