邮件解析中如何分离并提取报价邮件?技术方案求助
筛选报价类邮件的可行方案
关键词规则匹配(快速落地)
直接基于邮件标题、正文匹配报价相关关键词,是最易实现的方案。
先定义核心关键词库:["报价", "Quotation", "Quote", "价格", "单价", "报价单", "bid", "投标"],再检查邮件标题或正文是否包含任意关键词。还可以进一步匹配带数字的价格格式(如¥\d+、\$\d+)、特定报价单号,提升准确率。
示例Python代码:def is_quotation_email(subject, content): keywords = {"报价", "Quotation", "Quote", "价格", "单价", "报价单"} subject_lower = subject.lower() content_lower = content.lower() return any(keyword.lower() in subject_lower or keyword.lower() in content_lower for keyword in keywords)利用邮件元数据筛选
很多企业报价邮件有固定特征:比如发件人是销售部门邮箱(后缀含sales、quote)、主题带统一前缀(如【报价】-XX项目)。直接基于发件人域名、主题前缀做筛选,能快速缩小范围。轻量NLP文本分类(提升准确率)
若规则匹配不够精准,可采用轻量文本分类模型:- 收集一批已标注的报价/非报价邮件作为数据集
- 用TF-IDF提取文本特征,搭配朴素贝叶斯分类器训练模型
示例代码片段:
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.naive_bayes import MultinomialNB # X为邮件文本列表,y为标注标签(1=报价,0=非报价) vectorizer = TfidfVectorizer(stop_words='english') X_tfidf = vectorizer.fit_transform(X) clf = MultinomialNB() clf.fit(X_tfidf, y) # 预测新邮件 def predict_quotation(email_content): return clf.predict(vectorizer.transform([email_content]))[0] == 1结合附件特征判断
报价邮件常附带Excel、PDF格式的报价单,文件名多含报价、quote关键词。可检查邮件附件的文件名和类型,作为辅助判断条件。规则迭代优化
先用简单规则跑通流程,再收集误判邮件,补充关键词、调整规则(比如排除含取消报价、报价无效的邮件),逐步提升筛选准确率。
内容的提问来源于stack exchange,提问作者Cupcake
相关产品推荐
相关产品推荐

