'公司名称', 'person_name' => '联系人', 'contact_phone' => '电话', 'contact_email' => '邮箱', 'target_product_category' => '产品品类', 'description' => '描述', ]; /** 计算硬碎片完整度:已填字段数 ÷ 总可填字段数 × 100% */ function hardCompleteness($row) { $filled = 0; $missing = []; foreach (HARD_FIELDS as $field) { if ($row[$field] !== null && trim((string)$row[$field]) !== '') { $filled++; } else { $missing[] = $field; } } $total = count(HARD_FIELDS); $score = $total > 0 ? (int)round($filled / $total * 100) : 0; return ['score' => $score, 'missing' => $missing]; } /** 内容摘要:拼接已有关键信息 */ function hardSummary($row) { $parts = []; if (!empty($row['company_name'])) $parts[] = '公司:' . $row['company_name']; if (!empty($row['person_name'])) $parts[] = '联系人:' . $row['person_name']; if (!empty($row['contact_phone'])) $parts[] = '手机:' . $row['contact_phone']; if (!empty($row['contact_email'])) $parts[] = '邮箱:' . $row['contact_email']; if (!empty($row['target_product_category'])) $parts[] = '品类:' . $row['target_product_category']; if (empty($parts) && !empty($row['description'])) $parts[] = '描述:' . mb_substr($row['description'], 0, 20); return implode(' ', $parts); }