实现网

有数据库架构及动画特效开发经验 远程兼职

一般月薪3000元
项目类型:Web开发
每月工作: 3天
工作方式:

职位详情

# 成语+歇后语星云知识库开发文档

## 1. 项目目标

目标是开发一个模拟星系运行的”星云视图气质的成语+歇后语知识库:用星云节点承载成语、歇后语、关键词、首字/次字/末字索引关系;可拖动面板、搜索、筛选、设置与高性能星云渲染作为交互基础。

第一版重点不是做传统列表词典,而是做一个可浏览、可检索、可扩展、可自造内容的星云知识库。用户可以通过顶部搜索框、左侧长度/类型分区、底部字位检索、直接点击星云节点来查看成语或歇后语的释义、出处、例句和关联内容。

## 2. 联网语料调研结论

优先语料源建议采用 `pwxcoo/chinese-xinhua`,仓库说明其包含 31648 个成语和 14032 条歇后语,并提供 `data/idiom.json` 和 `data/xiehouyu.json` 数据文件。该仓库 README 示例显示,成语字段包含 `word`、`pinyin`、`abbreviation`、`explanation`、`derivation`、`example`;歇后语字段包含 `riddle`、`answer`。

数据源链接:

- GitHub 仓库:https://github.com/pwxcoo/chinese-xinhua
- 成语数据:https://github.com/pwxcoo/chinese-xinhua/blob/master/data/idiom.json
- 歇后语数据:https://github.com/pwxcoo/chinese-xinhua/blob/master/data/xiehouyu.json

版权与数据策略:

- 仓库标注 MIT license,但 README 也说明数据来自网上收集整理,且“无任何商业目的”。因此第一版建议仅作为本地/研究/原型语料使用。
- 如果项目未来公开发布或商业化,需要补充数据授权审查,或替换为明确授权的数据源。
- 成语数据可直接进入“释义+出处+例句”面板。
- 歇后语数据原始字段只有谜面和答案,第一版释义可由 `answer` 作为基础解释;出处字段置为“基础语库/未标注”,后续通过补充脚本、人工编辑或用户自造面板完善。

## 3. 推荐工程结构

