Skip to content

Commit a7d06bb

Browse files
author
fanweiwei
committed
feat: 项目工程化 — 完善文档、CI、工具脚本与使用示例
- 重写 README:添加徽章、词库概览、多语言使用示例、项目结构 - 添加 CONTRIBUTING.md / CODE_OF_CONDUCT.md / SECURITY.md / CHANGELOG.md - 添加 .gitignore,移除 .DS_Store - 补全 LICENSE 版权信息 - 添加 GitHub Issue 模板(bug/新增词条/新增分类)和 PR 模板 - 添加 CI 工作流:数据验证 + stale issue 自动清理 - 添加 scripts/validate.py 和 scripts/stats.py 数据工具 - 添加 Python / Java / Go / Node.js 使用示例 - 修复涉枪涉爆词库编码(UTF-16 → UTF-8) Made-with: Cursor
1 parent b56bbe1 commit a7d06bb

21 files changed

+1311
-3
lines changed

.DS_Store

-6 KB
Binary file not shown.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
name: 问题报告
3+
about: 报告词库中的错误或问题
4+
title: '[Bug] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## 问题描述
10+
11+
<!-- 简要描述你发现的问题 -->
12+
13+
## 涉及文件
14+
15+
<!-- 哪个词库文件存在问题? -->
16+
17+
- [ ] 色情类.txt
18+
- [ ] 政治类.txt
19+
- [ ] 广告.txt
20+
- [ ] 涉枪涉爆违法信息关键词.txt
21+
- [ ] 网址.txt
22+
- [ ] stopword.dic
23+
24+
## 问题详情
25+
26+
<!-- 具体是哪些词条有问题?例如:重复、误分类、格式错误等 -->
27+
28+
## 期望结果
29+
30+
<!-- 你期望的正确状态是什么? -->
31+
32+
## 补充信息
33+
34+
<!-- 其他需要说明的信息 -->
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: 新增分类
3+
about: 建议新增一个词库分类
4+
title: '[New Category] '
5+
labels: enhancement, discussion
6+
assignees: ''
7+
---
8+
9+
## 分类名称
10+
11+
<!-- 新增分类的名称,如"赌博类"、"暴力类"等 -->
12+
13+
## 分类说明
14+
15+
<!-- 该分类涵盖哪些类型的词条? -->
16+
17+
## 必要性
18+
19+
<!-- 为什么需要单独建立这个分类?与现有分类有何不同? -->
20+
21+
## 初始词条
22+
23+
<!-- 如果有的话,可以提供一些初始词条示例 -->
24+
25+
```
26+
示例词条1
27+
示例词条2
28+
```
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: 新增词条
3+
about: 建议新增敏感词或停止词
4+
title: '[New Words] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## 词条分类
10+
11+
<!-- 新词条应归属哪个分类? -->
12+
13+
- [ ] 色情类
14+
- [ ] 政治类
15+
- [ ] 广告类
16+
- [ ] 涉枪涉爆
17+
- [ ] 违规网址
18+
- [ ] 停止词
19+
- [ ] 新分类(请说明)
20+
21+
## 新增词条列表
22+
23+
<!-- 请列出你建议新增的词条,每行一个 -->
24+
25+
```
26+
词条1
27+
词条2
28+
词条3
29+
```
30+
31+
## 新增理由
32+
33+
<!-- 为什么需要新增这些词条? -->
34+
35+
## 数据来源
36+
37+
<!-- 这些词条的来源是什么?(可选) -->

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
## 变更描述
2+
3+
<!-- 简要描述本次 PR 的内容 -->
4+
5+
## 变更类型
6+
7+
- [ ] 新增词条
8+
- [ ] 修复错误(去重、纠正分类等)
9+
- [ ] 新增分类
10+
- [ ] 文档改进
11+
- [ ] 脚本/工具改进
12+
- [ ] 其他
13+
14+
## 变更详情
15+
16+
<!-- 详细说明:
17+
- 新增词条:新增了多少条?来源是什么?
18+
- 修复错误:修复了什么问题?
19+
- 其他:具体做了什么?
20+
-->
21+
22+
## 涉及文件
23+
24+
<!-- 列出本次修改涉及的文件 -->
25+
26+
## 检查清单
27+
28+
- [ ] 我已阅读 [CONTRIBUTING.md](../CONTRIBUTING.md)
29+
- [ ] 新增词条已去重
30+
- [ ] 文件编码为 UTF-8
31+
- [ ] 遵循了对应文件的格式规范
32+
- [ ] 已运行 `python scripts/validate.py` 验证通过
33+
34+
## 关联 Issue
35+
36+
<!-- 如有关联的 Issue,请引用,如 closes #123 -->

.github/workflows/stale.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Stale Issues
2+
3+
on:
4+
schedule:
5+
- cron: '0 0 * * 1'
6+
7+
permissions:
8+
issues: write
9+
pull-requests: write
10+
11+
jobs:
12+
stale:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/stale@v9
16+
with:
17+
stale-issue-message: >
18+
本 Issue 已超过 60 天没有活动,将被标记为 stale。
19+
如果仍有需要,请回复以保持开启状态。
20+
stale-pr-message: >
21+
本 PR 已超过 60 天没有活动,将被标记为 stale。
22+
如果仍有需要,请回复以保持开启状态。
23+
days-before-stale: 60
24+
days-before-close: 14
25+
stale-issue-label: stale
26+
stale-pr-label: stale

