K Linearizations

This commit is contained in:
prasanth.kolachina
2015-04-27 15:59:25 +00:00
parent a82d8c9ea6
commit fd566e123a

View File

@@ -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;