泰迪杯实战案例超深度解析:特殊医学用途配方食品数据分析与智能推荐系统设计
(第七届泰迪杯数据分析技能赛B题特等奖案例全流程拆解)
一、数据预处理与特征工程(深度扩展)
1.1 PDF文本解析的复杂场景处理
1.1.1 跨页表格解析算法
PDF中的表格常因分页导致结构断裂。为解决这一问题,需设计自适应的布局分析算法:
-
版面分割:利用PDFMiner分析页面布局,识别文本块和图像块的位置坐标。
-
表格续表检测:通过以下特征判断跨页表格:
-
表头重复出现
-
单元格内容连续性(如序号连续)
-
边框线对齐
-
-
合并逻辑:
python
def merge_tables(tables): merged = [] prev_table = None for table in tables: if prev_table and is_continuation(prev_table, table): prev_table = concat_tables(prev_table, table) else: if prev_table: merged.append(prev_table) prev_table = table return merged
1.1.2 多语言混合处理
部分进口产品说明书含中英文混合内容,需进行:
-
语言检测:使用
langdetect
库识别文本段落语言。 -
关键字段对齐:构建双语词典映射(如“Protein”→“蛋白质”)。
-
单位统一转换:
python
def convert_unit(value, from_unit, to_unit='g'): factors = {'mg':0.001, 'μg':1e-6, 'IU':0.025} # 示例转换因子 return value * factors[from_unit]
1.2 结构化数据融合的工业级实践
1.2.1 基于知识图谱的数据对齐
构建产品-成分-疾病知识图谱,解决外键歧义:
-
实体消歧:
-
使用BERT模型计算实体相似度:
python
from sentence_transformers import SentenceTransformer model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') emb1 = model.encode("低蛋白配方") emb2 = model.e
-