请借鉴星云视图生成结构`

## 4. 核心数据模型

统一条目模型用于同时承载成语、歇后语和用户自造歇后语。

```ts
type NebulaEntry = {
id: string;
type: "idiom" | "xiehouyu" | "user-xiehouyu";
title: string;
displayText: string;
lengthBucket: "3" | "4" | "5" | "6" | "7" | "8plus" | "idiom";
chars: string[];
firstChar: string;
secondChar: string;
thirdChar: string;
fourthChar: string;
fifthChar: string;
lastChar: string;
pinyin?: string;
abbreviation?: string;
explanation: string;
derivation: string;
example?: string;
riddle?: string;
answer?: string;
sourceType: "base" | "user";
sourceName: string;
createdAt?: string;
updatedAt?: string;
tags: string[];
};
```

归一化规则:

- 成语:`title = word`,`displayText = word`,`type = idiom`,`explanation = explanation`,`derivation = derivation || "未标注"`。
- 歇后语:`title = riddle`,`displayText = riddle + " - " + answer`,`type = xiehouyu`,`explanation = answer`,`derivation = "基础歇后语库/未标注"`。
- 用户自造歇后语:`type = user-xiehouyu`,必须包含 `riddle`、`answer`、`explanation`、`sourceName`,允许用户补充出处、标签和备注。
- 长度分区优先按 `title` 的中文字符数量计算;成语额外进入“成语”分区。

## 5. 五个主要功能模块

### 5.1 顶部标题面板:搜索框+设置

功能定位:

- 作为全局入口,承载项目标题、搜索框、设置按钮、当前数据规模摘要。
- 保持星系视图轻量式悬浮面板,不压住星云主体。

组件内容:

- 标题:`成语歇后语星云`
- 副标题:`成语 / 歇后语 / 自造语库`
- 搜索框:支持输入汉字、拼音、缩写、谜面、答案、释义关键词。
- 设置按钮:打开画质、速度、显示密度、是否显示自造条目、是否显示连线等基础设置。

搜索流程:

- 输入为空:展示当前筛选下的全局星云。
- 输入单字:触发字位索引高亮,显示包含该字的成语/歇后语。
- 输入多字短语:优先精确匹配 `title/displayText`,其次匹配释义、出处、例句。
- 输入拼音或缩写:仅对成语优先匹配 `pinyin/abbreviation`,歇后语可后续扩展拼音索引。

### 5.2 左侧分区面板:长度+类型分区

分区按钮:

- `ALL`
- `3字`
- `4字`
- `5字`
- `6字`
- `7字`
- `>8字`
- `成语`

交互规则:

- 点击任意分区后重建当前星云节点集合。
- 每个按钮显示当前搜索/底部字位筛选上下文下的数量。
- `成语` 是类型分区,不完全等同于 4 字,因为也存在非四字成语。
- 歇后语按谜面长度进入 3/4/5/6/7/8plus 分区。
- 面板可拖动、可折叠、可通过 `resetView=1` 恢复默认位置。

### 5.3 底部检索面板:字位索引

底部按钮:

- `首字`
- `次字`
- `第3字`
- `第4字`
- `第5字`
- `末字`

交互规则:

- 底部按钮不是直接筛选类别,而是切换搜索框当前字的解释方式。
- 例如搜索框输入“风”,底部选中 `首字`,则显示首字为“风”的条目;选中 `末字`,则显示末字为“风”的条目。
- 如果搜索框为空,点击底部按钮显示该字位的热门字云或高频索引星团。
- 点击星云中的“字索引节点”可自动填入搜索框并触发对应字位筛选。

性能策略:

- 预构建 `positionIndex`,避免每次筛选遍历全库。
- 索引结构建议为 `Map>`。
- 当前视图只渲染可见节点,上限默认 2500,超出时用聚合星团表示。

### 5.4 释义面板:成语或歇后语详情

打开方式:

- 搜索结果精确命中时自动打开。
- 点击星云中的成语/歇后语节点时打开。
- 点击关联节点时打开关联列表或详情。

成语详情字段:

- 成语
- 拼音
- 缩写
- 释义
- 出处
- 例句
- 字位结构:首字、次字、第3字、第4字、第5字、末字
- 关联:同首字、同末字、同关键词、同出处关键词

歇后语详情字段:

- 谜面
- 答案
- 释义:第一版默认使用答案,可后续补充解释字段
- 出处:基础库未标注或用户输入
- 字位结构
- 关联:同首字、同答案关键词、同谜面意象

面板行为:

- 可关闭、可固定、可拖动。
- 支持“加入自造模板”:把当前条目复制到自造歇后语面板中改写。
- 支持“查看星云定位”:点击后镜头飞向该节点。

### 5.5 自造歇后语面板

目标:

- 允许用户按固定格式创建自己的歇后语/短语,并加入星云视图。
- 新增内容必须进入同一套搜索、筛选、字位索引和释义面板。

编辑格式:

```text
谜面:__________
答案:__________
释义:__________
出处/作者:__________
标签:__________
备注:__________
```

校验规则:

- `谜面` 必填,2-24 个中文字符或含少量标点。
- `答案` 必填,1-16 个中文字符。
- `释义` 可为空,空时默认等于答案。
- `出处/作者` 可为空,空时默认“用户自造”。
- 禁止与基础库或用户库中完全相同的 `riddle + answer` 重复。

存储策略:

- 浏览器本地版:使用 `localStorage` 或 `IndexedDB` 存储 `user-entries.json` 等价结构。
- 可转发 HTML 包版本:导出用户自造数据为 JSON 文件,下一次导入合并。
- 后续工程版:支持服务端账户空间或本地文件系统保存。

## 6. 星云视图设计

视觉原则:

- 星云效果:深黑星空、低干扰面板、中心白金星核、青绿/橙红/粉色星团。
- 成语节点更像“亮点星”,歇后语节点略长,可用细小彗尾或淡色轨迹区分。
- 当前筛选结果形成主星团,非命中节点降亮度保留空间背景。

布局原则:

- 成语按首字/拼音缩写/出处关键词形成多臂星系。
- 歇后语按谜面意象和答案关键词形成松散星云团。
- 用户自造条目单独带微弱金色描边,避免和基础库混淆。
- 关联线默认极淡,仅悬停、选中或搜索时增强。

性能原则:

- 预计算布局坐标,运行时只做轻量扰动与镜头投影。
- 20k 以上条目不全部用 DOM,全部走 Canvas/WebGL 星点渲染。
- 面板永远只渲染当前详情和少量列表,不渲染全量数据。
- 搜索和筛选使用索引,不直接遍历全量 JSON。

## 7. 搜索与筛选数据流

```text
加载基础语库
-> normalize 成 NebulaEntry[]
-> 合并 user-entries
-> 构建 lengthIndex / typeIndex / positionIndex / keywordIndex
-> 构建 graph-index
-> 渲染初始星云

