1

新词发现(统计学习)通用工具产品系统

我要开发同款
李世峰2026年06月02日
6阅读

技术信息

语言技术
JavaShellElasticSearchMavenNLP
系统类型
算法模型LinuxWindows
行业分类
人工智能工业互联网
参考价格
10000
演示地址
$LISF_SEARCH_DISCOV_WORDS_HOME/discov_words.bat

作品详情

行业场景

在语言快速演化、业务持续拓展、专业垂直领域的场景下,因为词表/模型覆盖不到新词(OOV),导致分词不准(理解偏差)、搜索/推荐/分析效果退化、新领域(新热点)响应慢,需要通过“自动发现新词→补词表/修模型”来闭环解决。
随着互联网的全面普及与信息化的广泛覆盖,产生了大量文本数据。这些文本数据涉及了很多行业场景,这些场景主要包括电商与零售行业、社交媒体与内容平台、金融与投资领域、医疗与医药行业、客服与售后场景、内容安全与风控等。
电商与零售行业:捕捉消费趋势与商品理解
社交媒体与内容平台:热点追踪与内容分发
金融与投资领域:舆情监控与知识图谱构建
医疗与医药行业:文献挖掘与术语标准化
客服与售后场景:高频问题挖掘与工单分类
内容安全与风控:反黑产与反规避

功能介绍

设计了语料收集模块、语料合并模块、索引生成模块、新词挖掘模块、其他(配置、常量、测试以及后处理工具等)模块。
语料收集模块:用于根据原始待分析ID数据目录下的ID数据文件列表,进行多线程收集对应的文本(以及对应文本的逆序),再按最大滑动窗口转换为该阈值范围内的语料数据,最终对这些语料数据进行升序排序后输出。
语料合并模块:用于对语料收集模块输出的一系列固定大小的碎文件,进行多线程全局升序排序合并为正序和逆序语料文件输出。
索引生成模块:用于对语料合并模块输出的正序和逆序语料文件构建双数组Trie树(DAT)索引,索引中存储了语料在语料库里的频率、熵值、右邻居字符的统计信息,方便后面进行超快地挖掘新词。
新词挖掘模块:用于遍历语料合并模块(也可以是语料收集模块,这样可以采用多线程加速,但是代价是需要浪费超过双倍以上的硬盘存储空间来存储语料收集模块输出的中间结果,由于DAT索引结构的查询效率超级高效,多线程的提速空间不是很大)输出的正序语料文件中全部语料的所有可分析窗口(从2到最大词长度),利用索引生成模块输出的索引,综合分析每条语料的频率、左右熵、凝固度信息,判断其是否是一个新词。
其他(配置、常量、测试以及后处理工具等)模块:用于辅助以上四个模块的辅助模块。

项目实现

实现了无监督概率模型、多特征分析、前缀树加速统计、滑动窗口处理、左熵加速处理、索引加速挖词、一索多用、多线程加速分析
- 无监督概率模型:使用统计学习实现了无监督概率模型,最大程度地降低了标数据的人工成本,同时提高了新词发现的准确率与召回率。
- 多特征分析:为了避免单特征分析的偏颇,同时考虑了以下几个统计特征
1. 频率:语料在语料库中出现的次数,只考虑该特征,会出现多个词构成的词组为高频情况。
2. 左右熵:语料在语料库中左右邻居的随机性,该值体现了当前语料的由程度,越高说明该语料的使用场景越多,只考虑该特征,会出现假高场景情况。
3. 凝固度:语料在语料库中的紧密程度,该值越高越说明该语料越紧密,只考虑该特征,会出现半词情况。
- 前缀树加速统计:利用前缀共享的原理,统计每条语料从开始位置到每个字符位置在语料库中出现的频率、右邻居字符的统计信息。
- 滑动窗口处理:将原始ID对应文本,提前进行离线可分析窗口(从1到最大词长度加1)处理,加速所有滑动窗口分析语料的速度。
- 左熵加速处理:将滑动窗口处理后的所有语料逆序,生成逆序语料库,通过空间换时间加速分析语料左熵的速度。
- 索引加速挖词:分别构建正序和逆序语料库的双数组Trie树(DAT)索引,这种索引的查询时间复杂度是查询串的有效匹配长度,与索引的数据量大小无关,所以数据量越大该索引结构的优势越明显。
- 一索多用:在挖词过程中,经常需要通过调整超参(成词的最小频率、最小熵值、最小凝固度)大小来优化挖词效果,如果每次调参都要重新统计分析,时间成本巨昂贵,而该挖此方案充分解决了这个痛点,构建一次语料库索引,可以无数次使用,最适合调参优化。
- 多线程加速分析:该方案除了在索引生成模块没有使用多线程外,其他模块都是用了多线程技术,能够最大限度地充分利用硬件资源来加速挖词的速度。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论