/** * 轻量级中文分词实现,专为浏览器环境设计 * 基于最大正向匹配算法和规则,完全自包含,无外部依赖 */ // 默认停用词列表(内置常用停用词) /** * 内置常用词表(2658 条,2-4 字纯汉字)。 * 长度上限 4 与 matchWord 的 Math.min(4, ...) 对应,更长的词永远匹配不到。 * 按 Unicode 码点排序:首字聚簇使 gzip 更优,也便于 review 与查重。 * * 数据来源(均为 MIT,完整许可证见 THIRD-PARTY-NOTICES.md): * - jieba https://github.com/fxsjy/jieba Copyright (c) 2013 Sun Junyi * - HSK 3.0 词表 https://github.com/elkmovie/hsk30 Copyright (c) 2021 Pleco Inc. * 源自教育部《国际中文教育中文水平等级标准》(GF 0025-2021) * * 说明:jieba 词频偏新闻时政语料,日常词排序靠后(「咖啡店」rank 6 万+), * 故以 HSK 一至四级为日常词主干,并入 jieba 高频词与本项目原有的技术词条。 */ const COMMON_WORDS = new Set([ '一下', '一下儿', '一个', '一些', '一会儿', '一位', '一共', '一再', '一切', '一半', '一句', '一块儿', '一声', '一天', '一定', '一年', '一律', '一方面', '一条', '一样', '一次', '一点', '一点儿', '一点点', '一生', '一直', '一种', '一致', '一般', '一般来说', '一起', '一路平安', '一路顺风', '一边', '一部分', '万一', '丈夫', '三个', '上个月', '上升', '上午', '上去', '上周', '上学', '上来', '上楼', '上次', '上海', '上班', '上网', '上衣', '上课', '上车', '上边', '上门', '上面', '下个月', '下午', '下去', '下周', '下来', '下楼', '下次', '下班', '下课', '下车', '下载', '下边', '下降', '下雨', '下雪', '下面', '不一会儿', '不一定', '不久', '不仅', '不会', '不但', '不光', '不到', '不可', '不同', '不在乎', '不够', '不大', '不太', '不好意思', '不如', '不安', '不客气', '不对', '不少', '不得不', '不必', '不敢', '不断', '不是', '不满', '不然', '不用', '不知', '不管', '不能', '不行', '不要', '不要紧', '不论', '不过', '不错', '专业', '专家', '专心', '专门', '专题', '世界', '世界杯', '世纪', '业余', '东北', '东南', '东方', '东西', '东边', '东部', '两个', '两边', '严格', '严重', '个人', '个体', '个别', '个子', '个性', '中介', '中医', '中午', '中华民族', '中国', '中央', '中奖', '中学', '中学生', '中小学', '中年', '中心', '中文', '中级', '中部', '中间', '中餐', '丰富', '临时', '为主', '为了', '为什么', '主人', '主任', '主动', '主席', '主张', '主意', '主持', '主要', '主题', '举办', '举手', '举行', '义务', '之一', '之中', '之前', '之后', '之间', '乐观', '乐趣', '乐队', '也许', '习惯', '书包', '书店', '书架', '了不起', '了解', '争取', '争论', '事业', '事件', '事先', '事实', '事实上', '事情', '事故', '事物', '二手', '于是', '云计算', '互相', '互联网', '五颜六色', '亚运会', '交往', '交换', '交易', '交朋友', '交流', '交给', '交警', '交费', '交通', '交际', '产业', '产品', '产生', '京剧', '亲人', '亲切', '亲密', '亲爱', '亲自', '人们', '人口', '人员', '人大', '人家', '人工', '人工智能', '人才', '人数', '人民', '人民币', '人民政府', '人物', '人生', '人类', '人群', '亿元', '什么', '什么样', '仅仅', '今后', '今天', '今年', '今日', '介绍', '仍然', '从事', '从前', '从小', '从来', '从此', '他们', '付出', '代替', '代表', '代表团', '以上', '以下', '以为', '以内', '以前', '以及', '以后', '以外', '以来', '价值', '价格', '价钱', '任何', '任务', '企业', '休假', '休息', '众人', '优势', '优点', '优秀', '优美', '优良', '伙伴', '会员', '会计', '会议', '伟大', '传播', '传来', '传统', '传说', '伤害', '伤心', '似乎', '似的', '但是', '位于', '位置', '住房', '住院', '体会', '体操', '体检', '体现', '体系', '体育', '体育场', '体育馆', '体重', '体验', '作业', '作为', '作出', '作品', '作家', '作战', '作文', '作用', '作者', '你们', '使劲', '使用', '例如', '例子', '供应', '依然', '依靠', '便宜', '促使', '促进', '促销', '保存', '保守', '保安', '保密', '保护', '保持', '保留', '保证', '保险', '信任', '信号', '信封', '信心', '信息', '信息技术', '信用卡', '修改', '修理', '倒车', '倒闭', '值得', '假如', '假期', '做到', '做客', '做梦', '做法', '做饭', '停下', '停止', '停车', '停车场', '健康', '健身', '儿子', '儿童', '兄弟', '充分', '充满', '充电', '充电器', '先后', '先生', '先进', '光临', '光明', '光盘', '克服', '免费', '入口', '全体', '全国', '全场', '全家', '全年', '全球', '全省', '全身', '全部', '全面', '公交车', '公元', '公共', '公共汽车', '公务员', '公司', '公园', '公布', '公平', '公开', '公斤', '公民', '公路', '公里', '共同', '共有', '关上', '关于', '关心', '关机', '关注', '关系', '关键', '关闭', '兴奋', '兴趣', '其中', '其他', '其余', '其实', '其次', '具体', '具备', '具有', '典型', '养成', '内容', '内心', '内科', '内部', '再三', '再见', '写作', '军事', '军队', '农业', '农村', '农民', '冬天', '冬季', '冰箱', '冰雪', '决定', '决心', '决赛', '冷静', '准备', '准时', '准确', '凉快', '凉水', '减少', '减肥', '几个', '几乎', '出去', '出发', '出口', '出售', '出国', '出席', '出来', '出现', '出生', '出租', '出租车', '出色', '出门', '出院', '分为', '分别', '分布', '分开', '分手', '分散', '分数', '分析', '分组', '分配', '分钟', '划船', '列为', '列入', '列车', '刚刚', '刚才', '创业', '创作', '创新', '创造', '初中', '初步', '初级', '判断', '利息', '利用', '利益', '别人', '别的', '到处', '到底', '到达', '制作', '制定', '制度', '制订', '制造', '刷子', '刷牙', '刺激', '前后', '前天', '前头', '前年', '前往', '前边', '前进', '前途', '前面', '剧场', '力气', '力量', '办事', '办公室', '办法', '办理', '功夫', '功能', '功课', '加入', '加工', '加强', '加快', '加油', '加油站', '加班', '动人', '动作', '动力', '动摇', '动物', '动物园', '动画片', '努力', '劳动', '勇敢', '勇气', '包含', '包子', '包括', '包裹', '北京', '北方', '北边', '北部', '区别', '区块链', '医学', '医生', '医疗', '医院', '十分', '千万', '千克', '午睡', '午餐', '午饭', '半夜', '半天', '半年', '华人', '单位', '单元', '单独', '单纯', '单调', '南京', '南方', '南边', '南部', '卫生', '卫生间', '印度', '印象', '危害', '危险', '即将', '却是', '历史', '压力', '厘米', '原则', '原因', '原料', '原来', '去世', '去年', '参与', '参加', '参考', '参观', '及其', '及时', '及格', '友好', '双方', '反复', '反对', '反应', '反映', '反正', '反而', '发出', '发动', '发展', '发布', '发挥', '发明', '发烧', '发现', '发生', '发票', '发表', '发言', '发言人', '发达', '发送', '叔叔', '取得', '取消', '受不了', '受伤', '受到', '变为', '变化', '变成', '口袋', '口语', '古代', '句子', '另一方面', '另外', '只好', '只是', '只有', '只能', '只要', '只见', '叫作', '召开', '可乐', '可以', '可怕', '可是', '可爱', '可能', '可见', '可靠', '台上', '台湾', '台阶', '右边', '叶子', '号码', '司机', '吃惊', '吃饭', '各个', '各位', '各地', '各种', '各级', '各自', '合作', '合同', '合格', '合法', '合理', '合适', '同事', '同学', '同志', '同情', '同意', '同时', '同样', '名人', '名单', '名字', '名片', '名牌儿', '名称', '后天', '后头', '后年', '后来', '后果', '后边', '后面', '否则', '否定', '否认', '含义', '含有', '含量', '听众', '听写', '听到', '听力', '听见', '听讲', '听说', '吵架', '吸引', '吸收', '吸烟', '吸管', '告别', '告诉', '员工', '周围', '周年', '周末', '味儿', '味道', '呼吸', '命令', '命运', '和平', '咖啡', '咱们', '品质', '哈哈', '哥哥', '哪些', '哪儿', '哪怕', '哪里', '售货员', '唱歌', '唱片', '商业', '商人', '商务', '商品', '商场', '商店', '商量', '啤酒', '善于', '善良', '喜欢', '喜爱', '嘴巴', '器官', '回到', '回去', '回国', '回复', '回家', '回来', '回答', '因为', '因此', '团体', '团结', '困难', '围巾', '固定', '国内', '国务院', '国外', '国家', '国庆', '国民党', '国际', '图书馆', '图像识别', '图案', '图片', '图画', '圆满', '土地', '在乎', '在于', '在家', '地上', '地下', '地位', '地区', '地图', '地址', '地方', '地点', '地球', '地理', '地铁', '地铁站', '地面', '场合', '场所', '坏人', '坏处', '坐下', '坚决', '坚固', '坚强', '坚持', '垃圾', '型号', '城市', '城邦', '培养', '培育', '培训', '培训班', '基地', '基本', '基本上', '基础', '堵车', '塑料', '塑料袋', '填空', '增加', '增强现实', '增长', '士兵', '声明', '声音', '处于', '处理', '复习', '复制', '复印', '复杂', '夏天', '夏季', '外交', '外交官', '外卖', '外国', '外地', '外套', '外文', '外汇', '外语', '外边', '外面', '多久', '多么', '多云', '多少', '多年', '多数', '多样', '多次', '多种', '夜里', '大人', '大众', '大会', '大使馆', '大哥', '大型', '大声', '大多', '大多数', '大大', '大夫', '大妈', '大姐', '大学', '大学生', '大家', '大小', '大巴', '大数据', '大方', '大楼', '大概', '大海', '大爷', '大约', '大自然', '大衣', '大规模', '大道', '大部分', '大量', '大门', '大陆', '天上', '天安门', '天气', '天真', '天空', '太太', '太阳', '夫人', '夫妇', '夫妻', '失业', '失去', '失望', '失败', '头发', '头脑', '奇怪', '奋斗', '奖学金', '奖金', '套餐', '女人', '女儿', '女士', '女子', '女孩儿', '女朋友', '女生', '奶奶', '奶茶', '她们', '好久', '好事', '好人', '好像', '好友', '好吃', '好听', '好处', '好多', '好奇', '好好', '好玩儿', '好看', '如今', '如何', '如果', '如此', '妈妈', '妹妹', '妻子', '始终', '姐妹', '姐姐', '姑娘', '姓名', '委员', '委员会', '婚礼', '媒体', '子女', '字典', '字母', '存在', '孙女', '孙子', '季度', '季节', '学习', '学分', '学年', '学时', '学期', '学术', '学校', '学生', '学费', '学问', '学院', '孩子', '宁静', '它们', '安全', '安排', '安置', '安装', '安静', '完全', '完善', '完成', '完整', '完美', '官员', '官方', '定期', '宝宝', '宝石', '宝贝', '宝贵', '实习', '实力', '实在', '实施', '实现', '实用', '实行', '实际', '实际上', '实验', '实验室', '客人', '客观', '宣传', '宣布', '宪法', '害怕', '家乡', '家人', '家具', '家务', '家属', '家庭', '家里', '家长', '容易', '宽广', '密切', '密码', '寒假', '寒冷', '对不起', '对于', '对付', '对待', '对手', '对方', '对比', '对话', '对象', '对面', '寻找', '导弹', '导游', '导演', '导致', '封闭', '将来', '将近', '小伙子', '小吃', '小型', '小声', '小姐', '小学', '小学生', '小孩儿', '小心', '小时', '小时候', '小朋友', '小组', '小说', '少年', '少数', '就业', '就是', '就要', '尺子', '尺寸', '尽力', '尽快', '尽量', '尾巴', '居住', '居民', '屋子', '展开', '属于', '工业', '工人', '工作', '工具', '工厂', '工夫', '工程', '工程师', '工资', '左右', '左边', '巧克力', '巨大', '差不多', '已经', '巴士', '市区', '市场', '市长', '布置', '帅哥', '师父', '希望', '带动', '带来', '带领', '帮助', '帮忙', '常常', '常用', '常见', '常识', '帽子', '干什么', '干净', '干吗', '干杯', '干活儿', '干部', '平均', '平安', '平常', '平方', '平时', '平民', '平稳', '平等', '平静', '年代', '年初', '年底', '年级', '年纪', '年轻', '并且', '幸福', '幸运', '幼儿园', '广告', '广场', '广大', '广州', '广播', '广泛', '庆祝', '应当', '应用', '应该', '底下', '度过', '座位', '延期', '延续', '延长', '建成', '建立', '建筑', '建议', '建设', '开业', '开会', '开发', '开始', '开学', '开展', '开心', '开放', '开机', '开水', '开玩笑', '开花', '开车', '引导', '引起', '引进', '弟弟', '强大', '强烈', '强调', '当中', '当初', '当地', '当时', '当然', '录取', '录音', '形势', '形容', '形式', '形成', '形状', '形象', '彩色', '影响', '影子', '影片', '影视', '彻底', '往往', '征服', '征求', '待遇', '很多', '很大', '律师', '得出', '得分', '得到', '得意', '微信', '微笑', '德国', '心中', '心情', '心理', '心里', '必然', '必要', '必须', '志愿', '志愿者', '忘记', '快乐', '快点儿', '快要', '快递', '快速', '快餐', '忽然', '忽视', '怀念', '怀疑', '态度', '怎么', '怎么办', '怎么样', '怎样', '思想', '思考', '急忙', '性别', '性格', '性质', '总之', '总共', '总是', '总理', '总结', '总统', '恐怕', '恶心', '情况', '情感', '情景', '想到', '想念', '想法', '想象', '想起', '意义', '意外', '意思', '意见', '感兴趣', '感冒', '感到', '感动', '感受', '感情', '感觉', '感谢', '愿意', '愿望', '慢慢', '懂得', '成为', '成人', '成功', '成员', '成就', '成果', '成熟', '成立', '成绩', '成都', '成长', '我们', '我国', '或者', '或许', '战争', '战士', '战斗', '战略', '战胜', '房东', '房子', '房屋', '房租', '房间', '所以', '所有', '所长', '手套', '手工', '手指', '手术', '手机', '手续', '手表', '手里', '才能', '打印', '打听', '打工', '打开', '打扫', '打折', '打球', '打电话', '打破', '打算', '打败', '打车', '打针', '打雷', '执行', '扩大', '扩展', '批准', '批评', '找出', '找到', '承受', '承担', '承认', '技巧', '技术', '抄写', '把握', '抓住', '抓紧', '投入', '投诉', '投资', '护士', '护照', '报到', '报名', '报告', '报纸', '报道', '抽奖', '抽烟', '担任', '担保', '担心', '拉开', '拍照', '招呼', '拥有', '括号', '拿出', '拿到', '持续', '指出', '指导', '指挥', '按时', '按照', '挑战', '挑选', '挺好', '据说', '排列', '排名', '排球', '排队', '接下来', '接到', '接受', '接待', '接着', '接近', '控制', '推动', '推广', '推开', '推进', '推迟', '推销', '措施', '描写', '描述', '提供', '提出', '提到', '提前', '提取', '提醒', '提问', '提高', '握手', '搬家', '摆动', '摆脱', '摘要', '播出', '播放', '操作', '操作系统', '操场', '支付', '支持', '收入', '收到', '收听', '收回', '收益', '收看', '收获', '收费', '收音机', '改变', '改善', '改正', '改进', '改造', '改革', '放下', '放假', '放到', '放学', '放心', '放松', '政体', '政府', '政治', '政策', '故乡', '故事', '故意', '效果', '效率', '敌人', '教学', '教学楼', '教室', '教师', '教授', '教材', '教练', '教育', '教训', '散步', '数字', '数据', '数据库', '数据挖掘', '数码', '数量', '整个', '整体', '整天', '整整', '整理', '整齐', '文件', '文化', '文字', '文学', '文明', '文本', '文本分析', '文章', '斗争', '新型', '新娘', '新年', '新郎', '新闻', '新鲜', '方便', '方便面', '方向', '方式', '方案', '方法', '方针', '方面', '旁边', '旅客', '旅游', '旅行', '旅行社', '旅馆', '无所谓', '无数', '无法', '无聊', '无论', '无限', '既然', '日历', '日子', '日常', '日报', '日期', '日本', '日记', '早上', '早就', '早已', '早晨', '早餐', '早饭', '时代', '时候', '时刻', '时期', '时间', '明天', '明年', '明星', '明显', '明白', '明确', '星星', '星期', '星期天', '星期日', '春天', '春季', '春节', '昨天', '是不是', '是否', '显得', '显然', '显示', '显著', '晚上', '晚会', '晚安', '晚报', '晚点', '晚餐', '晚饭', '普及', '普通', '普通话', '普遍', '景色', '晴天', '智力', '智能', '暑假', '暖和', '暖气', '暗示', '更加', '曾经', '替代', '最初', '最后', '最大', '最好', '最近', '最高', '月亮', '月份', '月底', '有些', '有人', '有关', '有利', '有劲儿', '有名', '有意思', '有效', '有时', '有时候', '有点儿', '有用', '有的', '有的是', '有空儿', '有趣', '有限', '朋友', '服务', '服装', '期中', '期待', '期末', '期间', '期限', '木头', '未必', '未来', '本事', '本子', '本来', '本科', '本级', '本领', '机会', '机关', '机器', '机器学习', '机场', '机构', '机票', '机遇', '杂志', '权利', '权力', '材料', '条件', '来不及', '来到', '来得及', '来源', '来自', '来说', '杭州', '杯子', '松树', '极其', '构成', '构造', '果实', '果汁', '果然', '标准', '标志', '标题', '树叶', '树林', '校园', '校长', '样子', '根据', '根本', '格外', '桌子', '梦想', '梦见', '检查', '检测', '森林', '椅子', '植物', '楼上', '楼下', '楼梯', '概念', '概括', '模型', '模特儿', '欢乐', '欢迎', '欧洲', '歌声', '歌手', '歌迷', '正在', '正好', '正常', '正式', '正是', '正确', '此外', '此时', '步行', '武功', '武器', '武术', '武汉', '武汉市', '母亲', '每年', '比例', '比分', '比如', '比如说', '比赛', '比较', '毕业', '毕业生', '毛巾', '毛泽东', '毛病', '毛衣', '毫升', '毫米', '民主', '民族', '民间', '气候', '气温', '气球', '水平', '水果', '永远', '汇报', '汇率', '汉字', '汉语', '汽水', '汽油', '汽车', '沉重', '沉默', '沙发', '沙子', '没事儿', '没什么', '没关系', '没想到', '没有', '没法儿', '没用', '没错', '治疗', '法国', '法官', '法律', '法规', '法院', '注意', '泪水', '洗手间', '洗澡', '洗衣机', '活动', '流传', '流利', '流行', '测试', '测量', '浪费', '海关', '海水', '海边', '海鲜', '消化', '消失', '消息', '消费', '深入', '深刻', '深厚', '深圳', '深度', '深度学习', '清楚', '清醒', '渐渐', '温度', '温暖', '游客', '游戏', '游泳', '湖北', '湖北省', '满意', '满足', '漂亮', '演出', '演员', '演唱', '演唱会', '演讲', '潮流', '潮湿', '激动', '激烈', '火车', '灯光', '点名', '点头', '热心', '热情', '热烈', '热爱', '热闹', '然后', '然而', '照片', '照相', '照顾', '熟人', '熟练', '燃料', '燃烧', '爬山', '爱人', '爱国', '爱好', '爱心', '爱情', '爱护', '父亲', '父母', '爷爷', '爸爸', '片面', '牌子', '牙刷', '牛奶', '物联网', '物质', '特价', '特别', '特征', '特殊', '特点', '特色', '状况', '状态', '独特', '独立', '独自', '率先', '玉米', '玩儿', '玩具', '环保', '环境', '现代', '现在', '现场', '现实', '现象', '现金', '班级', '班长', '球场', '球迷', '球队', '球鞋', '理发', '理想', '理由', '理解', '理论', '瓶子', '甚么', '甚至', '生产', '生动', '生命', '生存', '生意', '生成', '生日', '生气', '生活', '生病', '生词', '生长', '用于', '用途', '由于', '申请', '电动车', '电台', '电子', '电子邮件', '电影', '电影院', '电梯', '电源', '电灯', '电脑', '电视', '电视剧', '电视台', '电视机', '电话', '男人', '男士', '男女', '男子', '男孩儿', '男朋友', '男生', '画儿', '画家', '留下', '留学', '留学生', '疑问', '疗养', '病人', '痛快', '痛苦', '登山', '登录', '登记', '白天', '白色', '白菜', '百度', '百科', '百货', '的确', '的话', '皇上', '皇帝', '皮包', '监督', '盘子', '目前', '目标', '目的', '直到', '直接', '直播', '直辖市', '相互', '相似', '相信', '相关', '相反', '相同', '相处', '相当', '相机', '相比', '相片', '看上去', '看不起', '看到', '看望', '看来', '看法', '看病', '看见', '看起来', '真实', '真正', '真的', '眼前', '眼泪', '眼睛', '眼里', '眼镜', '着急', '着火', '睡着', '睡觉', '知识', '知道', '短信', '短处', '短期', '短裤', '矮小', '石头', '石油', '石首', '矿泉水', '研制', '研究', '研究生', '破产', '破坏', '确保', '确定', '确实', '确认', '碰到', '碰见', '礼物', '社会', '社会主义', '祝福', '神秘', '神经', '神经网络', '神话', '票价', '禁止', '离不开', '离婚', '离开', '秋天', '秋季', '种子', '种植', '种类', '科学', '科技', '秘书', '秘密', '积极', '积累', '称为', '称赞', '移动', '移民', '程序', '程序设计', '程度', '稳定', '究竟', '穷人', '空儿', '空气', '空调', '空间', '穿上', '突出', '突然', '窗台', '窗子', '窗户', '立刻', '立即', '站住', '竟然', '童年', '童话', '笑话', '笑话儿', '笔记', '笔记本', '符号', '符合', '第一', '第二', '等于', '等到', '等待', '答应', '答案', '筷子', '简单', '简历', '简直', '算法', '管理', '箱子', '篮球', '米饭', '类似', '类型', '粗心', '粮食', '精力', '精彩', '精神', '系列', '系统', '紧密', '紧张', '紧急', '红包', '红色', '红茶', '红酒', '约会', '纪录', '纪律', '纪念', '纯净水', '纷纷', '练习', '组合', '组成', '组织', '组长', '细致', '细节', '终于', '经典', '经历', '经常', '经济', '经理', '经营', '经过', '经验', '结合', '结婚', '结实', '结束', '结构', '结果', '结论', '绝对', '统一', '统治', '统计', '继续', '维修', '维护', '维持', '综合', '绿色', '绿茶', '缓解', '编辑', '缩小', '缩短', '缺少', '缺点', '网上', '网友', '网址', '网球', '网站', '网络', '网络安全', '美丽', '美元', '美国', '美女', '美好', '美术', '美金', '美食', '群众', '翻译', '老人', '老公', '老太太', '老头儿', '老婆', '老实', '老家', '老师', '老年', '老是', '老朋友', '老板', '老百姓', '考察', '考生', '考虑', '考试', '考验', '而且', '而是', '耳机', '职业', '职工', '联合', '联合国', '联系', '聚会', '肚子', '股东', '背后', '背景', '胖子', '胜利', '胸部', '能不能', '能力', '能够', '能干', '脑袋', '脸上', '自主', '自从', '自信', '自动', '自动驾驶', '自己', '自治区', '自然', '自然语言', '自由', '自行车', '自觉', '自身', '至今', '至少', '舒服', '舒适', '舞台', '航班', '航空', '良好', '色彩', '艺术', '节日', '节目', '节省', '节约', '花园', '英勇', '英国', '英文', '英语', '苹果', '范围', '茶叶', '荆州', '草地', '药店', '药水', '药片', '药物', '获取', '获奖', '获得', '菜单', '营业', '营养', '落后', '著作', '著名', '蓝色', '虚拟现实', '虫子', '虽然', '行业', '行为', '行人', '行动', '行政', '行李', '街道', '衣服', '衣架', '补充', '表情', '表扬', '表明', '表格', '表演', '表现', '表示', '表达', '表面', '衬衣', '衬衫', '袜子', '被子', '被迫', '装修', '装置', '裙子', '裤子', '襄阳', '西北', '西医', '西南', '西方', '西瓜', '西边', '西部', '西餐', '要是', '要求', '见到', '见过', '见面', '观众', '观察', '观念', '观点', '观看', '规则', '规定', '规律', '规模', '规范', '觉得', '角度', '角色', '解决', '解开', '解释', '警察', '计划', '计算', '计算机', '认为', '认出', '认可', '认得', '认真', '认识', '讨论', '训练', '议论', '记住', '记录', '记得', '记者', '记载', '讲座', '讲究', '讲话', '许多', '论文', '设备', '设施', '设立', '设置', '设计', '访问', '证件', '证据', '证明', '评价', '词典', '词条', '词汇', '词语', '试卷', '试题', '试验', '诗人', '诚信', '诚实', '话剧', '话题', '语法', '语言', '语言处理', '语音', '语音识别', '误会', '说不定', '说明', '说服', '说话', '说道', '请假', '请坐', '请客', '请教', '请求', '请进', '请问', '读书', '读者', '读音', '课堂', '课文', '课本', '课程', '调整', '调查', '调皮', '谈判', '谈话', '谢谢', '豆腐', '负担', '负责', '财产', '财富', '责任', '货币', '质量', '购买', '购物', '费用', '资料', '资本', '资格', '资源', '资金', '赞助', '赞成', '赞赏', '赢得', '走开', '走路', '走过', '走进', '赶到', '赶快', '赶紧', '起床', '起来', '起飞', '超市', '超级', '超过', '越来越', '趋势', '足够', '足球', '跑步', '距离', '路上', '路口', '路线', '路边', '跳舞', '跳远', '跳高', '身上', '身份', '身份证', '身体', '身材', '身边', '身高', '车上', '车票', '车站', '车辆', '转动', '转变', '转告', '转弯', '转移', '转身', '轮子', '轮椅', '轮船', '软件开发', '轻易', '轻松', '输入', '辩论', '达到', '迅速', '过分', '过去', '过年', '过来', '过程', '迎接', '运动', '运动会', '运动员', '运气', '运用', '运输', '近代', '近期', '还是', '还有', '这个', '这么', '这些', '这儿', '这时', '这时候', '这样', '这次', '这种', '这边', '这里', '进一步', '进入', '进去', '进口', '进展', '进来', '进步', '进行', '连忙', '连续', '连续剧', '迟到', '迫切', '追求', '退休', '退出', '送到', '送给', '适合', '适应', '适用', '选举', '选手', '选择', '透明', '逐步', '逐渐', '途中', '通信', '通常', '通知', '通知书', '通过', '速度', '造型', '造成', '遇到', '遇见', '道理', '道路', '遗产', '遗传', '避免', '那个', '那么', '那些', '那会儿', '那儿', '那时', '那时候', '那样', '那边', '那里', '邮件', '邮局', '邮票', '邮箱', '部分', '部长', '部门', '部队', '配合', '酒吧', '酒店', '酸奶', '采取', '采用', '采访', '里头', '里边', '里面', '重复', '重大', '重庆', '重新', '重点', '重要', '重视', '重量', '金牌', '针对', '钱包', '铁路', '银牌', '银行', '银行卡', '销售', '错误', '锻炼', '镜头', '镜子', '长城', '长处', '长大', '长期', '长江', '长途', '门口', '门票', '闪电', '问候', '问路', '问题', '闹钟', '阅读', '队员', '队长', '防止', '阳光', '阳台', '阴天', '阶段', '阻止', '阿姨', '附近', '陆地', '陆续', '降价', '降低', '降温', '降落', '限制', '院子', '院长', '除了', '随便', '随手', '随时', '随着', '隔开', '难免', '难受', '难听', '难度', '难看', '难过', '难道', '难题', '集中', '集体', '集合', '集团', '零下', '零食', '需求', '需要', '青少年', '青年', '青春', '非常', '面临', '面前', '面包', '面对', '面条儿', '面积', '面试', '革命', '韦小宝', '音乐', '音乐会', '音节', '项目', '顺利', '顺序', '顾客', '预习', '预报', '预测', '预计', '预订', '预防', '领先', '领域', '领导', '题目', '颜色', '风俗', '风景', '风格', '风险', '飞机', '飞行', '食品', '食堂', '食物', '饭店', '饭馆', '饺子', '首先', '首都', '香港', '香蕉', '马上', '马路', '骑车', '骨头', '高中', '高价', '高兴', '高尚', '高潮', '高级', '高速', '高速公路', '高铁', '鲜明', '鲜花', '鸡蛋', '麻烦', '黄瓜', '黄色', '黄金', '黑暗', '黑板', '黑色', '默默', ]); const DEFAULT_STOP_WORDS = new Set([ '?', '、', '。', '"', '"', '《', '》', '!', ',', ':', ';', '?', '啊', '阿', '哎', '哎呀', '哎哟', '唉', '俺', '俺们', '按', '按照', '吧', '吧哒', '把', '罢了', '被', '本', '本着', '比', '比方', '比如', '鄙人', '彼', '彼此', '边', '别', '别的', '别说', '并', '并且', '不比', '不成', '不单', '不但', '不独', '不管', '不光', '不过', '不仅', '不拘', '不论', '不怕', '不然', '不如', '不特', '不惟', '不问', '不只', '朝', '朝着', '趁', '趁着', '乘', '冲', '除', '除此之外', '除非', '除了', '此', '此间', '此外', '从', '从而', '打', '待', '但', '但是', '当', '当着', '到', '得', '的', '的话', '等', '等等', '地', '第', '叮咚', '对', '对于', '多', '多少', '而', '而况', '而且', '而是', '而外', '而言', '而已', '尔后', '反过来', '反过来说', '反之', '非但', '非徒', '否则', '嘎', '嘎登', '该', '赶', '个', '各', '各个', '各位', '各种', '各自', '给', '根据', '跟', '故', '故此', '固然', '关于', '管', '归', '果然', '果真', '过', '哈', '哈哈', '呵', '和', '何', '何况', '何处', '何时', '嘿', '哼', '哼唷', '呼哧', '乎', '呼', '忽然', '或', '或是', '或者', '极了', '及', '及其', '及至', '即', '即便', '即或', '即令', '即若', '即使', '几', '几时', '己', '既', '既然', '既是', '继而', '加之', '假如', '假若', '假使', '鉴于', '将', '较', '较之', '叫', '接着', '结果', '借', '紧接着', '进而', '尽', '尽管', '经', '经过', '就', '就是', '就是说', '据', '具体地说', '具体说来', '开始', '开外', '靠', '咳', '可', '可见', '可是', '可以', '况且', '啦', '来', '来着', '离', '例如', '哩', '连', '连同', '两者', '了', '临', '另', '另外', '另一方面', '论', '嘛', '吗', '慢说', '漫说', '冒', '么', '每', '每当', '们', '莫若', '某', '某个', '某些', '拿', '哪', '哪边', '哪儿', '哪个', '哪里', '哪年', '哪怕', '哪天', '哪些', '哪样', '那', '那边', '那儿', '那个', '那会儿', '那里', '那么', '那么些', '那么样', '那时', '那些', '那样', '乃', '乃至', '呢', '能', '你', '你们', '您', '宁', '宁可', '宁肯', '宁愿', '哦', '呕', '啪达', '旁人', '呸', '凭', '凭借', '其', '其次', '其二', '其他', '其它', '其一', '其余', '其中', '起', '起见', '岂但', '恰恰相反', '前后', '前者', '且', '然而', '然后', '然则', '让', '人家', '任', '任何', '任凭', '如', '如此', '如果', '如来', '如若', '如上所述', '若', '若非', '若是', '啥', '上下', '尚且', '设若', '设使', '甚而', '甚么', '甚至', '省得', '时候', '什么', '什么样', '使得', '是', '是的', '首先', '谁', '谁知', '顺', '顺着', '似的', '虽', '虽然', '虽说', '虽则', '随', '随着', '所', '所以', '他', '他们', '他人', '它', '它们', '她', '她们', '倘', '倘或', '倘然', '倘若', '倘使', '腾', '替', '通过', '同', '同时', '哇', '万一', '往', '望', '为', '为何', '为了', '为什么', '为着', '喂', '嗡嗡', '我', '我们', '呜', '呜呼', '乌乎', '无论', '无宁', '毋宁', '嘻', '吓', '相对而言', '像', '向', '向着', '嘘', '呀', '焉', '沿', '沿着', '要', '要不', '要不然', '要不是', '要么', '要是', '也', '也罢', '也好', '一', '一般', '一旦', '一方面', '一来', '一切', '一样', '一则', '依', '依照', '矣', '以', '以便', '以及', '以免', '以至', '以至于', '以致', '抑或', '因', '因此', '因而', '因为', '哟', '用', '由', '由此可见', '由于', '有', '有的', '有关', '有些', '又', '于', '于是', '于是乎', '与', '与此同时', '与否', '与其', '越是', '云云', '哉', '再说', '再者', '在', '在下', '咱', '咱们', '则', '怎', '怎么', '怎么办', '怎么样', '怎样', '咋', '照', '照着', '者', '这', '这边', '这儿', '这个', '这会儿', '这里', '这么', '这么点儿', '这么些', '这么样', '这时', '这些', '这样', '正如', '吱', '之', '之类', '之所以', '之一', '只是', '只限', '只要', '只有', '至', '至于', '诸位', '着', '着呢', '自', '自从', '自个儿', '自各儿', '自己', '自家', '自身', '综上所述', '总而言之', '总之', '纵', '纵令', '纵然', '纵使', '遵照', '作为', '兹', '咦', '呃', '好吧', ]); // 基本词性标注(简化版) const SPEECH_TAGS = { n: ['人', '天', '地', '国', '家', '公司', '学校', '医院', '银行', '商店'], v: ['是', '有', '去', '来', '说', '做', '看', '听', '想', '知道', '觉得'], a: ['好', '大', '小', '高', '低', '新', '旧', '美', '丑', '红', '白'], d: ['很', '非常', '特别', '比较', '相当', '十分', '极其', '最'], p: ['在', '的', '了', '着', '过', '与', '和', '对', '为', '由', '从'], m: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '个', '只', '张', '本'], }; /** * 简单中文分词器 */ export class SimpleJieba { private stopWords: Set; constructor(stopWords?: string[]) { this.stopWords = stopWords ? new Set(stopWords) : DEFAULT_STOP_WORDS; } /** * 基本分词 - 使用正则表达式进行简单分词 */ cut(text: string): string[] { // 预处理:规范化文本 text = text.replace(/\s+/g, ' ').trim(); const words: string[] = []; let i = 0; while (i < text.length) { const char = text[i]; // i < text.length 已保证取值成功,此处仅为消除索引访问的 undefined if (char === undefined) break; // 处理中文字符 if (this.isChinese(char)) { // 尝试匹配常见词汇 const word = this.matchWord(text, i); words.push(word); i += word.length; } // 处理英文单词 else if (this.isEnglish(char)) { const word = this.extractEnglishWord(text, i); words.push(word); i += word.length; } // 处理数字 else if (this.isDigit(char)) { const word = this.extractNumber(text, i); words.push(word); i += word.length; } // 处理标点符号 else if (this.isPunctuation(char)) { if (char.trim()) { words.push(char); } i++; } // 跳过空格和其他字符 else { i++; } } return words.filter((word) => word.trim().length > 0); } /** * 带词性标注的分词 */ tag(text: string): Array<{ word: string; pos: string }> { const words = this.cut(text); return words.map((word) => ({ word, pos: this.getPartOfSpeech(word), })); } /** * 匹配词汇(优先匹配长词) */ private matchWord(text: string, startIndex: number): string { // 常见的双字词和三字词匹配 const maxLength = Math.min(4, text.length - startIndex); for (let len = maxLength; len >= 1; len--) { const word = text.substr(startIndex, len); if (len > 1 && this.isCommonWord(word)) { return word; } } // 如果没有匹配到常见词,返回单个字符 const char = text[startIndex]; if (char === undefined) { // 调用方保证 startIndex 在范围内,越界说明调用逻辑有误 throw new Error(`matchWord: startIndex ${startIndex} 越界(文本长度 ${text.length})`); } return char; } /** * 判断是否为常见词汇 */ private isCommonWord(word: string): boolean { return COMMON_WORDS.has(word); } /** * 提取英文单词 */ private extractEnglishWord(text: string, startIndex: number): string { let word = ''; let i = startIndex; while (i < text.length) { const char = text[i]; if (char === undefined) break; if (!this.isEnglish(char) && !this.isDigit(char)) break; word += char; i++; } return word; } /** * 提取数字 */ private extractNumber(text: string, startIndex: number): string { let word = ''; let i = startIndex; while (i < text.length) { const char = text[i]; if (char === undefined) break; if (!this.isDigit(char) && char !== '.') break; word += char; i++; } return word; } /** * 获取词性 */ private getPartOfSpeech(word: string): string { // 简单的词性判断 const firstChar = word[0]; if (firstChar === undefined) return 'n'; // 空词按默认名词处理 if (this.isDigit(firstChar)) return 'm'; // 数词 if (this.isPunctuation(firstChar)) return 'w'; // 标点 if (!this.isChinese(firstChar)) return 'eng'; // 英文 // 查找词性 for (const [pos, words] of Object.entries(SPEECH_TAGS)) { if (words.includes(word)) { return pos; } } // 根据字符特征判断 if (word.length === 1) { if ('很非常特别比较相当十分极其最'.includes(firstChar)) return 'd'; // 副词 if ('的了着过'.includes(firstChar)) return 'p'; // 助词 if ('一二三四五六七八九十'.includes(firstChar)) return 'm'; // 数词 } return 'n'; // 默认名词 } /** * 判断是否为中文字符 */ private isChinese(char: string): boolean { const code = char.charCodeAt(0); return code >= 0x4e00 && code <= 0x9fa5; } /** * 判断是否为英文字符 */ private isEnglish(char: string): boolean { const code = char.charCodeAt(0); return (code >= 0x41 && code <= 0x5a) || (code >= 0x61 && code <= 0x7a); } /** * 判断是否为数字 */ private isDigit(char: string): boolean { const code = char.charCodeAt(0); return code >= 0x30 && code <= 0x39; } /** * 判断是否为标点符号 */ private isPunctuation(char: string): boolean { const punctuations = '。,!?;:""\'\'()【】《》、·…—–'; return punctuations.includes(char) || /[\p{P}]/u.test(char); } /** * 更新停用词 */ setStopWords(stopWords: string[]): void { this.stopWords = new Set(stopWords); } /** * 检查是否为停用词 */ isStopWord(word: string): boolean { return this.stopWords.has(word); } } // 创建默认实例 export const jieba = new SimpleJieba();