用户搜索或点击分区
-> 更新 queryState
-> 从索引取 entryId 集合
-> 合并 leftPartition + bottomPosition + searchText 条件
-> 更新星云节点可见性和数量徽标
-> 若精确命中则打开释义面板
```

状态模型:

```ts
type QueryState = {
searchText: string;
leftPartition: "all" | "3" | "4" | "5" | "6" | "7" | "8plus" | "idiom";
positionFilter: "first" | "second" | "third" | "fourth" | "fifth" | "last";
selectedEntryId: string | null;
includeUserEntries: boolean;
quality: "high" | "low";
};
```

## 8. 开发阶段计划

第一阶段:工程骨架与数据契约

- 新建 `idiom-xiehouyu-nebula` 工程结构。
- 接入 `idiom.json`、`xiehouyu.json` 的下载/导入脚本。
- 完成 `NebulaEntry` 归一化和基础统计。
- 验收:能输出总条目数、成语数、歇后语数、用户条目数、长度分区数量。

第二阶段:星云基础视图

- 星空背景和 WebGL/Canvas 星点层。
- 将成语和歇后语作为基础节点渲染。
- 先不做复杂关联线,只做节点分布、亮度、镜头控制。
- 验收:3 万成语 + 1.4 万歇后语可加载,首屏不卡死。

第三阶段:五大面板 UI

- 顶部标题面板:标题、搜索框、设置。
- 左侧分区面板:3/4/5/6/7/8plus/成语。
- 底部检索面板:首字/次字/第3字/第4字/第5字/末字。
- 释义面板:点击节点弹出详情。
- 自造歇后语面板:新增、保存、进入星云。
- 验收:五个模块都能打开、关闭、拖动或固定。

第四阶段:索引与搜索

- 构建长度索引、类型索引、字位索引、关键词索引。
- 搜索框与底部字位检索联动。
- 左侧分区数量徽标随上下文刷新。
- 验收:搜索单字、多字、成语、歇后语答案均可返回正确结果。

第五阶段:详情与关联

- 成语展示释义、出处、例句、拼音。
- 歇后语展示谜面、答案、补充释义、出处。
- 点击详情里的关联项可定位到星云节点。
- 验收:任意节点点击后详情字段完整,不存在字段时有明确兜底文案。

第六阶段:用户自造语库闭环
- 用户新增歇后语后即时进入搜索索引和星云图。
- 支持编辑、删除、导入、导出。
- 支持“只看自造”和“基础库+自造库”切换。
- 验收:刷新页面后用户条目仍存在;导出 JSON 后可重新导入。
第七阶段:性能与打包
- 大数据分片加载。
- 索引缓存到 IndexedDB。
- 手机浏览器适配。
- 生成可转发 HTML+数据包版本。
- 验收:桌面端流畅;手机端可打开、可搜索、可查看详情。
## 9. 验收标准
功能验收:
- 顶部搜索框可搜索成语、歇后语、拼音缩写和释义关键词。
- 左侧分区可按 3/4/5/6/7/8plus/成语筛选,并显示数量。
- 底部检索可按首字、次字、第3字、第4字、第5字、末字筛选。
- 点击星云节点可打开详情面板。
- 用户可新增自造歇后语,并立即进入星云视图和搜索结果。
性能验收:
- 基础库约 4.5 万条可以加载。
- 初始渲染不创建 4.5 万个 DOM 节点。
- 搜索响应目标小于 200ms。
- 筛选响应目标小于 300ms。
- 手机浏览器低画质模式可正常浏览。
数据验收:
- 成语字段完整率统计:`word/explanation/derivation/pinyin`。
- 歇后语字段完整率统计:`riddle/answer`。
- 用户自造条目必须通过格式校验。
- 所有条目都有稳定 `id`,避免重复导入产生重复节点。
做出通用skill,带入其它知识库数据给予对应检索路径,实现同等星云视图动效

## 10. 后续可扩展方向

- 接入“成语接龙”玩法。
- 接入“歇后语猜答案”游戏。

已有16人投递
Small 1cdbd3b8c241787ac96c45fa2f35d3e9
Small 361356b4a2c95398381235c0eb8e989c
Small 2ea3af3320562d5b8ea6e78674150537
Small 25bdc45cebbec8ec1f1543905558567d
Small 406feb752b4c19af38a2cc75b2a9d98d
Small 7f8be82364fd883c4c34cf6c6f9638a9
Small d17950558a824ab2d810e6cd3a427742
Small 0e87fbd8069564e4c1513ce670346347
Small 3f12e919bafa541515b3a0aaeb733b7e
Small 6c40c643dea8a2e0eb57bc0017a2e8ad
Small 920c35dee520eb42690402e54e4f9726
Small 4a7934ab31afd71d8383ca8b315c914c
Small 239554591ae8cdee25c33ceb959dcc4a
Small d70c92a87808b9330317ffd0d588e1a2
Small a36edd00240842dc34c298dd6c61de63
Small 640bbcc5e19f291a2102a142ff5b4963
079db69645f34200c3916166520b0eb7
昵称登录后显示 3 个月前
公司地址 江苏盐城市
团队人数2
融资情况100~499人民币/万
产品介绍

应用现成的中文输入法APP源码挂接多文API

一、前期环境准备(10分钟即可完成)

你已经有heliboard-v3.9源码,只需要配置标准开发环境即可:

用Android Studio Hedgehog/2023+打开项目,配置NDK 25.x+(h...

团队介绍

创始人拥有输入法发明专利,拥有大健康领域资深运作经验,拥有英语及汉语学习多款专利致力于在AI时代的输入法的创新应用,尤其专注于英汉母语培训融汇,以及弹窗式输入法弹窗式在大健康领域入口交互