文本挖掘(一)—— 新词发现2

续接 文本挖掘(一)—— 新词发现1

苏剑林新词发现

https://spaces.ac.cn/archives/6920

文本挖掘(一)—— 新词发现2_第1张图片

进一步解读

基于词典分词

  • 原理:基于词典和AC自动机的快速分词
  • 优缺点: 便于维护,容易适应领域

《新词发现的信息熵方法与实现》

  • 算法介绍:https://spaces.ac.cn/archives/3491
  • 原理:频数、凝固度、自由度;

《【中文分词系列】 2. 基于切分的新词发现》

  • 算法介绍:https://spaces.ac.cn/archives/3913
  • 原理:如果片段的凝固度低于一定程度时,这个片段就不可能成词
  • 优缺点: 很快,结果显得粗糙; 为了得到更细粒度的词语(避免分出太多无效的长词),选择较大的α,比如α=10,但是这带来一个问题:一个词语中相邻两个字的凝固度不一定很大

《【中文分词系列】 5. 基于语言模型的无监督分词》

  • 算法介绍:https://spaces.ac.cn/archives/3956
  • 原理:一种完整的独立于其它文献的无监督分词方法,结合语言模型和贝叶斯概率 (类似概率公式进行计算, 算句子词成句概率,选最高的概率作为分词结果)
  • 优缺点:好很强大,却又显得太过复杂(viterbi是瓶颈之一)

【中文分词系列】 7. 深度学习分词?只需一个词典!

  • 算法介绍:https://spaces.ac.cn/archives/4245
  • 原理: 类似于远程监督的逻辑,词典进行预标注作为训练数据,不过这里训练数据的标注逻辑有一些特殊处理。(采用词典随机拼接作为句子,进一步训练分词模型)

【中文分词系列】 8. 更好的新词发现算法

  • 算法介绍:https://spaces.ac.cn/archives/4256
  • github 实现 https://github.com/bojone/unsupervised-vocabulary-search
  • 原理:① 抽ngram词,保留高凝固度的词 ② 切词统计 ③ 过滤掉不在第一步的分词结果
  • 效果较2 5 好了很多
  • 代码进一步重构和优化见这里: https://spaces.ac.cn/archives/6920, 文中提到 7 的理论最漂亮 , {- 8 的综合性能最好-};

分享一次专业领域词汇的无监督挖掘

  • 算法介绍:https://spaces.ac.cn/archives/6540
  • 原理:跟基准领域做差集,结合一些过滤和语义筛选的逻辑,细节可以参看文章和代码
  • 宣称效果没有特别好,尝试效果一般,主要时间比较长

延伸逻辑

基于8 更快更好的新词发现

  • 基于 https://spaces.ac.cn/archives/6920 ,一份复现代码: https://github.com/bojone/word-discovery 一份进一步优化代码:https://github.com/Chuanyunux/Chinese-NewWordRecognition
  • kenlm的训练使用方法: https://github.com/mattzheng/py-kenlm-model 可参考

新词发现其它介绍及github源码

1 比较基础的凝固度自由度/信息熵方法

  • http://www.hankcs.com/nlp/extraction-and-identification-of-mutual-information-about-the-phrase-based-on-information-entropy.html 提取1-3阶共现,通过左右信息熵计算得到新词短语 (作者给的结果看起来还可以) 代码已集成到HanLP中开源:http://www.hankcs.com/nlp/hanlp.html (介绍和引用: https://zhuanlan.zhihu.com/p/28095072, 其中还提到了https://github.com/sing1ee/dict_build )
  • 一个github源码链接:https://github.com/search?p=2&q=%E6%96%B0%E8%AF%8D%E5%8F%91%E7%8E%B0&ref=opensearch&type=Repositories
  • https://github.com/actank/new_words_find 包含新词发现和同义词识别,算法为简单的凝固度和信息熵+规则过滤; 同义词识别采用word2vec,取topk
  • SNS: 算法:http://www.matrix67.com/blog/archives/5044 代码:https://github.com/xylander23/New-Word-Detection
  • https://github.com/fzibin/New_word_discovery 包含反作弊新词发现和短语提取
  • https://github.com/Lapis-Hong/fast-xinci 号称比较快,基于C++,后面看有效率需要使用

