ngram-merge - merge N-gram counts


ngram-merge [ -help ] [ -write outfile ] [ -float-counts ] \
	[ -- ] infile1 infile2 ...


ngram-merge reads two or more lexicographically sorted N-gram count files (as produced by ngram-count -sort) and outputs the merged, sorted counts. The output is thus suitable for subsequent merging steps.

The input format consists of one N-gram count per line,

	word1 word2 ... wordn count

The lines must be sorted lexicographically on the words, leftmost first. The input may contain N-grams of different lengths.

Each filename argument can be a plain ASCII count file, or a compressed file (name ending in .Z or .gz), or ``-'' to indicate stdin/stdout.

ngram-merge is recommended in cases where the full counts would far exceed available real memory. Although an arbitrary number of input count files is accepted, it is best to use the program as follows. First, partition the input text into the largest chunks so that ngram-count can run in real memory. Then merge the resulting sorted counts using ngram-merge pairwise, and continue doing so in a binary tree pattern until a single count file containing all N-grams remains. This procedure is automated by the make-batch-counts and merge-batch-counts scripts.


Each filename argument can be an ASCII file, or a compressed file (name ending in .Z or .gz), or ``-'' to indicate stdin/stdout.

Print option and usage summary.
Print version information.
-write outfile
Write merged counts to outfile, instead of standard output.
Process counts as floating point numbers. By default counts are assumed to be unsigned integers.
Indicates the end of options, in case the first input filename begins with ``-''.


ngram-count(1), ngram(1), training-scripts(1).


Andreas Stolcke <>
Copyright (c) 1995-2004 SRI International