novel-segment
Version:
Chinese word segmentation 簡繁中文分词模块 以網路小說為樣本
119 lines • 4.12 kB
JavaScript
;
/**
* Created by user on 2018/4/16/016.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.SUBMODS_OTHER_LIST = exports.SUBMODS_LIST = exports.LIST_SUBMODS_NOT_DEF = exports.ENUM_SUBMODS_OTHER = exports.ENUM_SUBMODS = exports.SubSModule = exports.SubSModuleTokenizer = exports.Tokenizer = exports.SubSModuleOptimizer = exports.Optimizer = void 0;
exports.getDefault = getDefault;
const ts_enum_util_1 = require("ts-enum-util");
const Optimizer_1 = require("./Optimizer");
Object.defineProperty(exports, "Optimizer", { enumerable: true, get: function () { return Optimizer_1.Optimizer; } });
Object.defineProperty(exports, "SubSModuleOptimizer", { enumerable: true, get: function () { return Optimizer_1.SubSModuleOptimizer; } });
const Tokenizer_1 = require("./Tokenizer");
Object.defineProperty(exports, "SubSModuleTokenizer", { enumerable: true, get: function () { return Tokenizer_1.SubSModuleTokenizer; } });
Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function () { return Tokenizer_1.Tokenizer; } });
const mod_1 = require("./mod");
Object.defineProperty(exports, "SubSModule", { enumerable: true, get: function () { return mod_1.SubSModule; } });
/**
* 识别模块
* 强制分割类单词识别
*/
var ENUM_SUBMODS;
(function (ENUM_SUBMODS) {
/**
* URL识别
*/
ENUM_SUBMODS["URLTokenizer"] = "URLTokenizer";
/**
* 通配符,必须在标点符号识别之前
*/
ENUM_SUBMODS["WildcardTokenizer"] = "WildcardTokenizer";
/**
* 标点符号识别
*/
ENUM_SUBMODS["PunctuationTokenizer"] = "PunctuationTokenizer";
/**
* 外文字符、数字识别,必须在标点符号识别之后
*/
ENUM_SUBMODS["ForeignTokenizer"] = "ForeignTokenizer";
// 中文单词识别
/**
* 词典识别
*/
ENUM_SUBMODS["DictTokenizer"] = "DictTokenizer";
/**
* 人名识别,建议在词典识别之后
*/
ENUM_SUBMODS["ChsNameTokenizer"] = "ChsNameTokenizer";
ENUM_SUBMODS["JpSimpleTokenizer"] = "JpSimpleTokenizer";
/**
* 注音
*/
ENUM_SUBMODS["ZhuyinTokenizer"] = "ZhuyinTokenizer";
/**
* 部首
*/
//ZhRadicalTokenizer = 'ZhRadicalTokenizer',
// @todo 优化模块
/**
* 邮箱地址识别
*/
ENUM_SUBMODS["EmailOptimizer"] = "EmailOptimizer";
/**
* 人名识别优化
*/
ENUM_SUBMODS["ChsNameOptimizer"] = "ChsNameOptimizer";
/**
* 词典识别优化
*/
ENUM_SUBMODS["DictOptimizer"] = "DictOptimizer";
/**
* 日期时间识别优化
*/
ENUM_SUBMODS["DatetimeOptimizer"] = "DatetimeOptimizer";
/**
* 合併外文與中文的詞
* 例如 T恤
*/
ENUM_SUBMODS["ForeignOptimizer"] = "ForeignOptimizer";
/**
* 自動處理 `里|裏|后`
*/
ENUM_SUBMODS["ZhtSynonymOptimizer"] = "ZhtSynonymOptimizer";
ENUM_SUBMODS["AdjectiveOptimizer"] = "AdjectiveOptimizer";
})(ENUM_SUBMODS || (exports.ENUM_SUBMODS = ENUM_SUBMODS = {}));
/**
* 不包含在預設模組列表內 需要手動指定
*/
var ENUM_SUBMODS_OTHER;
(function (ENUM_SUBMODS_OTHER) {
/**
* 单字切分模块
*/
ENUM_SUBMODS_OTHER["SingleTokenizer"] = "SingleTokenizer";
})(ENUM_SUBMODS_OTHER || (exports.ENUM_SUBMODS_OTHER = ENUM_SUBMODS_OTHER = {}));
exports.LIST_SUBMODS_NOT_DEF = [
ENUM_SUBMODS.ZhtSynonymOptimizer,
];
exports.SUBMODS_LIST = (0, ts_enum_util_1.$enum)(ENUM_SUBMODS);
exports.SUBMODS_OTHER_LIST = (0, ts_enum_util_1.$enum)(ENUM_SUBMODS_OTHER);
/**
* 取得列表並且保持 ENUM 順序
* @param {boolean} all
* @returns {ENUM_SUBMODS[]}
*/
function getDefault(all) {
let list = exports.SUBMODS_LIST.getKeys();
return Object.keys(ENUM_SUBMODS)
.reduce(function (a, m) {
if (!a.includes(m) && list.includes(m)) {
if (all || !exports.LIST_SUBMODS_NOT_DEF.includes(m)) {
a.push(m);
}
}
return a;
}, []);
}
//console.log(getDefault(true));
exports.default = getDefault;
//# sourceMappingURL=index.js.map