# JiebaNote **Repository Path**: mortal-wei/JiebaNote ## Basic Information - **Project Name**: JiebaNote - **Description**: jieba分词注释版 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-03-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jieba 0.39 注释版 本项目为jieba添加了注释,并结合自己的需要做了部分更改。主要更改内容如下: ## 1、特殊字符 修改正则表达式使其可以支持空格和特殊符号(可以分出外国人名(点号)、书名等)。 **修改位置:** 原__init__.py line44 ```python re_han_default = re.compile("([\u4E00-\u9FD5a-zA-Z0-9+#&\._%]+)", re.U) ``` 改为 ```python re_han_default = re.compile("(.+)", re.U) ``` 如果是仅仅为了支持外国人名、书名,也可以改为 ```python re_han_default = re.compile("([\u4E00-\u9FD5\u300A-\u300B\xb7]+)", re.U) ``` 将含非字符汉字的词语加入本地词典就可以分出了。 另,对于书名不建议以加入本地词典的方式进行分词,可参考**2、中文数字**。 ## 2、中文数字 增加正则匹配,提取中文数字。 关于这点,本人并未以修改源码的方式进行,可对待分词文本先正则预处理,再分词。 ```python # re_skip_book = re.compile(r'(《[^》]*》)', re.U) # 提取书名 re_skip_chnum = re.compile(r'([几一二三四五六七八九十百千万亿]{2,})', re.U) # 提取中文数字(只提同时出现2个及以上的情况) text = '一八九六年李鸿章访问欧洲德国时,才知道什么叫工业强国。' re_skip_chnum.split(text) # ['', '一八九六', '年李鸿章访问欧洲德国时,才知道什么叫工业强国。'] ``` ## 3、本地缓存 表示删除本地缓存jieba.cache文件,每次使用jieba都会重新建立缓存。(根据代码所写本身每次启动是会重新建立缓存的,但实际用时会出现不建立新缓存的情况) **修改位置:** 原__init__.py line133 ```python try: os.remove(cache_file) except: pass ``` ## 配套博文 - [jieba源码解析(一):分词之前](https://www.cnblogs.com/aloiswei/p/11507763.html) - [jieba源码解析(二):jieba.cut](https://www.cnblogs.com/aloiswei/p/11567616.html)