《书传会选》服饰内容提取·日志
基本信息
- 文件路径:/home/z/my-project/upload/尚书/尚书/书传会选.txt
- 文件大小:618,239字节,249行(超长行,最长达9942字符)
- 编码:UTF-8(含CRLF行终止符,部分字节需errors='replace'处理)
- 输出目录:/home/z/my-project/upload/尚书output/书传会选/
提取过程
第一轮:基础关键词搜索(衣/裳/裘/弁/冕/服)
| 关键词 | 命中行数 | 行号 |
|---|---|---|
| 衣 | 22行 | 54,56,58,62,80,81,133,135,137,167,169,171,181,209,211,217,219,232,234,235,237,238 |
| 裳 | 5行 | 62,80,133,172,232 |
| 裘 | 2行 | 80,219 |
| 弁 | 3行 | 84,175,232 |
| 冕 | 5行 | 60,62,119,232,234 |
| 服 | 47行 | 34,56,58,60,62,80,81,110,111,113,115,119,123,125,131,133,137,138,161,166,167,169,171,173,174,175,177,179,181,183,205,208,209,211,213,216,217,219,228,229,232,234,235,237,241,243,245 |
操作命令(Python脚本,因bash grep遇编码错误):
```python
with open('书传会选.txt', 'r', encoding='utf-8', errors='replace') as f:
lines = f.readlines()
keywords = ['衣', '裳', '裘', '弁', '冕', '服']
for kw in keywords:
hits = [i+1 for i, line in enumerate(lines) if kw in line]
print(f'{kw}: {len(hits)} hits, lines: {hits}')
```
第二轮:冠/带/佩/舄/芾/韨搜索
| 关键词 | 命中行数 | 行号 | 备注 |
|---|---|---|---|
| 冠 | 8行 | 34,80,119,171,205,207,232,234 | 行34冠篇首=编排义;行80冠石山=地名 |
| 带 | 0行 | — | 无命中 |
| 佩 | 12行 | 56,62,80,82,84,119,121,161,166,213,243,247 | 大多为"背音佩"音释或人名 |
| 舄 | 0行 | — | 无命中 |
| 芾 | 0行 | — | 无命中 |
| 韨 | 0行 | — | 无命中 |
第三轮:黼/黻/绣/衮/皮弁/章服搜索
| 关键词 | 命中行数 | 行号 |
|---|---|---|
| 黼 | 2行 | 62,232 |
| 黻 | 1行 | 62 |
| 绣 | 2行 | 62,232 |
| 衮 | 5行 | 60,62,80,119,232 |
| 皮弁 | 0行 | — |
| 章服 | 0行 | — |
第四轮:玄衣/黄裳/赤舄/采服/锡服/絺冕搜索
| 关键词 | 命中行数 | 行号 |
|---|---|---|
| 玄衣 | 0行 | — |
| 黄裳 | 0行 | — |
| 赤舄 | 0行 | — |
| 采服 | 0行 | — |
| 锡服 | 0行 | — |
| 絺冕 | 0行 | — |
第五轮:五服/五采/山龙/华虫/宗彝/藻火/粉米搜索
| 关键词 | 命中行数 | 行号 | 备注 |
|---|---|---|---|
| 五服 | 9行 | 56,60,62,80,115,177,219,228,229 | 行56=刑罚义;行62/80=地域义+服饰义混合 |
| 五采 | 1行 | 62 | 服饰义 |
| 山龙 | 1行 | 62 | 服饰义 |
| 华虫 | 1行 | 62 | 服饰义 |
| 宗彝 | 0行 | — | (注:原文用"宗彝"的异体字) |
| 藻火 | 1行 | 62 | 服饰义 |
| 粉米 | 1行 | 62 | 服饰义 |
上下文提取操作
对关键行进行上下文提取,因行超长(最长达9942字符),采用Python定位关键词前后120-300字符的方式提取:
```python
CTX = 120 # 上下文字符数
for ln in key_lines:
line = lines[ln-1]
for kw in found_kws:
pos = line.find(kw)
s = max(0, pos - CTX)
e = min(len(line), pos + len(kw) + 180)
ctx = line[s:e].strip()
print(f'L{ln}[{kw}]: ...{ctx}...')
```
重点提取行:56, 58, 60, 62, 80, 119, 133, 171, 175, 219, 232, 234
噪声过滤
以下内容被判定为非服饰义并排除:
- 行34:服虔(人名)、"以序冠篇首"(编排用语)
- 行54:胤之舞衣——舞具,非常服
- 行56:五刑有服/五服三就——刑罚义
- 行58:奄衣检反——音释标注;"中土之民服从"——顺从义
- 行80:冠石山——地名
- 行82、84:背音佩——音释标注
- 行56"北如字又音佩"、行62"背音佩"——音释,非服饰义
- 行80"珠为服饰"——间接提及,非核心服饰制度
- 行175"尽弁"——事件描述,非服饰制度阐述
最终统计
- 有效服饰相关条目:11处
- 分属类别:十二章服、冕服等级、顾命服饰、冕服丧服、衣裳在笥、织皮为裘、玄纁缟、车服以庸、衣冠容貌、缀衣司服、皮服来贡
- 排除非服饰义条目:约9处
- "服"字噪声率:约65%(47行中仅约16行为服饰义)