9.4 KiB
cellinfo → sector 逆推调研笔记
目标:用
celldata.cellinfo(自动处理、有数据源)逆推出celldata.sector(人工据 cellinfo 整理)。 现有 sector 作为基准/参考。逆推时不清空 sector:仅补充缺失 CGI,已有的保留(避免人工纠正被自动运行冲掉)。 脚本与特征库写入CellData.sql。本文件记录字段映射、规则、每轮测试的优化点与准确率。
一、两表结构(celldata)
cellinfo(数据源,66778 行):CGI, eNodeBID, CellID, PLMN, 基站名称, 小区名称, 频点, 带宽, 制式, 功率, 网络
sector(目标,66969 行):CGI, 扇区, 物理站, 制式, 频段, 带宽, 站型, 网络(原 区域 列已删除:全项目无引用,最终不使用)
连接键:CGI。sector 比 cellinfo 多 ~191 行(历史/其他来源),逆推以 cellinfo 为准。
二、字段来源结论
| sector 字段 | 来源 | 说明 |
|---|---|---|
| CGI | 复制 cellinfo.CGI | 连接键 |
| 网络 | 复制 cellinfo.网络 | 4G / 5G |
| 带宽 | 复制 cellinfo.带宽 | cellinfo 已规范化为如 20M |
| 已删除该列 | 全项目无引用,已 ALTER TABLE sector DROP COLUMN 区域 |
|
| 制式 + 频段 | 频点 + PLMN 推导(特征表) | 见三 |
| 站型 | 名称关键字 + 设备码推导 | 见四 |
| 物理站 | 小区名称解析 | 见五 |
| 扇区 | 物理站 + 扇区号 | 扇区号见五 |
三、频点 → 制式 / 频段(特征库核心)
cellinfo.制式 已给出粗类(FDD/TDD/700M/2.6G),频段再按频点细分;个别需 PLMN 区分:
| 网络 | 频点范围 | PLMN | 制式 | 频段 | 实测样本 |
|---|---|---|---|---|---|
| 5G | ≥4000 | 任意 | 4.9G | 4.9G | 4827.36、4919.52 |
| 5G | 700–800 | 460-00 | 700M | 700M | 763.25(移动)9808 |
| 5G | 700–800 | 460-15 | 广电 | 广电 | 763.25(广电)9802 |
| 5G | 2000–3000 | 任意 | 2.6G | 2.6G | 2524.95 等 |
| 4G | 900–1000 | 任意 | FDD | FDD900 | 939.0 |
| 4G | 1000–1880 | 任意 | FDD | FDD1800 | 1810–1827 |
| 4G | 1880–1920 | 任意 | TDD | F频 | 1895.0、1909.4 |
| 4G | 1920–2110 | 任意 | TDD | A频 | 2017.5 |
| 4G | 2300–2400 | 任意 | TDD | E频 | 2330、2349.8、2364.6 |
| 4G | 2400–2700 | 任意 | TDD | D频 | 2624.6 等 |
关键歧义
- 700M vs 广电:同频点 763.25,由 PLMN 区分(460-00=移动 700M,460-15=中国广电)。✅ 可完美区分。
- D频 vs 3DMM:cellinfo 完全没有 3DMM 标注——
cellinfo.制式仅 4 值700M/TDD/FDD/2.6G;sector 中标 3DMM 的 1400 个小区在 cellinfo 里全部是TDD(4G)。3DMM 是 3D-MIMO 天线属性,人工额外打在 sector 上,源表不可还原。- 分类策略(已采纳用户规则):3DMM 按频点对应的"非 3DMM 实际制式"分类——这些频点(2624.6 等 2.6GHz)的非 3DMM 小区都是
TDD/D频,而 FDD 仅在 900/1800,频点不重叠。故脚本对这 1400 个判TDD/D频即正确(与"3DMM 用 TDD 制式规则"一致)。 - 因此"制式 97.88%"是对照 sector 人工 3DMM 标签的数字,按制式规则 TDD 才是正确分类,制式实际正确率≈100%。现有 sector 的 3DMM 因「不覆盖已有行」保留不变。
- 分类策略(已采纳用户规则):3DMM 按频点对应的"非 3DMM 实际制式"分类——这些频点(2624.6 等 2.6GHz)的非 3DMM 小区都是
四、站型规则(实测覆盖度)
| 站型 | 规则 | 命中 | 总数 | 备注 |
|---|---|---|---|---|
| 室分 | 小区名设备码尾 Z[A-Z]W(如 ZLW/ZRW/ZFW,末字母 W) |
10146 | 10168 | 99.8% |
| 微站 | 小区名含「微小」(如 (微小M)/(微小I)) | 1086 | 1086 | 100% |
| 宏站 | 其余(设备码尾 H,如 Z5H/ZLH/ZFH,且无微小) | — | 54747 | 仅 18 行宏站名含微小(误差≈0.03%) |
判定顺序:室分(W 码) → 微站(微小) → 宏站。W 码与微小在数据中互斥。
五、物理站 / 扇区解析
预处理(仅为解析可靠):全角 ()【】→半角 ()[]、去空格。
设备码(位于小区名尾部):<频率前缀>-Z<x><尾字母>-<扇区号>,正则 [A-Z0-9]+-Z[A-Z0-9]{2}-[0-9]+$。
- 频率前缀:U / E / D / F / DC / RD / RDC 等;尾字母 H=室外(宏/微)、W=室分。
- 例:
U-Z5H-0711、E-ZLW-8、D-ZRH-103、F-ZLH-3、RDC-ZFH-2。
扇区号(取小区名尾部数字串):
- 700M/广电(Z5H 码):取末位数字。
0711→1、0712→2、0713→3、30712→2。 - 其余:取数字串 % 100。
-3→3、-103→3、-113→13、-203→3、-16→16。
物理站:
- 非 700M:= 小区名去设备码后,删除所有括号/方括号内容,但保留
(微小X)。- 例
江门台山河东家禽(从…搬迁)(微小M)(共…F-ZLH)F-ZLH-2→江门台山河东家禽(微小M)。 - 例
江门鹤山坚美园52至53栋(共…E-ZLW)E-ZLW-8→江门鹤山坚美园52至53栋。
- 例
- 700M/广电:名称结构
CBN-<枢纽>(<真实站址>)<码>或CBN-<站址><码>,枢纽与站址同地市前缀。- 通用做法(不写死江门):取外层名(去
CBN-、首个括号前)的前 2 个字作为地市前缀,匹配 base 中以该前缀开头的括号内容为物理站;无匹配则取外层(去CBN-)。- 前 2 字:2 字地市(江门/广州…)直接命中;3 字地市(石家庄…)取「石家」仍能与同地市站址括号匹配。
- 共建(
(共…))/从…拉远等注记括号不以地市开头,自然落外层 → 等价「共建取外层」;共和等地名因括号以地市开头仍取内层。
- 例
CBN-江门台山田头接入间(江门台山狮山)(BBU搬迁)U-Z5H-0713→ 前缀「江门」→江门台山狮山。 - 例
CBN-江门台山通济公园U-Z5H-0713(无括号)→ 外层江门台山通济公园。 - 例
CBN-江门鹤山铸德(江门鹤山共和鸿江工业区)U-Z5H-0712→江门鹤山共和鸿江工业区。 - 实测:对现有(全江门)数据,通用前缀写法与原写死「江门」结果 100% 一致(19726/19726)。
- 通用做法(不写死江门):取外层名(去
扇区 = 物理站 + 扇区号(如 江门新会五和农村二 + 1 = 江门新会五和农村二1)。
括号宽度:现有 sector 的
(微小X)用全角()。逆推统一转半角输出;对比准确率时两侧都做括号归一化,衡量语义正确性而非宽度。
六、测试与准确率(逐轮更新)
测试方法:在 celldata 建 sector_band_ref 特征表 + _sector_infer 暂存表逐字段推导,
JOIN 现有 sector(重叠 CGI n=66001)逐字段比对;物理站/扇区比对时两侧做括号+空白归一化。
Round 1(基础规则)
| 字段 | 准确率 |
|---|---|
| 网络 | 100%(66001) |
| 带宽 | 99.75%(65838) |
| 制式 | 97.88%(64601) |
| 频段 | 97.60%(64417) |
| 站型 | 99.94%(65963) |
| 物理站 | 99.12%(65419) |
| 扇区 | 98.72%(65159) |
失配定位:
- 制式失配 100% 是 TDD↔3DMM(1400)——同频/同 PLMN/同带宽/功率重叠,不可还原。
- 频段失配 = 3DMM(1400) + F频↔A频(162,1895/1909 同频人工分档) + E频↔D频(22)。
- 带宽失配主要 cellinfo=20M 而人工=15M(155,源数据人工修正)。
- 站型失配 38:20 个室分码为
Z[A-Z]R(如 E-ZLR,高铁 SM 站)未被 W 规则覆盖;18 个宏站名含"微小"被误判微站。 - 物理站/扇区失配:700M 多括号/不闭合、非 700M 共建/拉远不闭合括号。
Round 2(物理站 v2/v3:按关键字保留限定括号)——失败回退
尝试只删"共/从/拉远/搬迁…"备注括号、保留 (龙山路)(红线内)(1),物理站反降到 ~98.2%。
原因:① 末尾 [)]+$ 误删了 (微小M) 等合法括号的右括号;② 大量无备注关键字的别名括号本应删除却被保留,净损失。结论:"删全部括号+回贴微小"才是最优主策略。
Round 3(v4:删全部括号 + 悬空清理 + 700M 取"(江门"内容)——定稿
- 非 700M:去码 → 删全部成对括号(3 轮) → 删悬空开括号
\([^()]*$→ 删孤立)→ 回贴(微小X)。 - 700M/广电:取
(江门…括号内容;无则取外层去CBN-("共"开头自然落外层)。 - 扇区号:700M 末位;其余 %100。
| 字段 | 准确率 | 说明 |
|---|---|---|
| 网络 | 100% | 复制 |
| 制式 | 97.88%(排除 3DMM 即 100%) | 仅差不可还原的 3DMM |
| 频段 | 97.60% | 差额=3DMM+同频 F/A、E/D 人工分档 |
| 带宽 | 99.75% | 差额为人工把 20M 改 15M |
| 站型 | 99.94% | |
| 物理站 | 99.59%(65728) | |
| 扇区 | 99.20%(65470) |
剩余残差为不可还原的人工差异,不再继续拟合(避免过拟合):
- 室分多载波编号不一致:
E-ZLW-12→2、-111→1、-115→5(末位)与-16→16(%100)并存;脚本按用户既定 %100。 - 700M 个别人工编号:
0713→1、0712→4、0712→空,与名义 071N→N 规则冲突。 - 物理站个别含区域前缀(
柏怡酒店↔江海柏怡酒店)、保留(龙山路)/(1)等;真实数据存在尾随制表符。 - 因"不覆盖已有行",上述人工值在自动运行中均被保留,不受影响。
落库策略
仅 INSERT sector 中缺失的 CGI(本次快照 921 条),已有 CGI 一律保留。区域留空。
复现实测命令(celldata)
按 CellData.sql 顺序执行即可;准确率核验 SQL:
SELECT 物理站/扇区 归一化后 = sector 对应值 的占比 FROM _sector_infer JOIN sector USING(CGI)。