.github/workflows/validate.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Validate Data
2+
3+
on:
4+
push:
5+
branches: [master, main]
6+
paths:
7+
- '*.txt'
8+
- '*.dic'
9+
pull_request:
10+
branches: [master, main]
11+
paths:
12+
- '*.txt'
13+
- '*.dic'
14+
15+
jobs:
16+
validate:
17+
name: Validate word lists
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Set up Python
24+
uses: actions/setup-python@v5
25+
with:
26+
python-version: '3.x'
27+
28+
- name: Run validation
29+
run: python scripts/validate.py
30+
31+
- name: Check file encoding
32+
run: |
33+
for file in *.txt *.dic; do
34+
if [ -f "$file" ]; then
35+
encoding=$(file -bi "$file" | grep -oP 'charset=\K[^ ]+')
36+
if [[ "$encoding" != "utf-8" && "$encoding" != "us-ascii" ]]; then
37+
echo "::error file=$file::File encoding is $encoding, expected utf-8"
38+
exit 1
39+
fi
40+
fi
41+
done
42+
echo "All files are UTF-8 encoded."

.gitignore

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# OS
2+
.DS_Store
3+
Thumbs.db
4+
ehthumbs.db
5+
Desktop.ini
6+
7+
# Editor / IDE
8+
*.swp
9+
*.swo
10+
*~
11+
.vscode/
12+
.idea/
13+
*.iml
14+
.cursor/
15+
16+
# Python
17+
__pycache__/
18+
*.py[cod]
19+
*.egg-info/
20+
dist/
21+
build/
22+
.venv/
23+
venv/
24+
.env
25+
26+
# Node
27+
node_modules/
28+
npm-debug.log*
29+
30+
# Java
31+
*.class
32+
*.jar
33+
target/
34+
35+
# Temporary
36+
*.tmp
37+
*.bak
38+
*.log

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# 变更日志
2+
3+
本文件记录项目的所有重要变更。格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/)
4+
5+
## [Unreleased]
6+
7+
### 新增
8+
- 项目工程化:添加 CONTRIBUTING.md、CODE_OF_CONDUCT.md、SECURITY.md
9+
- 添加 GitHub Issue / PR 模板
10+
- 添加 CI 自动化验证(数据格式校验、重复检测)
11+
- 添加数据验证脚本 `scripts/validate.py`
12+
- 添加多语言使用示例(Python、Java、Go、Node.js)
13+
- 完善 README:添加徽章、详细说明、使用示例、项目结构
14+
15+
### 修复
16+
- 补全 LICENSE 中的版权信息
17+
18+
## [1.0.0] - 2017
19+
20+
### 新增
21+
- 色情类敏感词库(~300 条)
22+
- 政治类敏感词库(~325 条)
23+
- 广告类敏感词库(~120 条)
24+
- 涉枪涉爆违法信息关键词库(~430 条)
25+
- 违规网址黑名单(~14,500 条)
26+
- 中文通用停止词库(~1,890 条)

CODE_OF_CONDUCT.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# 贡献者公约
2+
3+
## 我们的承诺
4+
5+
作为成员、贡献者和领导者,我们承诺让每个人参与我们社区的体验不受骚扰,无论年龄、体型、可见或不可见的残疾、民族、性别特征、性别认同和表达、经验水平、教育程度、社会经济地位、国籍、个人外貌、种族、宗教或性取向如何。
6+
7+
我们承诺以有助于建设开放、热情、多元、包容和健康社区的方式行事和互动。
8+
9+
## 我们的标准
10+
11+
有助于为我们的社区创造积极环境的行为包括:
12+
13+
- 对他人表现出同理心和善意
14+
- 尊重不同的意见、观点和经历
15+
- 提供并优雅地接受建设性反馈
16+
- 承担责任并向受我们错误影响的人道歉,并从经验中学习
17+
- 关注不仅对我们个人最好的事情,还关注整个社区最好的事情
18+
19+
不可接受的行为包括:
20+
21+
- 使用带有性暗示的语言或图像,以及任何形式的性关注或挑逗
22+
- 恶意挑衅、侮辱或贬低性评论,以及人身或政治攻击
23+
- 公开或私下骚扰
24+
- 未经明确许可发布他人的私人信息,如物理地址或电子邮件地址
25+
- 在专业环境中被合理认为不恰当的其他行为
26+
27+
## 执行责任
28+
29+
社区领导者有责任澄清和执行我们可接受行为的标准,并将对任何他们认为不恰当、有威胁、冒犯性或有害的行为采取适当且公平的纠正措施。
30+
31+
社区领导者有权利和责任删除、编辑或拒绝不符合本行为准则的评论、提交、代码、Wiki 编辑、Issue 和其他贡献,并在适当时传达审核决定的原因。
32+
33+
## 适用范围
34+
35+
本行为准则适用于所有社区空间,也适用于个人在公共空间正式代表社区时。代表我们社区的例子包括使用官方电子邮件地址、通过官方社交媒体账户发布信息,或在在线或线下活动中担任指定代表。
36+
37+
## 执行
38+
39+
可以通过 GitHub Issue 向项目维护者报告辱骂、骚扰或其他不可接受的行为。所有投诉都将被及时和公平地审查和调查。
40+
41+
所有社区领导者有义务尊重事件报告者的隐私和安全。
42+
43+
## 归属
44+
45+
本行为准则改编自 [Contributor Covenant](https://www.contributor-covenant.org) 2.0 版本。

0 commit comments

Comments
 (0)