ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LeadQualifier特征工程深度解析:CountVectorizer与TF-IDF为什么是线索分类的关键

LeadQualifier特征工程深度解析:CountVectorizer与TF-IDF为什么是线索分类的关键 LeadQualifier特征工程深度解析CountVectorizer与TF-IDF为什么是线索分类的关键【免费下载链接】LeadQualifier:dart: Qualify sales leads with machine learning项目地址: https://gitcode.com/gh_mirrors/le/LeadQualifierLeadQualifier是一个基于机器学习的开源销售线索分类Lead Qualification项目它以公司网页描述为输入通过文本特征工程 随机森林自动判断一条销售线索是合格1还是不合格0。这篇文章结合项目真实训练代码带你彻底看懂 CountVectorizer 与 TF-IDF 为什么是线索分类成败的关键。线索分类的数据往往很简单一个 URL 一句公司描述如上所示。这正是项目训练脚本 train_algorithm/run.py 的标准输入格式示例数据见 train_algorithm/input/qualified.xlsx。一、问题背景为什么文本不能直接喂给分类模型随机森林、SGD 等模型只认识数字不认识文字。所以在做销售线索分类之前必须先把文本转换成固定长度的数值向量——这就是文本特征工程它往往决定了模型效果的上限。LeadQualifier 的特征工程流水线分三步 文本清洗去噪、词干提取、去停用词 CountVectorizer词频向量化⚙️ TF-IDF 加权放大领域特征词的区分力二、文本清洗特征提取前先降噪train_algorithm/run.py 中的cleanUp函数依次做三件事操作实现方式目的去特殊字符[^a-zA-Z]正则替换数字、标点统统换成空格只保留字母单词词干提取nltk 的 SnowballStemmer把 customers / customer 归并为同一个词干去停用词nltk 英文停用词表去掉 the、and 等高频低信息词一句 Duke Energy makes life better for millions of people every day 清洗后只剩几个有业务含义的关键词模型不再被噪音干扰。三、CountVectorizer把公司描述变成 10000 维向量向量化核心配置只有几行见 train_algorithm/run.pyvectorizer CountVectorizer( analyzerword, max_features10000, ngram_range(1, 3) )三个参数对线索分类的作用各不相同analyzerword以单词为单位统计词频max_features10000只保留出现频次最高的 10000 个词控制向量维度避免稀疏矩阵爆炸ngram_range(1, 3)除了单个词还统计两字词组、三字词组。veterinary hospital 作为一个整体词组的含义远大于拆开的两个词——这是让线索分类抓准行业属性的关键经过这一步每条公司描述都变成一个 10000 维的词频向量记录了文本里出现过哪些词、各出现几次。四、TF-IDF 加权让特征词决定线索分类词频有一个致命缺陷高频词计次大但providing、services 这类词几乎出现在每条线索里区分力极低。项目因此追加TfidfTransformernorml1, use_idfTrue做二次加权。TF-IDF 的核心思想一句话一个词的权重 它在这篇文本中的重要程度 × 它在整个语料中出现的稀有程度。the、and → 每条线索都有 → 权重极低veterinary、electric → 只出现在少数线索 → 权重极高这恰好符合业务直觉真正区分这条线索属于哪个行业的词才应该对分类结果最有发言权。五、训练-推理一致性最容易被忽视的坑特征工程有个隐藏陷阱同一句文本用不同的词表向量化得到的向量完全不同。LeadQualifier 的处理非常规范见 train_algorithm/run.py只用训练集fit出词表和权重测试集仅transform保证词表统一把vectorizer、tfidf_transformer、训练好的随机森林三个产物一并序列化到 qualify_leads/algorithms/ 目录推理脚本 qualify_leads/run.py 直接加载这三个产物套用与训练完全相同的清洗 → 向量化 → TF-IDF → 预测流水线训练期与推理期的特征空间因此完全对齐。最终输出是一份带 Prediction 列的 Excel 表1 qualified0 disqualified过滤出 1 即可得到值得跟进的线索清单。六、快速运行 LeadQualifier 与调参清单3 步跑起来git clone https://gitcode.com/gh_mirrors/le/LeadQualifier pip install -r requirements.txt python -c import nltk; nltk.download(stopwords)然后把你自己的数据放进 train_algorithm/input/qualified.xlsx与disqualified.xlsx两个工作表各含 URL、Description 两列运行python run.py新的特征工程流水线与模型会自动生成。特征工程常用调参清单参数默认值调参建议max_features10000语料偏小时可降到 5000减少噪声维度ngram_range(1, 3)行业短语多时可尝试 (1, 4)norml1可换 l2 对比分类效果项目还开源了向量化后的数据 xeneta_qualifier/data/train.csv5000 维特征可以直接换上自己的分类器参赛——官方榜单上 SGD 分类器 F1 达 0.905随机森林为 0.878可见特征工程之上模型选择仍有提升空间。七、总结为什么这两个组件是关键CountVectorizer 解决文本怎么变成数字词频计数 N-gram 词组捕获行业短语TF-IDF 解决哪些数字更重要压低通用高频词放大稀缺特征词三个序列化产物保证推理与训练的特征空间严格一致对销售线索分类这类短文本二分类任务特征工程质量往往比模型选型更影响最终效果——这正是 LeadQualifier 把 CountVectorizer 与 TF-IDF 放在流水线核心的原因。【免费下载链接】LeadQualifier:dart: Qualify sales leads with machine learning项目地址: https://gitcode.com/gh_mirrors/le/LeadQualifier创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表