## 中文分词课程设计:
设计实现一个中文分词系统,将任意给定的一段中文切分成一个单独的词。掌握动态存储分配,文件读写等功能。
### 一 基本功能
1. 词典维护:导入,增删查改,保存。
2. 索引维护:提高字典查找比对速度。词典发生变化时,索引需响应更新。需要保存硬盘
3. 待处理中文文本的输入:多个段落,多个句子,字数不限,标点符号。键盘输入/文件导入
4. 输入的中文文本进行分词处理:分割后用“|”分隔,保持原文次序,保存到文本文件
4. 用户界面
### 二 参考算法
#### 基于字符串匹配的分词方法
按照扫描方向的不同分为正向和逆向,按照不同长度优先分配分为最大和最小匹配。
1. 正向
> 要求每一句的切分结果中词组的总数最少。 (减字匹配法)
注意:
1. 字典中最长词汇的长度
之后直接进行匹配即可
2. 逆向,是从句子的结尾开始扫描,直至句首。
3. 最少切分分词法:使每一句中切出的词组数目最小
4. 双向匹配法:将正向最大和逆向最大进行组合
#### hash 或者 Trie 树
用于对字典进行索引,这是两种数据结构状态。
#### 变长数组
由于对于结构体TrieNode中child数组的长度未定,所以需要通过变长数组进行动态的添加。
[c语言变长数组实现](http://blog.csdn.net/loophome/article/details/68940606)
#### 中文分词参考词典
见文件/reference/dict.txt
### 三 设计思路:
1. 对词典建立索引(hash或者Trie)
2. 处理用户输入
* 首先对于输入进行处理(",。、!?")=>["xx","xx"],由于存在段落,所以需要保存`\n`。
* 接着处理数组中的内容,此时使用字符串匹配分词法进行比对。
3. 分词处理后,插入"|",插入"\n",(应当处理段落前的进位符)
用户界面使用qt。
不断从字典中进行查找匹配
4. 对英文、中文、数字的区分
a-z 01100001 - 01111010
A-Z 01000001 - 01011010
0-9 00110000 - 00111001
1
### 四、参考
* [【串和序列处理 3】Trie Tree 串集合查找](http://hxraid.iteye.com/blog/618962)
* [中文分词:之Trie树](http://blog.csdn.net/wzb56_earl/article/details/7902669)
*
(1) 每个结点都是词语中的一个汉字。
(2) 结点中的指针指向了该汉字在某一个词中的下一个汉字。这些指针存放在以汉字为key的hash结构中。
(3) 结点中的"#"表示当前结点中的汉字是从根结点到该汉字结点所组成的词的最后一个字。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
资源推荐
资源详情
资源评论
收起资源包目录
基于Qt的中文分词系统源码+项目说明.zip (416个子文件)
main.c 9KB
trie.c 6KB
matchUserInput.c 4KB
shared.c 2KB
testForFindNode.c 942B
maxLength.c 839B
buildDict.c 736B
test.c 621B
resolveInput.c 331B
mainwindow.cpp 27KB
readfromfile.cpp 1KB
readfrominput.cpp 1KB
addnewword.cpp 1KB
changeword.cpp 1020B
readdict.cpp 772B
removeword.cpp 711B
main.cpp 689B
displaydict.cpp 222B
test.cpp 82B
中文分词系统数据结构参考.docx 36KB
.gitignore 42B
mymain.h 3KB
main.h 3KB
mylib.h 2KB
trieTree.h 2KB
mainwindow.h 1023B
readfromfile.h 526B
readfrominput.h 476B
changeword.h 453B
addnewword.h 433B
removeword.h 427B
readdict.h 407B
displaydict.h 291B
mystd.h 213B
test.h 104B
3.jpg 9.75MB
Emerald Water.jpg 198KB
ddd.jpg 117KB
Hazel.jpg 26KB
README.md 3KB
中文分词系统的设计与实现.pdf 395KB
中文分词系统参考实现思路.pdf 125KB
7.png 199KB
8.png 157KB
10.png 141KB
6.png 27KB
4.png 26KB
5.png 26KB
9.png 26KB
11.png 26KB
kfind.png 1KB
gnome-searchtool.png 1KB
search.png 1KB
system-search.png 1KB
document-open-recent.png 1KB
appointment-new.png 1KB
stock_new-appointment.png 1KB
appointment.png 1KB
address-book-new.png 1KB
stock_new-address-book.png 1KB
viewmagfit.png 1KB
zoom-best-fit.png 1KB
gtk-zoom-fit.png 1KB
stock_zoom-page.png 1KB
zoom-fit-best.png 1KB
system-run.png 1KB
gnome-run.png 1KB
gtk-execute.png 1KB
gnome-shutdown.png 1KB
system-shutdown.png 1KB
gtk-zoom-in.png 1KB
stock_zoom-in.png 1KB
zoom-in.png 1KB
viewmag+.png 1KB
gtk-refresh.png 1KB
stock_refresh.png 1KB
reload3.png 1KB
view-refresh.png 1KB
reload.png 1KB
reload_page.png 1KB
reload_all_tabs.png 1KB
viewmag1.png 1KB
zoom-original.png 1KB
gtk-zoom-100.png 1KB
stock_zoom-1.png 1KB
mail_spam.png 1KB
mail-mark-junk.png 1KB
stock_spam.png 1KB
edit-find-replace.png 1KB
gtk-find-and-replace.png 1KB
stock_search-and-replace.png 1KB
stop.png 1KB
process-stop.png 1KB
gtk-stop.png 1KB
stock_stop.png 1KB
gtk-cancel.png 1KB
zoom-out.png 1KB
viewmag-.png 1KB
stock_zoom-out.png 1KB
gtk-zoom-out.png 1KB
共 416 条
- 1
- 2
- 3
- 4
- 5
资源评论
土豆片片
- 粉丝: 1540
- 资源: 5641
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功