Skip to content

Xingye-Dujing/word-segmentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

word-segmentation(中文文本分析工具箱)

我从老师那里了解到了 ROST (下载) 。 但我发现 ROST 太老了,它提供的一些文件和界面有乱码问题。 经过我的测试,它即使有乱码的显示问题,但主功能都还是可用的。

我不满足于此。我想要自己写一个文本分析工具出来。 用 Python 调包实现非常简单且教程丰富,没有意思,纯是工程量。 所以我不想用 Python 去写。 恰好我最近在学习 Dear ImGui, 就想着用 C++ 结合 ImGui 的方式实现。

为了减少我自己的工程量,我现在 GitHub 上找了几个可以直接调用的库。 这样我只需要简单改改就可以完成了。

这个项目感谢通义千问DeepSeek 的大力支持。

注意:这个项目只是一次尝试而已,没想把它做完善, 所以目前只支持 Linux 系统和中文一种语言

调用的库

  1. CppJieba:“结巴(Jieba)”中文分词的 C++ 版本
  2. Dear ImGui:C++ 即时 GUI 库
  3. ImPlot:ImGUI 插件,提供二维绘图的功能
  4. ImGuiFileDialog:ImGUI 插件,提供文件选择对话功能(我简单修改了一下,让它显示中文)

功能介绍

  1. 多种分词方式,并且可处理大达几十 MB 的文件(我尝试过 13.5 MB 的斗破苍穹内容,没有问题)

分词示例

  1. 关键词分析:提供两种算法

关键词示例

  1. 词性标注

词性示例

  1. 词频统计

词频统计示例

  1. 结果可输出为文件保存

结果示例

  1. 词频 CSV 简易编辑器:除基本的编辑功能还提供快速合并几个同义词为一个词进行统计的功能

编辑器示例

  1. 词频可视化图表绘制

图表示例 图表示例

  1. 共四个可执行文件,每个可执行文件仅有几百 KB(不含字典数据)。三个可执行文件各管一个功能,第四个可执行文件整个三个到一个上。

整合版示例

注:示例文件内容是从 http://politics.people.com.cn/n1/2026/0510/c1001-40716785.html 复制粘贴下来的。

如何使用该项目:

  1. 从 Github 上下载 CppJiebaDear ImGuiImPlot
  2. CMakeLists.txt 的路径设置部分改为你自己下载的位置,比如在我电脑上是:
# Path setting
set(imgui_SOURCE_DIR /home/l/projects/imgui-1.92.7)
set(IMPLOT_SOURCE_DIR /home/l/projects/implot-v1.0)
set(cppjieba_SOURCE_DIR /home/l/projects/cppjieba)
  1. 如果没有安装 GLFW,请安装 sudo apt-get install libglfw3-dev libgl1-mesa-dev

  2. 赋予 build.sh 执行权限并运行它。初次运行会显示测试错误,不用管

  3. 运行之后会生成 build 文件夹,里面有四个可执行文件。还需最后一步即可使用。

  4. 将 CppJieba 项目下的 dict 文件夹复制到我们项目的 build。(上面报测试错误就是因为少了这个文件数据)

  5. 现在就可以点击可执行文件使用了。

About

中文文本分析工具箱

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages