% !Mode:: "TeX:UTF-8" % !TEX encoding = UTF-8 Unicode \begin{tikzpicture} \begin{scope} %%%%%%%%%%%左侧源语言 {\small \node [anchor=north west] (dictionarylabel) at (0,0) {源语言}; \node [anchor=north west] (entry1) at ([xshift=1.0em,yshift=-0.8em]dictionarylabel.south west) {今}; \node [anchor=north west] (entry2) at ([yshift=0.5em]entry1.south west) {天}; \node [anchor=north west] (entry3) at ([yshift=0.1em]entry2.south west) {是}; \node [anchor=north west] (entry4) at ([yshift=0.1em]entry3.south west) {个}; \node [anchor=north west] (entry5) at ([yshift=0.1em]entry4.south west) {好}; \node [anchor=north west] (entry6) at ([yshift=0.1em]entry5.south west) {天}; \node [anchor=north west] (entry7) at ([yshift=0.5em]entry6.south west) {气}; \node [anchor=north west] (entry8) at ([xshift=0.2em,yshift=0.1em]entry7.south west) {!}; \node [anchor=center] (pos00) at ([yshift=0.63em]entry1){}; \node [anchor=center] (pos9) at ([yshift=-1.92em]entry8){}; } \begin{pgfonlayer}{background} { \node[rectangle,fill=yellow!20,inner sep=0.1em] [fit =(pos00) (entry1) (entry2) (entry3) (entry4) (entry5) (entry6)(entry7)(entry8)(pos9)] {}; } \end{pgfonlayer} \end{scope} %%%%%%%%%%%左侧源语言 %%%%%%%%%%%%%%左侧模型 \begin{scope}[xshift=4.0em,yshift=0.5em] \tikzstyle{neuronnode} = [minimum size=0.1em,circle,draw,black,thick,fill=white] \node [anchor=west] (dictionarylabel2) at ([xshift=1.2em]dictionarylabel.east) {\small{模型}}; \node [anchor=center] (pos1) at ([yshift=-1.65em]dictionarylabel2) {}; \node [anchor=center,neuronnode] (neuron00) at ([xshift=-1.5em,yshift=-4.7em]dictionarylabel2) {}; \node [anchor=center,neuronnode] (neuron01) at ([yshift=-1.7em]neuron00) {}; \node [anchor=center,neuronnode] (neuron02) at ([yshift=-1.7em]neuron01) {}; \node [anchor=center,neuronnode] (neuron03) at ([yshift=-1.7em]neuron02) {}; \node [anchor=center,neuronnode] (neuron10) at ([xshift=1.5em,yshift=-1.0em]neuron00) {}; \node [anchor=center,neuronnode] (neuron11) at ([yshift=-1.7em]neuron10) {}; \node [anchor=center,neuronnode] (neuron12) at ([yshift=-1.7em]neuron11) {}; \node [anchor=center,neuronnode] (neuron20) at ([xshift=3em]neuron00) {}; \node [anchor=center,neuronnode] (neuron21) at ([yshift=-1.7em]neuron20) {}; \node [anchor=center,neuronnode] (neuron22) at ([yshift=-1.7em]neuron21) {}; \node [anchor=center,neuronnode] (neuron23) at ([yshift=-1.7em]neuron22) {}; \node [anchor=center] (pos2) at ([yshift=-3.72em]neuron12) {}; \draw[-](neuron00.east) -- (neuron10.west); \draw[-](neuron00.east) -- (neuron11.west); \draw[-](neuron00.east) -- (neuron12.west); \draw[-](neuron01.east) -- (neuron10.west); \draw[-](neuron01.east) -- (neuron11.west); \draw[-](neuron01.east) -- (neuron12.west); \draw[-](neuron02.east) -- (neuron10.west); \draw[-](neuron02.east) -- (neuron11.west); \draw[-](neuron02.east) -- (neuron12.west); \draw[-](neuron03.east) -- (neuron10.west); \draw[-](neuron03.east) -- (neuron11.west); \draw[-](neuron03.east) -- (neuron12.west); \draw[-](neuron10.east) -- (neuron20.west); \draw[-](neuron11.east) -- (neuron20.west); \draw[-](neuron12.east) -- (neuron20.west); \draw[-](neuron10.east) -- (neuron21.west); \draw[-](neuron11.east) -- (neuron21.west); \draw[-](neuron12.east) -- (neuron21.west); \draw[-](neuron10.east) -- (neuron22.west); \draw[-](neuron11.east) -- (neuron22.west); \draw[-](neuron12.east) -- (neuron22.west); \draw[-](neuron10.east) -- (neuron23.west); \draw[-](neuron11.east) -- (neuron23.west); \draw[-](neuron12.east) -- (neuron23.west); \begin{pgfonlayer}{background} { \node[rectangle,fill=gray!20,inner sep=0.1em] [fit = (neuron00) (neuron03) (neuron20) (neuron23)(pos1)(pos2)] {}; } \end{pgfonlayer} \end{scope} %%%%%%%%%%%%%%左侧模型 %%%%%%%%%%%%%%%%%%%预测分布 \begin{scope}[xshift=11.5em] \node [anchor=west] (dictionarylabel3) at ([xshift=9.0em]dictionarylabel.east) {\small{预测分布}}; \node [anchor=center] (pos31) at ([xshift=-5.0em,yshift=-1.77em]dictionarylabel3) {}; \node [anchor=center] (pos32) at ([yshift=-3.5em]pos31) {}; \node [anchor=center] (pos33) at ([xshift=9.5em]pos31) {}; \node [anchor=center] (pos34) at ([yshift=-3.5em]pos33) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=black,inner sep=0.2em,fill=white,drop shadow] [fit =(pos31)(pos32)(pos33)(pos34)] (remark1label3-1) {}; } \end{pgfonlayer} \node [anchor=center] (pos3-21) at ([xshift=-5.0em,yshift=-8.7em]dictionarylabel3) {}; \node [anchor=center] (pos3-22) at ([yshift=-4em]pos3-21) {}; \node [anchor=center] (pos3-23) at ([xshift=9.5em]pos3-21) {}; \node [anchor=center] (pos3-24) at ([yshift=-4em]pos3-23) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=black,inner sep=0.2em,fill=white,drop shadow] [fit =(pos3-21)(pos3-22)(pos3-23)(pos3-24)] (remark1label3-2) {}; } \end{pgfonlayer} \node [anchor=center,minimum height=2.5em,minimum width=1.0em,fill=orange!30] (cy3-11) at ([xshift=-4.6em,yshift=-4.0em]dictionarylabel3) {}; \node [anchor=center,minimum height=2.0em,minimum width=1.0em,fill=blue!30] (cy3-12) at ([xshift=1.5em,yshift=-0.25em]cy3-11) {}; \node [anchor=center,minimum height=3.5em,minimum width=1.0em,fill=black!30] (cy3-13) at ([xshift=1.5em,yshift=0.75em]cy3-12) {}; \node [anchor=center,minimum height=1.0em,minimum width=1.0em,fill=green!30] (cy3-14) at ([xshift=1.5em,yshift=-1.25em]cy3-13) {}; \node [anchor=center,minimum height=1.5em,minimum width=1.0em,fill=yellow!30] (cy3-15) at ([xshift=1.5em,yshift=0.25em]cy3-14) {}; \node [anchor=center,minimum height=0.0em,minimum width=1.0em,fill=gray!30] (cy3-16) at ([xshift=1.5em,yshift=-0.4em]cy3-15) {}; \node [anchor=center] (cy3-17) at ([xshift=1.5em,yshift=1em]cy3-16) {\tiny{$\cdots$}}; %%%%%%%%%%%%%%%%%%%%%%%下方图注 \node [anchor=center,minimum height=0.7em,minimum width=1.0em,fill=orange!30] (cu3-11) at ([yshift=-5.2em]cy3-11) {}; \node [anchor=west] (cu21) at ([xshift=0.0em]cu3-11.east) {\scriptsize{wonderful}}; \node [anchor=center,minimum height=0.7em,minimum width=1.0em,fill=green!30] (cu3-12) at ([xshift=5.5em]cu3-11) {}; \node [anchor=west] (cu22) at ([xshift=0.0em]cu3-12.east) {\scriptsize{brilliant}}; \node [anchor=center,minimum height=0.7em,minimum width=1.0em,fill=blue!30] (cu3-13) at ([yshift=-1.5em]cu3-11) {}; \node [anchor=west] (cu23) at ([xshift=0.0em]cu3-13.east) {\scriptsize{great}}; \node [anchor=center,minimum height=0.7em,minimum width=1.0em,fill=black!30] (cu3-14) at ([yshift=-1.5em]cu3-13) {}; \node [anchor=west] (cu24) at ([xshift=0.0em]cu3-14.east) {\scriptsize{good}}; \node [anchor=center,minimum height=0.7em,minimum width=1.0em,fill=yellow!30] (cu3-15) at ([yshift=-1.5em]cu3-12) {}; \node [anchor=west] (cu25) at ([xshift=0.0em]cu3-15.east) {\scriptsize{sunny}}; \node [anchor=center,minimum height=0.7em,minimum width=1.0em,fill=gray!30] (cu3-16) at ([yshift=-1.5em]cu3-15) {}; \node [anchor=west] (cu26) at ([xshift=0.0em]cu3-16.east) {\scriptsize{what}}; \end{scope} %%%%%%%%%%%%%%%%%%%预测分布 %%%%%%%%%%%%%%%%%%%%%%%解码策略 \begin{scope}[xshift=22.5em] \node [anchor=west] (dictionarylabel4) at ([xshift=20.5em]dictionarylabel.east) {\small{解码策略}}; %%%%%%%%%%%%%%%%%%%底框1 \node [anchor=center] (pos4-11) at ([xshift=-4.5em,yshift=-1.77em]dictionarylabel4) {}; \node [anchor=center] (pos4-12) at ([yshift=-2.5em]pos4-11) {}; \node [anchor=center] (pos4-13) at ([xshift=9.5em]pos4-11) {}; \node [anchor=center] (pos4-14) at ([yshift=-2.5em]pos4-13) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=black,inner sep=0.2em,fill=white,drop shadow] [fit =(pos4-11)(pos4-12)(pos4-13)(pos4-14)] (remark1label41) {}; } \end{pgfonlayer} %%%%%%%%%%%%%%%%%%%底框2 \node [anchor=center] (pos4-212) at ([xshift=-4.5em,yshift=-10.2em]dictionarylabel4) {}; \node [anchor=center] (pos4-222) at ([yshift=-2.5em]pos4-212) {}; \node [anchor=center] (pos4-232) at ([xshift=9.5em]pos4-212) {}; \node [anchor=center] (pos4-242) at ([yshift=-2.5em]pos4-232) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=black,inner sep=0.2em,fill=white,drop shadow] [fit =(pos4-212)(pos4-222)(pos4-232)(pos4-242)] (remark1label42) {}; } \end{pgfonlayer} %%%%%%%%%%%%%%%%%%%底框3 \node [anchor=center] (pos4-313) at ([xshift=-4.5em,yshift=-6em]dictionarylabel4) {}; \node [anchor=center] (pos4-323) at ([yshift=-2.5em]pos4-313) {}; \node [anchor=center] (pos4-333) at ([xshift=9.5em]pos4-313) {}; \node [anchor=center] (pos4-343) at ([yshift=-2.5em]pos4-333) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=black,inner sep=0.2em,fill=white,drop shadow] [fit =(pos4-313)(pos4-323)(pos4-333)(pos4-343)] (remark1label43) {}; } \end{pgfonlayer} %%%%%%%%%%%%束搜索的虚线框1 \node [anchor=center] (pos12red11) at ([xshift=0.2em,yshift=-0.65em]pos4-11) {}; \node [anchor=center] (pos22red11) at ([yshift=-0.85em]pos12red11) {}; \node [anchor=center] (pos32red11) at ([xshift=1.5em]pos12red11) {}; \node [anchor=center] (pos42red11) at ([yshift=-0.85em]pos32red11) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=red,inner sep=0.2em,fill=white,dashed] [fit =(pos12red11)(pos22red11)(pos32red11)(pos42red11)] (remark1labe41-1) {}; } \end{pgfonlayer} %%%%%%%%%%%%%%%%束搜索里面内容 {\scriptsize \node [anchor=center] (cy00) at ([xshift=6.7em,yshift=0.2em]pos4-11) {\tiny{束搜索}}; \node [anchor=center,minimum height=1.8em,minimum width=0.8em,fill=orange!30] (cy11) at ([xshift=-0.0em,yshift=-1.80em]pos4-11) {}; \node [anchor=center,minimum height=1.5em,minimum width=0.8em,fill=blue!30] (cy12) at ([xshift=1.3em,yshift=-0.15em]cy11) {}; \node [anchor=center,minimum height=2.5em,minimum width=0.8em,fill=black!30] (cy13) at ([xshift=1.3em,yshift=0.5em]cy12) {}; \node [anchor=center,minimum height=0.8em,minimum width=0.8em,fill=green!30] (cy14) at ([xshift=1.3em,yshift=-0.85em]cy13) {}; \node [anchor=center,minimum height=1.2em,minimum width=0.8em,fill=yellow!30] (cy15) at ([xshift=1.3em,yshift=0.2em]cy14) {}; \node [anchor=center,minimum height=0.0em,minimum width=0.8em,fill=gray!30] (cy16) at ([xshift=1.3em,yshift=-0.25em]cy15) {}; \node [anchor=center] (cy17) at ([xshift=1.5em,yshift=-0.3em]cy16) {$\cdots$}; \node [anchor=center] (cy18) at ([xshift=1.1em,yshift=1.2em]cy17) {$\Rightarrow$}; \node [anchor=center,minimum height=1.8em,minimum width=0.8em,fill=orange!30] (cy19) at ([xshift=1.1em,yshift=-0.35em]cy18) {}; \node [anchor=center,minimum height=1.5em,minimum width=0.8em,fill=blue!30] (cy110) at ([xshift=1.3em,yshift=-0.15em]cy19) {}; \node [anchor=center,minimum height=2.5em,minimum width=0.8em,fill=black!30] (cy111) at ([xshift=1.3em,yshift=0.5em]cy110) {}; \node [anchor=center,color=red] (cy112) at ([xshift=1.35em,yshift=-1.23em]cy110) {\tiny{$\Uparrow$}}; \node [anchor=center,color=red] (cy113) at ([yshift=-0.55em]cy112) {\tiny{good}}; } %%%%%%%%%%%%束搜索的虚线框2 \node [anchor=center] (pos12red12) at ([xshift=7.65em,yshift=-0.65em]pos4-11) {}; \node [anchor=center] (pos22red12) at ([yshift=-0.85em]pos12red12) {}; \node [anchor=center] (pos32red12) at ([xshift=1.5em]pos12red12) {}; \node [anchor=center] (pos42red12) at ([yshift=-0.85em]pos32red12) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=red,inner sep=0.2em,fill=white,dashed] [fit =(pos12red12)(pos22red12)(pos32red12)(pos42red12)] (remark1label) {}; } \end{pgfonlayer} %%%%%%%%%%%%topk的虚线框1 \node [anchor=center] (pos12-2) at ([xshift=0.20em,yshift=-0.65em]pos4-212) {}; \node [anchor=center] (pos22-2) at ([yshift=-0.85em]pos12-2) {}; \node [anchor=center] (pos32-2) at ([xshift=1.5em]pos12-2) {}; \node [anchor=center] (pos42-2) at ([yshift=-0.85em]pos32-2) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=red,inner sep=0.2em,fill=white,dashed] [fit =(pos12-2)(pos22-2)(pos32-2)(pos42-2)] (remark1label-2) {}; } \end{pgfonlayer} {\scriptsize \node [anchor=center] (cy00-2) at ([xshift=6.7em,yshift=0.2em]pos4-212) {\tiny{TopK}}; \node [anchor=center,minimum height=1.8em,minimum width=0.8em,fill=orange!30] (cy11-2) at ([xshift=0.0em,yshift=-1.8em]pos4-212) {}; \node [anchor=center,minimum height=1.5em,minimum width=0.8em,fill=blue!30] (cy12-2) at ([xshift=1.3em,yshift=-0.15em]cy11-2) {}; \node [anchor=center,minimum height=2.5em,minimum width=0.8em,fill=black!30] (cy13-2) at ([xshift=1.3em,yshift=0.5em]cy12-2) {}; \node [anchor=center,minimum height=0.8em,minimum width=0.8em,fill=green!30] (cy14-2) at ([xshift=1.3em,yshift=-0.85em]cy13-2) {}; \node [anchor=center,minimum height=1.2em,minimum width=0.8em,fill=yellow!30] (cy15-2) at ([xshift=1.3em,yshift=0.2em]cy14-2) {}; \node [anchor=center,minimum height=0.0em,minimum width=0.8em,fill=gray!30] (cy16-2) at ([xshift=1.3em,yshift=-0.25em]cy15-2) {}; \node [anchor=center] (cy17-2) at ([xshift=1.5em,yshift=-0.3em]cy16-2) {$\cdots$}; \node [anchor=center] (cy18-2) at ([xshift=1.1em,yshift=1.2em]cy17-2) {$\Rightarrow$}; \node [anchor=center,minimum height=1.8em,minimum width=0.8em,fill=orange!30] (cy19-2) at ([xshift=1.1em,yshift=-0.35em]cy18-2) {}; \node [anchor=center,minimum height=1.5em,minimum width=0.8em,fill=blue!30] (cy110-2) at ([xshift=1.3em,yshift=-0.15em]cy19-2) {}; \node [anchor=center,minimum height=2.5em,minimum width=0.8em,fill=black!30] (cy111-2) at ([xshift=1.3em,yshift=0.5em]cy110-2) {}; \node [anchor=center,color=red] (cy112-2) at ([xshift=0.0em,yshift=-1.2em]cy110-2) {\tiny{$\Uparrow$}}; \node [anchor=center,color=red] (cy113-2) at ([yshift=-0.65em]cy112-2) {\tiny{wonderful}}; } %%%%%%%%%%%%topk的虚线框2 \node [anchor=center] (pos12red22) at ([xshift=7.65em,yshift=-0.65em]pos4-212) {}; \node [anchor=center] (pos22red22) at ([yshift=-0.85em]pos12red22) {}; \node [anchor=center] (pos32red22) at ([xshift=1.5em]pos12red22) {}; \node [anchor=center] (pos42red22) at ([yshift=-0.85em]pos32red22) {}; \begin{pgfonlayer}{background} { \node[rectangle,draw=red,inner sep=0.2em,fill=white,dashed] [fit =(pos12red22)(pos22red22)(pos32red22)(pos42red22)] (remark1label2) {}; } \end{pgfonlayer} %%%%%%%%%%%%%%%%%采样里面内容 {\scriptsize \node [anchor=center] (cy00-2) at ([xshift=6.7em,yshift=0.2em]pos4-313) {\tiny{采样}}; \node [anchor=center,minimum height=1.8em,minimum width=0.8em,fill=orange!30] (cy11-3) at ([xshift=2.8em,yshift=-1.8em]pos4-313) {}; \node [anchor=center,minimum height=1.5em,minimum width=0.8em,fill=blue!30] (cy12-3) at ([xshift=1.3em,yshift=-0.15em]cy11-3) {}; \node [anchor=center,minimum height=2.5em,minimum width=0.8em,fill=black!30] (cy13-3) at ([xshift=1.3em,yshift=0.5em]cy12-3) {}; \node [anchor=center,minimum height=0.8em,minimum width=0.8em,fill=green!30] (cy14-3) at ([xshift=1.3em,yshift=-0.85em]cy13-3) {}; \node [anchor=center,minimum height=1.2em,minimum width=0.8em,fill=yellow!30] (cy15-3) at ([xshift=1.3em,yshift=0.2em]cy14-3) {}; \node [anchor=center,minimum height=0.0em,minimum width=0.8em,fill=gray!30] (cy16-3) at ([xshift=1.3em,yshift=-0.25em]cy15-3) {}; \node [anchor=center] (cy17-3) at ([xshift=1.5em,yshift=-0.3em]cy16-3) {$\cdots$}; \node [anchor=center,color=red] (cy112-3) at ([xshift=0.0em,yshift=-1.1em]cy15-3) {\tiny$\Uparrow$}; \node [anchor=center,color=red] (cy113-3) at ([yshift=-0.65em]cy112-3) {\tiny{sunny}}; } \end{scope} {\small \node [anchor=west] (dictionarylabel) at ([xshift=32.0em]dictionarylabel.east) {目标语言}; \node [anchor=north west] (entry5-1) at ([xshift=0.70em,yshift=-1.37em]dictionarylabel.south west) {Today}; \node [anchor=north] (entry5-2) at ([yshift=0.5em]entry5-1.south) {is}; \node [anchor=north] (entry5-3) at ([yshift=0.1em]entry5-2.south) {a}; \node [anchor=center] (pos5-0) at ([yshift=1.2em]entry5-1){}; \node [anchor=center] (pos5-4) at ([yshift=-1.2em]entry5-3){}; \node [anchor=north,color=red,minimum height=1.2em,minimum width=3.41em,fill=blue!20,inner sep=0.1em] (entry5-5) at ([yshift=-0.4em]pos5-4.south) {?}; \node [anchor=north,minimum height=1.2em,minimum width=3.15em] (entry5-6) at ([yshift=-0.4em]entry5-5.south) {}; \node [anchor=north,minimum height=1.2em,minimum width=3.15em] (entry5-7) at ([yshift=-3.23em]entry5-6.south) {}; } \begin{pgfonlayer}{background} { \node[rectangle,fill=green!20,inner sep=0.1em] [fit =(entry5-1) (entry5-2) (entry5-3)(pos5-0)(pos5-4)] {}; } \end{pgfonlayer} \begin{pgfonlayer}{background} { \node[rectangle,fill=blue!20,inner sep=0.1em] [fit =(entry5-6) (entry5-7)] {}; } \end{pgfonlayer} \draw [->,thick]([xshift=0.1em,yshift=0.3em]entry5.east) -- ([xshift=1.27em,yshift=0.3em]entry5.east); \draw [->,thick]([xshift=5.4859em,yshift=0.3em]entry5.east) -- ([xshift=12em,yshift=0.3em]entry5.east) -- ([yshift=-0.57em]cy3-14.south); \draw[-,thick] ([xshift=0.0em]cy3-17.east) ..controls+(east:1.2em) and + (west:1.2em)..([xshift=-0.19em]pos4-11.west);\draw[-,thick] ([xshift=0.0em]cy3-17.east) ..controls+(east:1.2em) and + (west:1.2em)..([yshift=-2.3em,xshift=-0.19em]pos4-212.west); \draw [->,thick]([xshift=-1.291em]entry5-5.west) -- ([xshift=0.02em]entry5-5.west); \draw [-,thick]([xshift=0.415em]pos4-13.east)--([xshift=0.9em]pos4-13.east)--([xshift=0.9em]pos4-242.east)--([xshift=0.415em]pos4-242.east); \end{tikzpicture} %---------------------------------------------------------------------