Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Word Project

一个大学时期完成的英文单词检查与纠错实验项目。项目从早期的按字母词典文件查找,逐步重构为基于 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/wordbuild/wordPort 可能无法在 macOS 或其他平台直接运行。建议在本机重新编译。

构建

方式一:直接使用 C++ 编译器

交互式查询入口:

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.local

方式二:使用 CMake

mkdir -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.dat
  • resource/raw-dict.csv
  • resource/word_checker_en.txt

这些资源现在保存在顶层 resource/ 中。使用 CMake 构建时,资源会自动复制到构建目录,方便程序继续按 resource/... 的相对路径读取。

当前状态

这个仓库保留了大学时期项目的原始历史和结构,同时做了少量兼容修复,使源码可以在 macOS 上重新编译运行。已知仍可继续整理的方向:

  • 清理已提交的 build/ 构建产物和平台相关二进制
  • 进一步清理历史中遗留的构建缓存
  • 继续消除编译警告
  • 增加自动化测试

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages