mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 09:32:53 -06:00
K Linearizations
This commit is contained in:
@@ -113,13 +113,13 @@ def printMosesNbestFormat(hypothesisList, sentid=count(1)):
|
|||||||
mosesRepr.append("%d ||| %s ||| NULL ||| %s" %(sid, hypStr, ' '.join(['%.6f'%score for score in hypScores])));
|
mosesRepr.append("%d ||| %s ||| NULL ||| %s" %(sid, hypStr, ' '.join(['%.6f'%score for score in hypScores])));
|
||||||
return '\n'.join(mosesRepr);
|
return '\n'.join(mosesRepr);
|
||||||
|
|
||||||
def getKLinearizations(grammar, tgtlanguage, abstractParsesList):
|
def getKLinearizations(grammar, tgtlanguage, abstractParsesList, K=10):
|
||||||
generator = grammar.languages[tgtlanguage].linearize;
|
generator = grammar.languages[tgtlanguage].linearizeAll;
|
||||||
for parsesBlock in abstractParsesList:
|
for parsesBlock in abstractParsesList:
|
||||||
kBestTrans = [];
|
kBestTrans = [];
|
||||||
for parseprob, parse in parsesBlock:
|
for parseprob, parse in parsesBlock:
|
||||||
#print str(parse);
|
for linstring in generator(parse, n=K):
|
||||||
kBestTrans.append( ((parseprob,), postprocessor( generator(parse) )) );
|
kBestTrans.append( ((parseprob,), postprocessor(linstring)) );
|
||||||
yield kBestTrans;
|
yield kBestTrans;
|
||||||
|
|
||||||
def getKBestParses(grammar, language, K, callbacks=[], serializable=False, sentid=count(1), max_length=50):
|
def getKBestParses(grammar, language, K, callbacks=[], serializable=False, sentid=count(1), max_length=50):
|
||||||
@@ -213,7 +213,7 @@ def pgf_klinearize(args):
|
|||||||
sentIdsList = imap(itemgetter(0), inputSet);
|
sentIdsList = imap(itemgetter(0), inputSet);
|
||||||
parsesBlocks = map(itemgetter(1), inputSet);
|
parsesBlocks = map(itemgetter(1), inputSet);
|
||||||
|
|
||||||
for transBlock in getKLinearizations(grammar, args.tgtlang, parsesBlocks):
|
for transBlock in getKLinearizations(grammar, args.tgtlang, parsesBlocks, args.K):
|
||||||
strTrans = str(outputPrinter(transBlock, sentIdsList));
|
strTrans = str(outputPrinter(transBlock, sentIdsList));
|
||||||
if strTrans:
|
if strTrans:
|
||||||
print >>args.outputstream, strTrans;
|
print >>args.outputstream, strTrans;
|
||||||
|
|||||||
Reference in New Issue
Block a user