mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
doc of prob
This commit is contained in:
@@ -12,11 +12,24 @@ Changes in functionality since May 17, 2005, release of GF Version 2.2
|
||||
|
||||
</center>
|
||||
|
||||
1/11 (AR) Yet another method for adding probabilities: append
|
||||
<tt> --# prob Double</tt> to the end of a line defining a function.
|
||||
This can be (1) a <tt>.cf</tt> rule (2) a <tt>fun</tt> rule, or
|
||||
(3) a <tt>lin</tt> rule. The probability is attached to the
|
||||
first identifier on the line.
|
||||
|
||||
<p>
|
||||
|
||||
31/10 (AR) Probabilistic grammars. Probabilities can be used to
|
||||
weight random generation (<tt>gr -prob</tt>) and to rank parse
|
||||
results (<tt>p -prob</tt>). They are read from a separate file
|
||||
(flag <tt>i -probs=File</tt>, format <tt>--# prob Fun Double</tt>)
|
||||
or from the top-level grammar file itself (option <tt>i -prob</tt>).
|
||||
<br>
|
||||
As a by-product, the probabilistic random generation algorithm is
|
||||
available for any context-free abstract syntax. Use the flag
|
||||
<tt>gr -cf<&tt>. This algorithm is much more efficient than the
|
||||
old (more general) one.
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
-- example of probabilistic grammar from Jurafsky & Martin p. 449
|
||||
-- AR 1/11/2005
|
||||
|
||||
PredVP. S ::= NP VP ; --# prob 0.80
|
||||
PredAux. S ::= Aux NP VP ; --# prob 0.15
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
-- Stability : (stable)
|
||||
-- Portability : (portable)
|
||||
--
|
||||
-- > CVS $Date: 2005/11/01 09:10:54 $
|
||||
-- > CVS $Date: 2005/11/01 09:20:09 $
|
||||
-- > CVS $Author: aarne $
|
||||
-- > CVS $Revision: 1.4 $
|
||||
-- > CVS $Revision: 1.5 $
|
||||
--
|
||||
-- Probabilistic abstract syntax. AR 30\/10\/2005
|
||||
--
|
||||
@@ -83,7 +83,7 @@ pProb s = case words s of
|
||||
"--#":"prob":f:p:_ | isDouble p -> [(zIdent f, read p)]
|
||||
f:ps@(g:rest) -> case span (/= "--#") ps of
|
||||
(_,_:"prob":p:_) | isDouble p -> [(zIdent f', readD p)] where
|
||||
f' = if f=="fun" then ident g else ident f
|
||||
f' = if elem f ["fun","lin","data"] then ident g else ident f
|
||||
_ -> []
|
||||
_ -> []
|
||||
where
|
||||
|
||||
Reference in New Issue
Block a user