2 基于统计 TopWORDS

  • {+TopWORDS +} https://baijiahao.baidu.com/s?id=1622711692639477068&wfr=spider&for=pc ① 预处理、② Apripri 策略得到超完备词典 ③ EM算法估计词实际使用概率 ; 词典排序和动态规划也用到了

3 遗忘算法:

  • https://www.52nlp.cn/forgetnlp2 采用遗忘算法,将句子划分成若干子串,这些子串即为“候选词”。在遗忘的作用下,如果“候选词”会周期性重现,那么它就会被保留在词库中,相反如果只是偶尔或随机出现,则会逐渐被遗忘掉。 感觉不太适合做当前任务

4 HarvestText

  • 看起来很强大,包括 底层 分词、文本清洗、实体链接、实体识别、新词发现、拼音纠错、别名识别, 上层任务:情感分析、文本摘要、事实抽取、问答
  • github 链接:https://github.com/blmoistawinde/HarvestText

5 jiagu

  • jiagu也标榜包含多种NLP下游任务,包括中文分词、词性标注、命名实体识别、知识图谱关系抽取、关键词提取、文本摘要、新词发现、情感分析、文本聚类
  • https://github.com/ownthink/Jiagu, 可直接调包

6 Transformer

  • https://zhuanlan.zhihu.com/p/94486848 信息熵 + transformer学习bakeoff2005微软分词得到的词语进行过滤
  • https://github.com/kpot/keras-transformer
  • https://github.com/GlassyWing/transformer-word-segmenter

other:

  • 发现了个比较全的简书: https://www.jianshu.com/p/81cc538a877f
  • 结巴分词: https://blog.csdn.net/Yellow_python/article/details/83991967

论文

1 《Chinese New Word Detection from Query Logs》 2010, ADMA, 论文未获取, 摘要提到 轨迹相似性

2 2020.acl-Embarrassingly_Simple_Unsupervised_Aspect_Extraction.pdf 2020.acl 属性词发现,基于word2vect+RBF+attention

2004
Chinese_Segmentation_and_New_Word_Detection.pdf

条件随机场

2017.ACL
Domain-Specific_New_Words_Detection_in_Chinese.pdf

领域topword模型

2010
Incorporating_New_Words_Detection_with_Chinese_Word_Segmentation_.pdf

传统凝固度(经典凝固度+自由度之前的文章)

2019ICLR
unsupervised_word_discovery_with_segmental_neural_language_models.pdf

训练分段语言模型

  • paper(中文分词)

2019
Neural_Chinese_Word_Segmentation_as.pdf

传统思想将中文分词看作序列标注问题,本文将中文分词看作一个序列转换问题,即训练seq2seq模型,输入文本序列,输出为分割后的文本序列。有相关代码。github链接

2020
Unified_Multi-Criteria_Chinese_Word_Segmentation_with_BERT.pdf

主要解决的是多个分词准则下的中文分词任务,未提供代码

2020
A_New_Clustering_neural_network_for_Chinese_word_segmentation.pdf

本文将中文分词看作是一个聚类问题,模型构建思路为:使用LSTM和self-attention结构来收集每一层的上下文和句子级特征,在经过几层后,使用聚类模型将字符进行分组。无代码。

2019
BERT_Meets_Chinese_Word_Segmentation.pdf

主要引进BERT编码。无代码。

  • paper(短文本主题)

2018
STTM_A_Tool_for_Short_Text_Topic_Modeling.pdf

你可能感兴趣的:(NLP,自然语言处理,机器学习,深度学习,算法)