UNPKG

3.27 kBSource Map (JSON)View Raw
1{"version":3,"file":"ForeignOptimizer.js","sourceRoot":"","sources":["ForeignOptimizer.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,gCAAyD;AASzD,MAAa,gBAAiB,SAAQ,yBAAmB;IAAzD;;QAEC,SAAI,GAAG,kBAAkB,CAAC;IA4D3B,CAAC;IAxDA,MAAM;QAEL,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,UAAU,CAAuB,KAAU;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,OAAO,CAAC,GAAG,GAAG,EACd;YACC,IAAI,EAAE,GAAe,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,EAAE,GAAe,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,GAAe,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAC3B;gBACC,CAAC,EAAE,CAAC;gBACJ,SAAS;aACT;YAED,IAAI,EAAE,EACN;gBACC,IAAI,EAAE,GAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,EAAE,GAAe,KAAK,CAAC,EAAE,CAAC,CAAC;gBAE/B,IAAI,EAAE,EACN;oBACC,IAAI,KAAK,GAAe,IAAI,CAAC,UAAU,CAAC;wBACvC,GAAG,EAAE;wBACL,CAAC,EAAE,EAAE;wBACL,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;qBACX,EAAE;wBACF,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;qBACd,EAAE,IAAI,CAAC,CAAC;oBAET,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAEpC,GAAG,EAAE,CAAC;oBACN,SAAS;iBACT;aACD;YAED,CAAC,EAAE,CAAC;SACJ;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AA9DD,4CA8DC;AAEY,QAAA,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAiC,CAAC;AAEjG,kBAAe,gBAAgB,CAAC","sourcesContent":["/**\n * Created by user on 2018/8/18/018.\n */\n\nimport { SubSModule, SubSModuleOptimizer } from '../mod';\nimport POSTAG from '../POSTAG';\nimport Segment, { IDICT, IDICT_SYNONYM, IWord } from '../Segment';\nimport { IWordDebug } from '../util';\nimport { hexAndAny } from '../util/index';\nimport { COLOR_ALL, COLOR_HAIR } from '../mod/COLORS';\n\nimport UString from 'uni-string';\n\nexport class ForeignOptimizer extends SubSModuleOptimizer\n{\n\tname = 'ForeignOptimizer';\n\n\tprotected _TABLE: IDICT<IWord>;\n\n\t_cache()\n\t{\n\t\tsuper._cache();\n\n\t\tthis._TABLE = this.segment.getDict('TABLE');\n\t\tthis._POSTAG = this.segment.POSTAG;\n\t}\n\n\tdoOptimize<T extends IWordDebug>(words: T[]): T[]\n\t{\n\t\tconst self = this;\n\t\tconst POSTAG = this._POSTAG;\n\t\tconst TABLE = this._TABLE;\n\n\t\tlet i = 0;\n\t\tlet len = words.length - 1;\n\n\t\twhile (i < len)\n\t\t{\n\t\t\tlet w0: IWordDebug = words[i - 1];\n\t\t\tlet w1: IWordDebug = words[i];\n\t\t\tlet w2: IWordDebug = words[i + 1];\n\n\t\t\tif (!(w1.p === POSTAG.A_NX))\n\t\t\t{\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (w2)\n\t\t\t{\n\t\t\t\tlet nw: string = w1.w + w2.w;\n\t\t\t\tlet mw: IWordDebug = TABLE[nw];\n\n\t\t\t\tif (mw)\n\t\t\t\t{\n\t\t\t\t\tlet new_w: IWordDebug = self.debugToken({\n\t\t\t\t\t\t...mw,\n\t\t\t\t\t\tw: nw,\n\t\t\t\t\t\tm: [w1, w2],\n\t\t\t\t\t}, {\n\t\t\t\t\t\t[this.name]: 1,\n\t\t\t\t\t}, true);\n\n\t\t\t\t\tthis.sliceToken(words, i, 2, new_w);\n\n\t\t\t\t\tlen--;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti++;\n\t\t}\n\n\t\treturn words;\n\t}\n}\n\nexport const init = ForeignOptimizer.init.bind(ForeignOptimizer) as typeof ForeignOptimizer.init;\n\nexport default ForeignOptimizer;\n"]}
\No newline at end of file