⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pfsg-to-dot.gawk

📁 这是一款很好用的工具包
💻 GAWK
字号:
#!/usr/local/bin/gawk -f## pfsg-to-dot --#	Generate dot(1) graph description from PFSG## usage: pfsg-to-dot [show_probs=1] [show_nums=1] file.pfsg > file.dot## $Header: /home/srilm/devel/utils/src/RCS/pfsg-to-dot.gawk,v 1.5 2003/07/10 21:09:15 stolcke Exp $#BEGIN {	show_probs = 0;	show_logs = 0;	show_nums = 0;	in_a_pfsg = 0;	logscale = 10000.5;}function bytelog2prob(p) {	x = p / logscale;	if (x < -7e2) {	    return 0;	} else {	    return exp(x);	}}function bytelog2log10(p) {	return p / logscale / 2.30258509299404568402;}$1 == "name" {	name = $2;	# handle repeated PFSGs in the same file	if (in_a_pfsg)	       print "} digraph \"" name "\" {";	else	       print "digraph \"" name "\" {";	  	print "rankdir = LR";	dotrans = 0;	in_a_pfsg = 1;}function node_label(w, i) {	if (show_nums) {		return w "\\n" i;	} else {		return w;	}} $1 == "nodes" {	numnodes = $2;	for (i = 0; i < numnodes; i ++) {		print "\tnode" i " [label=\"" $(i + 3) \				(show_nums ? "\\n" i : "") "\"];"	}}$1 == "initial" {	i = $2;#	print "\tnode" i " [label=\"START\"];"}$1 == "final" {	i = $2;#	print "\tnode" i " [label=\"END\"];"}$1 == "transitions" {	dotrans = 1;	next;}dotrans && NF == 3 {	from = $1;	to = $2;	prob = $3;	print "\tnode" from " -> node" to \		(!(show_probs || show_logs) ? "" :			" [label=\"" (show_logs ? bytelog2log10(prob) :						bytelog2prob(prob)) "\"]") ";"}END {	print "}"}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -