
一文读懂dict_build自动构建中文词库的开源神器到底是什么【免费下载链接】dict_build自动构建中文词库http://www.matrix67.com/blog/archives/5044项目地址: https://gitcode.com/gh_mirrors/di/dict_builddict_build 是一个用 Java 编写的开源神器它可以从原始中文文本中自动构建中文词库无需人工标注、无需词典依赖纯靠统计算法就能把语料里的高频词语自动挖出来。对于做 NLP 分词、搜索引擎、舆情分析的开发者来说这个自动构建词库的工具堪称效率利器。本文将从原理、用法到实战带你彻底读懂这个项目。为什么需要自动构建中文词库中文和英文最大的不同在于英文单词之间有空格天然分隔而中文文本是连续的机器想要理解机器学习是一个词还是三个字必须先有一个词库。传统做法是人工整理词典费时费力且覆盖面有限。而 dict_build 的思路很巧妙让算法自己从海量文本中统计出哪些字组合是词。它参考了 matrix67 博客中关于互联网时代的社会语言学的经典方法论用信息论的方式解决中文分词难题。dict_build 的四大成词条件凭什么判断这是个词一个字符串片段要被判定为词dict_build 会同时考察四个统计指标成词条件作用通俗解释互信息PMI衡量字与字之间的结合强度蝴蝶常一起出现结合紧密更像词左右熵Entropy衡量词语左右邻字的丰富度学习左边可以是认真/努力/好好右边变化多说明独立成词位置成词概率基于搜狗词典统计的字位概率某些字很少出现在词首或词尾可用来过滤ngram 频率词语在语料中的出现频次出现太少的组合直接淘汰只有当这些指标同时达标候选词才会被写入最终的中文词库。这正是该工具自动二字的精髓所在——你只需要提供原始文本剩下的交给算法。快速上手三步完成中文词库自动构建 ⚡对新手来说dict_build 的使用极其简单无需写一行代码。第一步获取程序可以直接使用项目根目录下已经打包好的 dict_build-0.0.3.tar或者用 Gradle 的distTar任务自行打包项目构建配置见 build.gradle。第二步准备数据准备一个UTF-8 编码的纯文本文件每行一段文字即可比如小说、新闻、招聘 JD 都可以。第三步运行解压 tar 包后进入bin目录执行./dict_build 你的数据文件的绝对路径运行结束后会在数据文件同目录生成words_sort.data这就是你想要的中文词库大文件内存不足怎么办如果语料特别大比如几 GB 的文本可能会出现 Out Of Memory。解决方法是调整 JVM 堆内存macOS 和 Linux 下执行export JAVA_OPTS-Xmx2G ./dict_build 你的数据文件的绝对路径2G可以根据机器实际内存灵活调整。此外dict_build 底层还引入了 java-merge-sort 目录即使内存有限也能处理超大文件。输出格式解读词库文件的四列数据生成的words_sort.data每行包含四个字段以 Tab 分隔字段含义词抽取出的词语词频该词在语料中出现的次数互信息词内字词结合强度左右熵左右邻字的信息熵位置成词概率首尾字位概率的最小值例如从《西游记》抽取的结果八戒 1807 7.88 2.00 0.36 师父 1632 7.50 3.74 0.13 大圣 1270 6.59 2.77 0.13 唐僧 1003 7.07 4.35 0.43是不是很神奇没有词典、没有人工标注仅凭统计就让八戒唐僧大圣乖乖浮出水面。实战效果看看它都能抽出什么词 项目 README.md 中给出了多组真实语料的抽取结果足以验证工具的能力《金瓶梅》西门庆、潘金莲、月娘、春梅……人物名、口语词一网打尽《西游记》唐僧、孙大圣、取经、妖精……专有名词和常用词识别准确拉勾 JD 语料工作、开发、数据分析、数据库……招聘领域术语抽取得非常干净全宋词东风、江南、相思、明月……古典诗词意象词信手拈来。这证明 dict_build 的自动构建词库能力不挑领域通用性极强。源码结构自动构建词库的底层实现如果你对实现感兴趣核心逻辑并不复杂整个项目源码结构非常清晰Main.java程序入口串起整个构建流程FastBuilder.java0.0.3 版核心构建器使用radix tree基数树替代旧版的三叉搜索树大幅提升查询性能并加入了 LOG 日志展示抽取进度Builder.java早期版本构建器逻辑更直白适合阅读学习PosProbability.java负责从搜狗词典统计汉字的位置成词概率SplitFileSorter.java对抽取结果按词频排序。整个构建流程大致是清洗文本 → 生成 ngram → 统计互信息与左右熵 → 合并左右熵 → 过滤筛选 → 排序输出环环相扣。适合哪些人使用NLP 初学者想理解无监督中文分词原理dict_build 是绝佳的学习样本搜索引擎开发者需要为特定领域如法律、医疗、电商定制专属分词词库数据挖掘工程师想快速从行业文本中提取高频术语、做舆情词频分析想给分词器喂新词的玩家把自动构建的中文词库导出再导入到 jieba、HanLP 等分词工具中效果立竿见影。小结dict_build 用简洁的设计实现了自动构建中文词库这一硬核需求不需要标注数据、不需要外部词典只要有文本就能产出高质量词库。从《金瓶梅》到拉勾 JD从古典诗词到现代招聘语料它都交出了漂亮的成绩单。如果你正在为分词词库发愁不妨 clone 下来试试git clone https://gitcode.com/gh_mirrors/di/dict_build一键构建专属中文词库从此告别手写词典的苦日子。【免费下载链接】dict_build自动构建中文词库http://www.matrix67.com/blog/archives/5044项目地址: https://gitcode.com/gh_mirrors/di/dict_build创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考