一个大学时期完成的英文单词检查与纠错实验项目。项目从早期的按字母词典文件查找,逐步重构为基于 HashTable 和 Trie 的 C++ 版本,可以查询英文单词的中文释义,并对拼写错误的单词给出候选修正。
- 查询英文单词对应的中文释义
- 从命令行检查一个单词、句子或文件
- 使用 Trie 生成候选词,对拼写错误进行简单纠错
- 使用 HashTable 加载词典数据,提升查询效率
.
├── CMakeLists.txt
├── kernel/
│ ├── include/ # 核心接口:SymSpell、Word、全局配置
│ └── src/ # 核心实现
├── tools/
│ ├── include/ # HashTable、Trie、IO、Array
│ └── src/ # 工具实现
├── test/
│ ├── main.cpp # 命令行检查入口:-w / -f
│ └── wordPort.cpp # 交互式单词查询入口
└── resource/ # 词典资源文件
- C++17 编译器
- 可选:CMake 3.10+
项目原始构建产物来自 Linux 环境,仓库中的 build/word 和 build/wordPort 可能无法在 macOS 或其他平台直接运行。建议在本机重新编译。
交互式查询入口:
c++ -std=c++17 \
-Itools/include -Ikernel/include \
test/wordPort.cpp \
kernel/src/global.cpp kernel/src/symspell.cpp kernel/src/word.cpp \
tools/src/hashtable.cpp tools/src/io.cpp tools/src/tree.cpp tools/src/array.cpp \
-o build/wordPort.local命令行检查入口:
c++ -std=c++17 \
-Itools/include -Ikernel/include \
test/main.cpp \
kernel/src/global.cpp kernel/src/symspell.cpp kernel/src/word.cpp \
tools/src/hashtable.cpp tools/src/io.cpp tools/src/tree.cpp tools/src/array.cpp \
-o build/word.localmkdir -p build
cd build
cmake ..
cmake --build .当前 CMakeLists.txt 会构建两个入口:
wordPort:交互式单词查询word:命令行检查,支持-w和-f
CMake 构建时会自动把顶层 resource/ 复制到构建目录的 resource/。
程序中的资源路径是相对当前工作目录的 resource/...。如果使用 CMake 构建,请从 build/ 目录运行,因为 CMake 会把资源复制到 build/resource/。
交互式查询:
cd build
./wordPort输入示例:
hello
wrld
computer
命令行检查单词或句子:
cd build
./word -w "hello wrld computer"检查文件:
cd build
./word -f /path/to/input.txt示例输出会把正确单词、修正候选和无法识别的单词分组展示。
当前项目依赖以下资源:
resource/hashtable.datresource/raw-dict.csvresource/word_checker_en.txt
这些资源现在保存在顶层 resource/ 中。使用 CMake 构建时,资源会自动复制到构建目录,方便程序继续按 resource/... 的相对路径读取。
这个仓库保留了大学时期项目的原始历史和结构,同时做了少量兼容修复,使源码可以在 macOS 上重新编译运行。已知仍可继续整理的方向:
- 清理已提交的
build/构建产物和平台相关二进制 - 进一步清理历史中遗留的构建缓存
- 继续消除编译警告
- 增加自动化测试