UNPKG

29 kBSource Map (JSON)View Raw
1{"version":3,"file":"ZhtSynonymOptimizer.js","sourceRoot":"","sources":["ZhtSynonymOptimizer.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Created by user on 2018/4/16/016.\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';\nimport { EnumDictDatabase } from '../const';\n\n/**\n * 以詞意來自動轉換 而不需要手動加入字典於 synonym.txt\n * 適用於比較容易需要人工處理的轉換\n *\n * 自動處理 `里|后`\n *\n * 建議在字典內追加人名地名等等名字 來增加準確性\n * 防止轉換錯誤\n *\n * @todo 發于余干松冲准呆只范舍涂\n */\nexport class ZhtSynonymOptimizer extends SubSModuleOptimizer\n{\n\tname = 'ZhtSynonymOptimizer';\n\n\tprotected _SYNONYM?: IDICT_SYNONYM;\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\n\t\tthis._SYNONYM = this.segment.getDict('SYNONYM') || {};\n\n\t\tthis._BLACKLIST = this.segment.getDict(EnumDictDatabase.BLACKLIST_FOR_SYNONYM) || {};\n\t}\n\n\tisSynonymBlacklist(w: string)\n\t{\n\t\tif (this._BLACKLIST[w])\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprotected _getSynonym(w: string, nw: string): string\n\t{\n\t\tconst SYNONYM = this._SYNONYM;\n\n\t\tif (w in SYNONYM)\n\t\t{\n\t\t\tnw = SYNONYM[w];\n\t\t}\n\n\t\tif (nw in SYNONYM)\n\t\t{\n\t\t\t//let w = nw;\n\t\t\tnw = SYNONYM[nw];\n\t\t}\n\n\t\treturn nw;\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\t\tconst SYNONYM = this._SYNONYM;\n\n\t\tlet i = 0;\n\n\t\tlet CLOSE_P = ['】', '」', '》', '』', ']', '’', '”', '〉'];\n\t\tlet SEP_P = ['、', ',', '…'];\n\n\t\twhile (i < words.length)\n\t\t{\n\t\t\tlet w0: IWord = words[i - 1] || null;\n\t\t\tlet w1 = words[i];\n\t\t\tlet w2: IWord = words[i + 1] || null;\n\n\t\t\tif (this.isSynonymBlacklist(w1.w))\n\t\t\t{\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet bool: boolean;\n\n\t\t\tlet w1_len = UString.size(w1.w);\n\n\t\t\tlet new_p: number;\n\n\t\t\tif (w1_len == 1)\n\t\t\t{\n\t\t\t\t//console.log(w1);\n\n\t\t\t\tif (w1.w == '里')\n\t\t\t\t{\n\t\t\t\t\tif (w0 && (\n\t\t\t\t\t\tw0.w.slice(-1) == '的'\n\t\t\t\t\t\t|| w0.w === '和'\n\t\t\t\t\t))\n\t\t\t\t\t{\n\n\t\t\t\t\t}\n\t\t\t\t\telse if (w0 && CLOSE_P.includes(w0.w))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '裡';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (w0 && hexAndAny(w0.p,\n\t\t\t\t\t\t// 名詞\n\t\t\t\t\t\tPOSTAG.D_N,\n\n\t\t\t\t\t\t// 處所\n\t\t\t\t\t\tPOSTAG.D_S,\n\n\t\t\t\t\t\t// 方位\n\t\t\t\t\t\tPOSTAG.D_F,\n\n\t\t\t\t\t\t// 时间词\n\t\t\t\t\t\tPOSTAG.D_T,\n\n\t\t\t\t\t\t// 动词 训练\n\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '裡';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (w1.w == '后')\n\t\t\t\t{\n\n\t\t\t\t\tif (w0 && (\n\t\t\t\t\t\tw0.w === '和'\n\t\t\t\t\t))\n\t\t\t\t\t{\n\n\t\t\t\t\t}\n\t\t\t\t\telse if (w0 && CLOSE_P.includes(w0.w))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '後';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (w0 && ['腰'].includes(w0.w))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '後';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\t// 如果前一個項目為\n\t\t\t\t\telse if (w0 && (w0.p && hexAndAny(w0.p,\n\n\t\t\t\t\t\t// 动词 離開\n\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t// 处所词\n\t\t\t\t\t\tPOSTAG.D_S,\n\t\t\t\t\t\t// 时间词\n\t\t\t\t\t\tPOSTAG.D_T,\n\t\t\t\t\t\t// 名词 名语素\n\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t// 数量词 - 几次后\n\t\t\t\t\t\tPOSTAG.D_MQ,\n\t\t\t\t\t\tPOSTAG.A_M,\n\n\t\t\t\t\t\t// 方位词 方位语素\n\t\t\t\t\t\tPOSTAG.D_F,\n\n\t\t\t\t\t\t// 副词\n\t\t\t\t\t\tPOSTAG.D_D,\n\n\t\t\t\t\t\tPOSTAG.D_R,\n\t\t\t\t\t)))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '後';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (w2 && (w2.p && hexAndAny(w2.p,\n\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t)))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '後';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (w2 && ((w0 && !w0.p) && (w2.p && hexAndAny(w2.p,\n\t\t\t\t\t\t// 副词\n\t\t\t\t\t\tPOSTAG.D_D,\n\t\t\t\t\t))))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '後';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (w2 && ((!w0 || !w0.p) && SEP_P.includes(w2.w)))\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '後';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (w1.w == '发' || w1.w == '發')\n\t\t\t\t{\n\t\t\t\t\tlet c: string;\n\n\t\t\t\t\tif (w0)\n\t\t\t\t\t{\n\t\t\t\t\t\tc = w0.w;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c && COLOR_HAIR[c])\n\t\t\t\t\t{\n\t\t\t\t\t\tlet nw = '髮';\n\n\t\t\t\t\t\tnw = this._getSynonym(w1.w, nw);\n\n\t\t\t\t\t\tif (nw != w1.w)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\t\tnew_p = POSTAG.D_N;\n\n\t\t\t\t\t\t\tbool = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!bool && w2 && w1.w == '发' && w2.w === '的')\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '發';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (w1.w == '于')\n\t\t\t\t{\n\t\t\t\t\tif ((w0 == null || w0.p & POSTAG.D_W) && (w2 && w2.p && (\n\t\t\t\t\t\tw2.p & POSTAG.D_N\n\t\t\t\t\t\t|| w2.p & POSTAG.D_V\n\t\t\t\t\t\t|| w2.p & POSTAG.D_R\n\t\t\t\t\t\t|| w2.p & POSTAG.D_D\n\t\t\t\t\t\t|| w2.p & POSTAG.D_T\n\t\t\t\t\t\t|| w2.p & POSTAG.A_NR\n\t\t\t\t\t\t|| w2.p & POSTAG.D_S\n\t\t\t\t\t\t|| w2.p & POSTAG.D_F\n\t\t\t\t\t)))\n\t\t\t\t\t{\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * 當 於 在句子開頭並且後面是名詞或動詞時\n\t\t\t\t\t\t */\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '於';\n\n\t\t\t\t\t\tnew_p = POSTAG.D_P;\n\t\t\t\t\t\tw1.p = new_p;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (w0 && w2)\n\t\t\t\t\t{\n\t\t\t\t\t\tlet w3: IWord;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t\tPOSTAG.D_R,\n\t\t\t\t\t\t\t\tPOSTAG.D_A,\n\t\t\t\t\t\t\t\tPOSTAG.D_T,\n\t\t\t\t\t\t\t\tPOSTAG.D_F,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t\tPOSTAG.D_R,\n\t\t\t\t\t\t\t\tPOSTAG.D_S,\n\t\t\t\t\t\t\t\tPOSTAG.A_NX,\n\t\t\t\t\t\t\t\tPOSTAG.D_F,\n\t\t\t\t\t\t\t\tPOSTAG.D_W,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_F,\n\t\t\t\t\t\t\t\tPOSTAG.D_T,\n\t\t\t\t\t\t\t\tPOSTAG.A_NR,\n\t\t\t\t\t\t\t\tPOSTAG.D_R,\n\t\t\t\t\t\t\t\tPOSTAG.D_S,\n\t\t\t\t\t\t\t\tPOSTAG.D_W,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.A_NS,\n\t\t\t\t\t\t\t\tPOSTAG.D_T,\n\t\t\t\t\t\t\t\tPOSTAG.D_C,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.A_NS,\n\t\t\t\t\t\t\t\tPOSTAG.D_T,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_D,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_D,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t*/\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.A_NR,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.A_NS,\n\t\t\t\t\t\t\t\tPOSTAG.A_NT,\n\t\t\t\t\t\t\t\tPOSTAG.D_S,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_W,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_D,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_D,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t(hexAndAny(w0.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_N,\n\t\t\t\t\t\t\t) && hexAndAny(w2.p,\n\t\t\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\t\tw1.w = '於';\n\n\t\t\t\t\t\t\tnew_p = POSTAG.D_P;\n\t\t\t\t\t\t\tw1.p = new_p;\n\n\t\t\t\t\t\t\tbool = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (w3 = words[i + 2])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tw0.p & POSTAG.D_V\n\t\t\t\t\t\t\t\t&& w2.p & POSTAG.D_D\n\t\t\t\t\t\t\t\t&& w3.p & POSTAG.D_V\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\t\t\tw1.w = '於';\n\n\t\t\t\t\t\t\t\tnew_p = POSTAG.D_P;\n\t\t\t\t\t\t\t\tw1.p = new_p;\n\n\t\t\t\t\t\t\t\tbool = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!bool && w2 && w2.p && (w2.p & POSTAG.D_T))\n\t\t\t\t\t{\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * 迫使法妮雅得于日后和杰弥尼成婚……\n\t\t\t\t\t\t */\n\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '於';\n\n\t\t\t\t\t\tnew_p = POSTAG.D_P;\n\t\t\t\t\t\tw1.p = new_p;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (w1.w == '么')\n\t\t\t\t{\n\t\t\t\t\tif (!w2 || w2.p & POSTAG.D_W)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = '麼';\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (w1_len > 1)\n\t\t\t{\n\t\t\t\tif (w1.w.match(/^(.+)[发發]$/))\n\t\t\t\t{\n\t\t\t\t\tlet c = RegExp.$1;\n\n\t\t\t\t\tif (COLOR_HAIR[c])\n\t\t\t\t\t{\n\t\t\t\t\t\tlet nw = c + '髮';\n\n\t\t\t\t\t\tnw = this._getSynonym(w1.w, nw);\n\n\t\t\t\t\t\tif (nw != w1.w)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\t\tbool = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\tw1.w === (c + '发')\n\t\t\t\t\t\t&& (w1.p & POSTAG.D_MQ)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\t//  一发、兩发、三发、四发、五发、六发——\n\n\t\t\t\t\t\tlet nw = c + '發';\n\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t\telse if (\n\t\t\t\t\t\t// 不修正繁體的 發\n\t\t\t\t\t\tw1.w === (c + '发')\n\t\t\t\t\t\t&& (\n\t\t\t\t\t\t\t!w0\n\t\t\t\t\t\t\t|| (\n\t\t\t\t\t\t\t\tw0 && (\n\t\t\t\t\t\t\t\t\tw0.p === POSTAG.D_W\n\t\t\t\t\t\t\t\t\t//|| COLOR_HAIR[w0.w]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tlet nw = c + '髮';\n\n\t\t\t\t\t\tlet ow: IWord = TABLE[nw];\n\n\t\t\t\t\t\tif (ow && ow.s)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\t\tnew_p = ow.p;\n\n\t\t\t\t\t\t\tbool = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (hexAndAny(w1.p,\n\t\t\t\t\tPOSTAG.D_MQ,\n\t\t\t\t) && /^(.+)余$/.test(w1.w))\n\t\t\t\t{\n\t\t\t\t\tlet nw = RegExp.$1 + '餘';\n\n\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\tbool = true;\n\t\t\t\t}\n\t\t\t\t// 如果項目為 量词\n\t\t\t\telse if (hexAndAny(w1.p,\n\t\t\t\t\t//POSTAG.A_Q,\n\t\t\t\t\tPOSTAG.D_MQ,\n\t\t\t\t))\n\t\t\t\t{\n\t\t\t\t\tif (/^几/.test(w1.w) && w1.m?.length > 1)\n\t\t\t\t\t{\n\t\t\t\t\t\t/*\n\t\t\t\t\t\tlet m = w1.m as IWord[];\n\t\t\t\t\t\tif (m[0].p & POSTAG.D_MQ)\n\t\t\t\t\t\t{\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t */\n\n\t\t\t\t\t\tlet nw = w1.w.replace(/^几/, '幾');\n\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (w1.p & POSTAG.D_V && /^干(.)$/.test(w1.w))\n\t\t\t\t{\n\t\t\t\t\t/**\n\t\t\t\t\t * @todo 需要更嚴謹的判斷方式\n\t\t\t\t\t */\n\n\t\t\t\t\tlet c = RegExp.$1;\n\t\t\t\t\tlet nw = '幹' + c;\n\t\t\t\t\tlet ow: IWord = TABLE[nw];\n\n\t\t\t\t\tif (ow && hexAndAny(ow.p,\n\t\t\t\t\t\tPOSTAG.D_V,\n\t\t\t\t\t))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (w2 && hexAndAny(w2.p,\n\t\t\t\t\t\t\tPOSTAG.D_R,\n\t\t\t\t\t\t))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\t\tbool = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 如果項目為 錯字\n\t\t\t\telse if (w1.p & POSTAG.BAD)\n\t\t\t\t{\n\t\t\t\t\tlet nw: string;\n\n\t\t\t\t\tnw = w1.w\n\t\t\t\t\t\t.replace(/(.)里|里(.)/, '$1裡$2')\n\t\t\t\t\t\t.replace(/(.)后|后(.)/, '$1後$2')\n\t\t\t\t\t\t.replace(/蔘(.)/, '參$1')\n\t\t\t\t\t;\n\n\t\t\t\t\tnw = this._getSynonym(w1.w, nw);\n\n\t\t\t\t\t//console.log(w1, nw);\n\n\t\t\t\t\tif (nw != w1.w)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 如果項目為 方位\n\t\t\t\telse if (w1.p & POSTAG.D_F)\n\t\t\t\t{\n\t\t\t\t\tlet nw = w1.w\n\t\t\t\t\t\t.replace(/(.)里|里(.)/, '$1裡$2')\n\t\t\t\t\t\t.replace(/(.)后|后(.)/, '$1後$2')\n\t\t\t\t\t;\n\n\t\t\t\t\tnw = this._getSynonym(w1.w, nw);\n\n\t\t\t\t\tif (nw != w1.w)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 如果項目為 處所\n\t\t\t\telse if (w1.p & POSTAG.D_S)\n\t\t\t\t{\n\t\t\t\t\tlet nw = w1.w\n\t\t\t\t\t\t.replace(/(.)里$/, '$1裡')\n\t\t\t\t\t;\n\n\t\t\t\t\tnw = this._getSynonym(w1.w, nw);\n\n\t\t\t\t\tif (nw != w1.w)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.ow = w1.w;\n\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 如果項目為 时间\n\t\t\t\telse if (w1.p & POSTAG.D_T || w1.p & POSTAG.D_V)\n\t\t\t\t{\n\t\t\t\t\tlet nw = w1.w\n\t\t\t\t\t\t.replace(/(.)后|后(.)/, '$1後$2')\n\t\t\t\t\t;\n\n\t\t\t\t\tnw = this._getSynonym(w1.w, nw);\n\n\t\t\t\t\tif (nw != w1.w)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.op = w1.op || w1.p;\n\t\t\t\t\t\tw1.ow = w1.w;\n\n\t\t\t\t\t\tw1.w = nw;\n\n\t\t\t\t\t\tbool = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (bool && w1.ow && w1.ow != w1.w)\n\t\t\t{\n\t\t\t\tif (w1.w in TABLE)\n\t\t\t\t{\n\t\t\t\t\tlet ow = TABLE[w1.w];\n\n\t\t\t\t\tif (typeof new_p !== 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.op = w1.op || ow.p;\n\t\t\t\t\t\tw1.p = new_p;\n\t\t\t\t\t}\n\t\t\t\t\telse if (ow.p != w1.p)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.op = w1.op || w1.p;\n\t\t\t\t\t\tw1.p = ow.p;\n\n\t\t\t\t\t\t//console.log(TABLE[w1.w]);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (ow.s !== w1.s)\n\t\t\t\t\t{\n\t\t\t\t\t\tw1.os = ('os' in w1) ? w1.os : (w1.s || false);\n\t\t\t\t\t\tw1.s = ow.s;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.debugToken(w1, {\n\t\t\t\t\t[this.name]: true,\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 = ZhtSynonymOptimizer.init.bind(ZhtSynonymOptimizer) as typeof ZhtSynonymOptimizer.init;\n\nexport default ZhtSynonymOptimizer;\n"]}
\No newline at end of file