feat(kb-routing): expand 5-way keyword routing coverage
This commit is contained in:
948
test2/server/services/knowledgeKeywords.js
Normal file
948
test2/server/services/knowledgeKeywords.js
Normal file
@@ -0,0 +1,948 @@
|
||||
const COMPANY_ENTITY_KEYWORDS = [
|
||||
'德国PM',
|
||||
'德国PM公司',
|
||||
'PM公司',
|
||||
'PM国际',
|
||||
'PM-International',
|
||||
'PM-International AG',
|
||||
'Rolf Sorg',
|
||||
'邓白氏',
|
||||
'AAA+',
|
||||
'DSN',
|
||||
'BFH',
|
||||
'ELAB',
|
||||
'科隆名单',
|
||||
'GMP',
|
||||
'Halal',
|
||||
'宣明会',
|
||||
'世界宣明会',
|
||||
'斯派尔',
|
||||
'Speyer',
|
||||
'卢森堡',
|
||||
'培安(烟台)日用品有限责任公司',
|
||||
'培安烟台',
|
||||
'烟台',
|
||||
];
|
||||
|
||||
const SYSTEM_ENTITY_KEYWORDS = [
|
||||
'一成系统',
|
||||
'一成AI',
|
||||
'一成Ai',
|
||||
'Ai众享',
|
||||
'AI众享',
|
||||
'数字化工作室',
|
||||
'盛咖学愿',
|
||||
'三大平台',
|
||||
'四大AI生态',
|
||||
'四大Ai生态',
|
||||
'四大生态',
|
||||
'盟主社区',
|
||||
'AI智能生产力',
|
||||
'AI生产力',
|
||||
'智能生产力',
|
||||
'行动圈',
|
||||
'批发式晋级',
|
||||
'身未动,梦已成',
|
||||
'身未动梦已成',
|
||||
'零成本高效率',
|
||||
'零成本高效率运行',
|
||||
'赋能团队',
|
||||
'团队赋能',
|
||||
'团队发展',
|
||||
'文化解析',
|
||||
'故事分享',
|
||||
'自我介绍',
|
||||
'邀约话术',
|
||||
'线上拓客',
|
||||
'线上成交',
|
||||
'陌生客户',
|
||||
'陌生人沟通',
|
||||
];
|
||||
|
||||
const PRODUCT_ENTITY_KEYWORDS = [
|
||||
'PM产品',
|
||||
'PM-FitLine',
|
||||
'FitLine',
|
||||
'PM细胞营养素',
|
||||
'细胞营养素',
|
||||
'基础套装',
|
||||
'基础三合一',
|
||||
'三合一',
|
||||
'基础二合一',
|
||||
'二合一',
|
||||
'小红产品',
|
||||
'小红',
|
||||
'艾特维',
|
||||
'Activize Oxyplus',
|
||||
'Activize Serum',
|
||||
'Activize',
|
||||
'小红精华液',
|
||||
'大白产品',
|
||||
'大白',
|
||||
'倍适',
|
||||
'Basics',
|
||||
'Basic Power',
|
||||
'PowerCocktail',
|
||||
'小白产品',
|
||||
'小白',
|
||||
'维适多',
|
||||
'Restorate',
|
||||
'儿童倍适',
|
||||
'PowerCocktail Junior',
|
||||
'NTC营养保送系统',
|
||||
'NTC',
|
||||
'Nutrient Transport Concept',
|
||||
'火炉原理',
|
||||
'暖炉原理',
|
||||
'阿育吠陀',
|
||||
'Ayurveda',
|
||||
'Med Dental+',
|
||||
'草本护理牙膏',
|
||||
'Men Face',
|
||||
'全效男士护肤抗衰乳霜',
|
||||
'CC-Cell',
|
||||
'CC-Cell胶囊',
|
||||
'CC-Cell乳霜',
|
||||
'CC套装',
|
||||
'CC胶囊',
|
||||
'D-Drink',
|
||||
'小绿排毒饮',
|
||||
'14天排毒D饮料Plus',
|
||||
'ProShape Amino',
|
||||
'ProShape® Amino',
|
||||
'氨基酸',
|
||||
'支链氨基酸',
|
||||
'BCAA',
|
||||
'MEN+',
|
||||
'Men+',
|
||||
'倍力健 MEN+',
|
||||
'倍力健',
|
||||
'小黑',
|
||||
'Herbal Tea',
|
||||
'草本茶',
|
||||
'Hair+',
|
||||
'med Hair+',
|
||||
'口服发宝',
|
||||
'外用发健',
|
||||
'发宝',
|
||||
'Fitness-Drink',
|
||||
'运动饮料健康饮品',
|
||||
'运动饮料',
|
||||
'健康饮品',
|
||||
'TopShape',
|
||||
'孅萃TopShape纤萃减肥',
|
||||
'纤萃减肥',
|
||||
'乐活50+',
|
||||
'Generation 50+',
|
||||
'Apple Antioxy',
|
||||
'苹果细胞抗氧素',
|
||||
'Antioxy',
|
||||
'Zellschutz',
|
||||
'细胞抗氧素',
|
||||
'胶原蛋白肽',
|
||||
'胶原蛋白',
|
||||
'Women+',
|
||||
'乐活奶昔',
|
||||
'乐活',
|
||||
'乳清蛋白',
|
||||
'蛋白粉',
|
||||
'乳酪煲',
|
||||
'乳酪饮品',
|
||||
'乳酪',
|
||||
'IB5',
|
||||
'口腔免疫喷雾',
|
||||
'Q10',
|
||||
'辅酵素',
|
||||
'Q10辅酵素氧修护',
|
||||
'关节套装',
|
||||
'关节舒缓',
|
||||
'男士乳霜',
|
||||
'男士护肤',
|
||||
'去角质',
|
||||
'面膜',
|
||||
'叶黄素',
|
||||
'葡萄籽',
|
||||
'白藜芦醇',
|
||||
'益生菌',
|
||||
'肽美',
|
||||
'德丽',
|
||||
'德维',
|
||||
'宝丽',
|
||||
'美固健',
|
||||
'CitrusCare',
|
||||
'NutriSunny',
|
||||
'Omega',
|
||||
'Young Care',
|
||||
];
|
||||
|
||||
const BUSINESS_ENTITY_KEYWORDS = [
|
||||
'PM事业',
|
||||
'做PM',
|
||||
'加入PM',
|
||||
'招商合作',
|
||||
'招商与代理',
|
||||
'招商稿',
|
||||
'招商',
|
||||
'招募',
|
||||
'代理',
|
||||
'代理商',
|
||||
'代理政策',
|
||||
'加盟',
|
||||
'招商加盟',
|
||||
'合作加盟',
|
||||
'事业合作',
|
||||
'事业机会',
|
||||
'创业',
|
||||
'培训新人起步三关',
|
||||
'起步三关',
|
||||
'培训打造精品会议具体如下',
|
||||
'精品会议',
|
||||
'会议组织',
|
||||
'培训成长上总裁',
|
||||
'成长上总裁',
|
||||
];
|
||||
|
||||
const ROUTE_TOPIC_KEYWORDS = [
|
||||
// 公司相关
|
||||
'公司介绍',
|
||||
'公司背景',
|
||||
'公司实力',
|
||||
'公司地址',
|
||||
'公司电话',
|
||||
'联系方式',
|
||||
'总部',
|
||||
'分公司',
|
||||
'公司成立',
|
||||
'公司历史',
|
||||
'公司规模',
|
||||
'全球布局',
|
||||
'信用评级',
|
||||
'行业排名',
|
||||
'获奖',
|
||||
'慈善',
|
||||
'慈善事业',
|
||||
'社会责任',
|
||||
'不上市',
|
||||
'汽车奖励',
|
||||
'退休金',
|
||||
'旅行',
|
||||
'福利',
|
||||
'企业性质',
|
||||
'发展历程',
|
||||
// 产品相关
|
||||
'产品介绍',
|
||||
'产品说明',
|
||||
'产品推荐',
|
||||
'产品有哪些',
|
||||
'产品列表',
|
||||
'产品图片',
|
||||
'产品外观',
|
||||
// 语音口语化触发词
|
||||
'你们公司',
|
||||
'你们的公司',
|
||||
'你们产品',
|
||||
'你们的产品',
|
||||
'你们那个',
|
||||
'咱们公司',
|
||||
'咱们产品',
|
||||
'咱们的',
|
||||
'你们这个',
|
||||
'你们卖的',
|
||||
'你们的东西',
|
||||
'这个东西',
|
||||
'这东西',
|
||||
'那玩意',
|
||||
// 口语化动词
|
||||
'说说',
|
||||
'讲讲',
|
||||
'介绍介绍',
|
||||
'查查',
|
||||
'帮我查',
|
||||
'帮我问',
|
||||
'帮我看看',
|
||||
'有啥用',
|
||||
'咱吃',
|
||||
'咱用',
|
||||
'咱回事',
|
||||
'咱样',
|
||||
'啥意思',
|
||||
'有啥',
|
||||
'咱办',
|
||||
// 营养品/保健品通用词
|
||||
'营养素',
|
||||
'营养品',
|
||||
'保健品',
|
||||
'保健食品',
|
||||
'营养补充',
|
||||
'营养剂',
|
||||
'膏营养',
|
||||
// 直销事业
|
||||
'直销',
|
||||
'直销公司',
|
||||
'直销事业',
|
||||
// 健康/症状/功效相关(触发KB总入口)
|
||||
'排毒',
|
||||
'排毒产品',
|
||||
'减肥',
|
||||
'减肥产品',
|
||||
'瘦身',
|
||||
'护肤',
|
||||
'护肤品',
|
||||
'护发',
|
||||
'脱发',
|
||||
'掉发',
|
||||
'头发',
|
||||
'牙膏',
|
||||
'喷雾',
|
||||
'关节痛',
|
||||
'关节',
|
||||
'眼睛',
|
||||
'视力',
|
||||
'叶黄素',
|
||||
'抗氧化',
|
||||
'抗衰',
|
||||
'抗衰老',
|
||||
'胶原蛋白',
|
||||
'运动饮料',
|
||||
'免疫力',
|
||||
'能量',
|
||||
'抗疲劳',
|
||||
'疲劳',
|
||||
'睡眠',
|
||||
'失眠',
|
||||
'消化',
|
||||
'肠胃',
|
||||
'便秘',
|
||||
'皮肤',
|
||||
'美容',
|
||||
'美白',
|
||||
'祠斑',
|
||||
'祠痘',
|
||||
'痘痘',
|
||||
'补钹',
|
||||
'补铁',
|
||||
'补血',
|
||||
'骨密度',
|
||||
'补钙',
|
||||
// 特定人群(触发FAQ或产品库)
|
||||
'孕妇',
|
||||
'哺乳期',
|
||||
'怀孕',
|
||||
'孕期',
|
||||
'儿童',
|
||||
'小孩',
|
||||
'孩子',
|
||||
'老人',
|
||||
'老年人',
|
||||
'过敏',
|
||||
'过敏体质',
|
||||
// 事业/招商
|
||||
'事业',
|
||||
'做这个事业',
|
||||
'怎么做这个',
|
||||
'怎么赚钱',
|
||||
'能赚钱吗',
|
||||
'收入',
|
||||
'奖金',
|
||||
'奖金制度',
|
||||
'纪念品',
|
||||
'服务商',
|
||||
'合作伙伴',
|
||||
'为什么选择德国PM',
|
||||
// 合法性/传销相关
|
||||
'正规性',
|
||||
'合法性',
|
||||
'传销',
|
||||
'骗局',
|
||||
'骗子',
|
||||
'是不是传销',
|
||||
'直销还是传销',
|
||||
'合不合法',
|
||||
'正不正规',
|
||||
'层级分销',
|
||||
'非法集资',
|
||||
'拉人头',
|
||||
'发展下线',
|
||||
'报单',
|
||||
'人头费',
|
||||
'安全吗',
|
||||
'合规吗',
|
||||
'有许可证吗',
|
||||
// 好转反应/副作用
|
||||
'好转反应',
|
||||
'整应反应',
|
||||
'排毒反应',
|
||||
'副作用',
|
||||
'不良反应',
|
||||
'皮肤发痒',
|
||||
'皮肤微痒',
|
||||
// 促销活动
|
||||
'促销活动',
|
||||
'活动分数',
|
||||
'5+1活动分数',
|
||||
'5+1',
|
||||
// 产品使用方法
|
||||
'怎么吃',
|
||||
'怎么用',
|
||||
'怎么服用',
|
||||
'服用方法',
|
||||
'吃法',
|
||||
'用法',
|
||||
'用量',
|
||||
'搭配',
|
||||
'空腹吃',
|
||||
'饭前吃',
|
||||
'饭后吃',
|
||||
'温水冲',
|
||||
'冷水冲',
|
||||
'一天吃几次',
|
||||
'一次吃多少',
|
||||
// 产品属性
|
||||
'功效',
|
||||
'作用',
|
||||
'成分',
|
||||
'原料',
|
||||
'配方',
|
||||
'多少钱',
|
||||
'价格',
|
||||
'适合谁',
|
||||
'适用人群',
|
||||
'区别',
|
||||
'哪个好',
|
||||
'多久见效',
|
||||
'哪里买',
|
||||
'怎么买',
|
||||
'保质期',
|
||||
'储存',
|
||||
// 效果/评价相关
|
||||
'效果怎么样',
|
||||
'有效果吗',
|
||||
'有没有用',
|
||||
'好不好',
|
||||
'靠谱吗',
|
||||
'值得买吗',
|
||||
'值得做吗',
|
||||
'真的有用吗',
|
||||
'真的假的',
|
||||
'有科学依据吗',
|
||||
// 加入/参与
|
||||
'怎么加入',
|
||||
'如何加入',
|
||||
'怎么报名',
|
||||
'怎么参与',
|
||||
'怎么做',
|
||||
'如何开始',
|
||||
// 科普/培训/认证
|
||||
'科普',
|
||||
'误区',
|
||||
'认证',
|
||||
'检测',
|
||||
'检测报告',
|
||||
'安全认证',
|
||||
'培训',
|
||||
'新人',
|
||||
'起步',
|
||||
'成长',
|
||||
// 疾病/健康状况(触发FAQ)
|
||||
'高血压',
|
||||
'糖尿病',
|
||||
'胆固醇',
|
||||
'心脏病',
|
||||
'肾病',
|
||||
'肝病',
|
||||
'痛风',
|
||||
'贫血',
|
||||
'肥胖',
|
||||
// 能不能吃/用类问题
|
||||
'能吃吗',
|
||||
'可以吃吗',
|
||||
'能喝吗',
|
||||
'可以喝吗',
|
||||
'能用吗',
|
||||
'可以用吗',
|
||||
'一起吃',
|
||||
'同时吃',
|
||||
'混着吃',
|
||||
'搭配吃',
|
||||
'吃药',
|
||||
'药物',
|
||||
];
|
||||
|
||||
const CANONICAL_KNOWLEDGE_TERMS = [
|
||||
'一成系统',
|
||||
'德国PM',
|
||||
'PM-FitLine',
|
||||
'FitLine',
|
||||
'PM细胞营养素',
|
||||
'NTC营养保送系统',
|
||||
'Activize Oxyplus',
|
||||
'Basics',
|
||||
'Restorate',
|
||||
'儿童倍适',
|
||||
'火炉原理',
|
||||
'阿育吠陀',
|
||||
];
|
||||
|
||||
function escapeRegExp(text) {
|
||||
return String(text || '').replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||||
}
|
||||
|
||||
function uniqueKeywords(keywords) {
|
||||
const seen = new Set();
|
||||
const result = [];
|
||||
for (const keyword of Array.isArray(keywords) ? keywords : []) {
|
||||
const normalized = String(keyword || '').trim();
|
||||
if (!normalized) continue;
|
||||
const lower = normalized.toLowerCase();
|
||||
if (seen.has(lower)) continue;
|
||||
seen.add(lower);
|
||||
result.push(normalized);
|
||||
}
|
||||
return result.sort((a, b) => b.length - a.length);
|
||||
}
|
||||
|
||||
function buildKeywordRegex(keywords, flags = 'i') {
|
||||
const terms = uniqueKeywords(keywords).map(escapeRegExp);
|
||||
return new RegExp(`(?:${terms.join('|')})`, flags);
|
||||
}
|
||||
|
||||
function dedupeMatches(matches) {
|
||||
const result = [];
|
||||
const seen = new Set();
|
||||
for (const item of Array.isArray(matches) ? matches : []) {
|
||||
const normalized = String(item || '').trim();
|
||||
if (!normalized) continue;
|
||||
const lower = normalized.toLowerCase();
|
||||
if (seen.has(lower)) continue;
|
||||
seen.add(lower);
|
||||
result.push(normalized);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
const KNOWLEDGE_ENTITY_KEYWORDS = uniqueKeywords([
|
||||
...COMPANY_ENTITY_KEYWORDS,
|
||||
...SYSTEM_ENTITY_KEYWORDS,
|
||||
...PRODUCT_ENTITY_KEYWORDS,
|
||||
...BUSINESS_ENTITY_KEYWORDS,
|
||||
]);
|
||||
|
||||
const COMPANY_ROUTE_KEYWORDS = uniqueKeywords([
|
||||
...COMPANY_ENTITY_KEYWORDS,
|
||||
'公司介绍',
|
||||
'公司背景',
|
||||
'公司实力',
|
||||
'公司地址',
|
||||
'公司电话',
|
||||
'联系方式',
|
||||
'总部',
|
||||
'分公司',
|
||||
'公司成立',
|
||||
'公司历史',
|
||||
'公司规模',
|
||||
'全球布局',
|
||||
'全球业务',
|
||||
'信用评级',
|
||||
'行业排名',
|
||||
'获奖',
|
||||
'获奖情况',
|
||||
'慈善',
|
||||
'慈善事业',
|
||||
'社会责任',
|
||||
'不上市',
|
||||
'为什么不上市',
|
||||
'汽车奖励',
|
||||
'退休金',
|
||||
'旅行奖励',
|
||||
'旅行',
|
||||
'福利',
|
||||
'企业性质',
|
||||
'发展历程',
|
||||
'发展史',
|
||||
'创始人',
|
||||
'创办人',
|
||||
'老板',
|
||||
'总裁',
|
||||
'年营业额',
|
||||
'营收',
|
||||
'市场份额',
|
||||
'品牌实力',
|
||||
'品牌介绍',
|
||||
'各国地址',
|
||||
'各国电话',
|
||||
'哪个国家',
|
||||
'哪些国家',
|
||||
'多少个国家',
|
||||
'业务覆盖',
|
||||
]);
|
||||
|
||||
const SYSTEM_ROUTE_KEYWORDS = uniqueKeywords([
|
||||
...SYSTEM_ENTITY_KEYWORDS,
|
||||
'故事分享',
|
||||
'自我介绍',
|
||||
'邀约话术',
|
||||
'AI赋能',
|
||||
'AI落地',
|
||||
'转观念',
|
||||
'如何开展业务',
|
||||
'开展业务',
|
||||
'邀约客户',
|
||||
'邀约方法',
|
||||
'邀约技巧',
|
||||
'邀约模板',
|
||||
'线上拓客',
|
||||
'线上成交',
|
||||
'陌生客户',
|
||||
'陌生人沟通',
|
||||
'团队发展',
|
||||
'团队赋能',
|
||||
'团队建设',
|
||||
'团队管理',
|
||||
'批发式晋级',
|
||||
'系统文化',
|
||||
'系统介绍',
|
||||
'系统是什么',
|
||||
'一成是什么',
|
||||
'数字化',
|
||||
'智能工具',
|
||||
'AI工具',
|
||||
'AI众享是什么',
|
||||
'盟主社区',
|
||||
'行动圈',
|
||||
'零成本',
|
||||
'高效率',
|
||||
]);
|
||||
|
||||
const PRODUCT_ROUTE_KEYWORDS = uniqueKeywords([
|
||||
...PRODUCT_ENTITY_KEYWORDS,
|
||||
'产品介绍',
|
||||
'产品说明',
|
||||
'产品推荐',
|
||||
'产品有哪些',
|
||||
'产品列表',
|
||||
'产品图片',
|
||||
'产品外观',
|
||||
'搭配',
|
||||
'功效',
|
||||
'作用',
|
||||
'成分',
|
||||
'原料',
|
||||
'配方',
|
||||
'怎么吃',
|
||||
'怎么服用',
|
||||
'服用方法',
|
||||
'吃法',
|
||||
'用法',
|
||||
'用量',
|
||||
'适合谁',
|
||||
'适用人群',
|
||||
'区别',
|
||||
'哪个好',
|
||||
'多少钱',
|
||||
'价格',
|
||||
'多久见效',
|
||||
'哪里买',
|
||||
'怎么买',
|
||||
'图片',
|
||||
'外观',
|
||||
'规格',
|
||||
'套装',
|
||||
'暖炉原理',
|
||||
'火炉原理',
|
||||
'NTC',
|
||||
'活动分数',
|
||||
'专利',
|
||||
'细胞营养',
|
||||
// 产品功效词
|
||||
'免疫力',
|
||||
'能量',
|
||||
'抗疲劳',
|
||||
'睡眠',
|
||||
'消化',
|
||||
'排毒',
|
||||
'护肤',
|
||||
'护发',
|
||||
'脱发',
|
||||
'抗氧化',
|
||||
'抗衰老',
|
||||
'美容',
|
||||
'美白',
|
||||
'祠斑',
|
||||
'祠痘',
|
||||
'瘦身',
|
||||
'减肥',
|
||||
'关节',
|
||||
'骨密度',
|
||||
'胶原蛋白',
|
||||
// 产品使用方式
|
||||
'空腹吃',
|
||||
'饭前吃',
|
||||
'饭后吃',
|
||||
'温水冲',
|
||||
'冷水冲',
|
||||
'一天吃几次',
|
||||
'一次吃多少',
|
||||
'保质期',
|
||||
'储存',
|
||||
'冷藏',
|
||||
// 产品类别
|
||||
'营养素',
|
||||
'营养品',
|
||||
'保健品',
|
||||
'保健食品',
|
||||
'营养补充',
|
||||
// 产品对比
|
||||
'哪个产品',
|
||||
'推荐产品',
|
||||
'入门产品',
|
||||
'必买产品',
|
||||
'明星产品',
|
||||
'最畅销',
|
||||
'热卖',
|
||||
]);
|
||||
|
||||
const FAQ_ROUTE_KEYWORDS = uniqueKeywords([
|
||||
// 疑问词
|
||||
'怎么办',
|
||||
'为什么',
|
||||
'能不能',
|
||||
'有没有',
|
||||
'怎么回事',
|
||||
'咱回事',
|
||||
'正常吗',
|
||||
'安全吗',
|
||||
'有害吗',
|
||||
'有毒吗',
|
||||
// 好转反应/副作用
|
||||
'好转反应',
|
||||
'整应反应',
|
||||
'排毒反应',
|
||||
'副作用',
|
||||
'不良反应',
|
||||
'不舒服',
|
||||
'身体反应',
|
||||
'身体不适',
|
||||
// 症状词
|
||||
'皮肤发痒',
|
||||
'皮肤微痒',
|
||||
'发痒',
|
||||
'头晕',
|
||||
'便秘',
|
||||
'腹泻',
|
||||
'拉肚子',
|
||||
'恶心',
|
||||
'呕吐',
|
||||
'长痘',
|
||||
'出疹子',
|
||||
'红肿',
|
||||
'口干',
|
||||
'上火',
|
||||
'胃痛',
|
||||
'胃不舒服',
|
||||
'抽筋',
|
||||
'浮肿',
|
||||
'心悸',
|
||||
'气短',
|
||||
'失眠',
|
||||
'多梦',
|
||||
'发热',
|
||||
'出汗',
|
||||
'拉肃子',
|
||||
// 疾病/健康状况
|
||||
'高血压',
|
||||
'糖尿病',
|
||||
'胆固醇',
|
||||
'心脏病',
|
||||
'肾病',
|
||||
'肝病',
|
||||
'痛风',
|
||||
'贫血',
|
||||
'肥胖',
|
||||
'甲亢',
|
||||
'甲减',
|
||||
'胃炎',
|
||||
'肠炎',
|
||||
'哮喘',
|
||||
'湿疹',
|
||||
'过敏',
|
||||
'结石',
|
||||
'癌症',
|
||||
'肿瘤',
|
||||
'水肿',
|
||||
'尿酸',
|
||||
// 特定人群问题
|
||||
'孕妇',
|
||||
'哺乳期',
|
||||
'怀孕',
|
||||
'孕期',
|
||||
'儿童',
|
||||
'小孩',
|
||||
'孩子',
|
||||
'老人',
|
||||
'老年人',
|
||||
'手术后',
|
||||
'化疗',
|
||||
'放疗',
|
||||
'术后',
|
||||
'月子',
|
||||
'吃药',
|
||||
'药物',
|
||||
'与药物',
|
||||
'跟药一起',
|
||||
'问答',
|
||||
'问题',
|
||||
// 能不能吃/用类问题
|
||||
'能吃吗',
|
||||
'可以吃吗',
|
||||
'能喝吗',
|
||||
'可以喝吗',
|
||||
'能用吗',
|
||||
'可以用吗',
|
||||
'一起吃',
|
||||
'同时吃',
|
||||
'混着吃',
|
||||
'搭配吃',
|
||||
'能混合吗',
|
||||
// 效果评价
|
||||
'有效果吗',
|
||||
'有没有用',
|
||||
'好不好',
|
||||
'靠谱吗',
|
||||
'真的有用吗',
|
||||
'真的假的',
|
||||
'有科学依据吗',
|
||||
'多久见效',
|
||||
'多久能看到效果',
|
||||
'吃多久',
|
||||
'要吃多久',
|
||||
// 价格/性价比
|
||||
'贵不贵',
|
||||
'性价比',
|
||||
'划算吗',
|
||||
'值得买吗',
|
||||
]);
|
||||
|
||||
const SCIENCE_TRAINING_ROUTE_KEYWORDS = uniqueKeywords([
|
||||
...BUSINESS_ENTITY_KEYWORDS,
|
||||
// 科普知识
|
||||
'科普',
|
||||
'误区',
|
||||
'营养误区',
|
||||
'健康误区',
|
||||
'保健品误区',
|
||||
'认证',
|
||||
'检测',
|
||||
'检测报告',
|
||||
'安全认证',
|
||||
'GMP认证',
|
||||
'Halal认证',
|
||||
'科学依据',
|
||||
'临床试验',
|
||||
'研究报告',
|
||||
// 招商相关
|
||||
'招商',
|
||||
'招商稿',
|
||||
'代理',
|
||||
'加盟',
|
||||
'加入',
|
||||
'怎么加入',
|
||||
'如何加入',
|
||||
'怎么报名',
|
||||
'怎么参与',
|
||||
'赚钱',
|
||||
'收入',
|
||||
'奖金',
|
||||
'奖金制度',
|
||||
'事业机会',
|
||||
'创业',
|
||||
'创业机会',
|
||||
'副业',
|
||||
'兼职',
|
||||
// 培训相关
|
||||
'新人',
|
||||
'新人入门',
|
||||
'新人指南',
|
||||
'培训',
|
||||
'起步',
|
||||
'起步三关',
|
||||
'会议',
|
||||
'精品会议',
|
||||
'会议组织',
|
||||
'会议运营',
|
||||
'促销',
|
||||
'促销活动',
|
||||
'成长',
|
||||
'总裁',
|
||||
'成长上总裁',
|
||||
'纪念品',
|
||||
'服务商',
|
||||
'合作伙伴',
|
||||
'营销技巧',
|
||||
'销售技巧',
|
||||
'打思维导图',
|
||||
'团队建设',
|
||||
'如何开始',
|
||||
'怎么做',
|
||||
'怎么做这个',
|
||||
'怎么赚钱',
|
||||
'能赚钱吗',
|
||||
'值得做吗',
|
||||
'投资多少',
|
||||
'门槛',
|
||||
'起步费',
|
||||
'报单',
|
||||
]);
|
||||
|
||||
const KNOWLEDGE_ROUTE_KEYWORDS = uniqueKeywords([
|
||||
...KNOWLEDGE_ENTITY_KEYWORDS,
|
||||
...ROUTE_TOPIC_KEYWORDS,
|
||||
]);
|
||||
|
||||
const TRACKER_KEYWORD_GROUPS = [
|
||||
SYSTEM_ENTITY_KEYWORDS,
|
||||
COMPANY_ENTITY_KEYWORDS,
|
||||
PRODUCT_ENTITY_KEYWORDS,
|
||||
BUSINESS_ENTITY_KEYWORDS,
|
||||
];
|
||||
|
||||
const CANONICAL_KNOWLEDGE_REGEX = buildKeywordRegex(CANONICAL_KNOWLEDGE_TERMS, 'i');
|
||||
const KNOWLEDGE_ROUTE_REGEX = buildKeywordRegex(KNOWLEDGE_ROUTE_KEYWORDS, 'i');
|
||||
const KNOWLEDGE_ENTITY_REGEX = buildKeywordRegex(KNOWLEDGE_ENTITY_KEYWORDS, 'gi');
|
||||
|
||||
function hasKeywordFromList(text, keywords) {
|
||||
return buildKeywordRegex(keywords, 'i').test(String(text || ''));
|
||||
}
|
||||
|
||||
function hasCanonicalKnowledgeTerm(text) {
|
||||
return CANONICAL_KNOWLEDGE_REGEX.test(String(text || ''));
|
||||
}
|
||||
|
||||
function hasKnowledgeRouteKeyword(text) {
|
||||
return KNOWLEDGE_ROUTE_REGEX.test(String(text || ''));
|
||||
}
|
||||
|
||||
function extractKnowledgeEntityMatches(text) {
|
||||
return dedupeMatches(String(text || '').match(KNOWLEDGE_ENTITY_REGEX) || []);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
COMPANY_ENTITY_KEYWORDS,
|
||||
SYSTEM_ENTITY_KEYWORDS,
|
||||
PRODUCT_ENTITY_KEYWORDS,
|
||||
BUSINESS_ENTITY_KEYWORDS,
|
||||
ROUTE_TOPIC_KEYWORDS,
|
||||
CANONICAL_KNOWLEDGE_TERMS,
|
||||
KNOWLEDGE_ENTITY_KEYWORDS,
|
||||
COMPANY_ROUTE_KEYWORDS,
|
||||
SYSTEM_ROUTE_KEYWORDS,
|
||||
PRODUCT_ROUTE_KEYWORDS,
|
||||
FAQ_ROUTE_KEYWORDS,
|
||||
SCIENCE_TRAINING_ROUTE_KEYWORDS,
|
||||
KNOWLEDGE_ROUTE_KEYWORDS,
|
||||
TRACKER_KEYWORD_GROUPS,
|
||||
buildKeywordRegex,
|
||||
hasKeywordFromList,
|
||||
hasCanonicalKnowledgeTerm,
|
||||
hasKnowledgeRouteKeyword,
|
||||
extractKnowledgeEntityMatches,
|
||||
};
|
||||
Reference in New Issue
Block a user