SkillAgentSearch skills...

NewWordDetection

无监督词库构建系统

Install / Use

/learn @hiyoung123/NewWordDetection
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

NewWordDetection

无监督词库构建系统

目录结构

  • data
    • corpus:待处理文本
    • dict.txt:旧词典
  • src
    • simhash.py:simhash 算法
    • deduplicate.py: 文本去重算法
    • detection.py:词发现算法
  • main.py:入口函数

算法流程

  1. 遍历指定文件目录,拿到所有待处理的文件
  2. 使用 simhash 和倒排索引做文本去重操作
  3. 对所有文本做词频和左右词统计
  4. 计算所有词的凝固度(PMI)和活跃度(DF)等指标
  5. 按照 score 排序词信息
  6. 最后筛选符合要求指标的词,认为是可以单独成词
  7. 与旧词典做对比,不存在于就词典中的词认为是新词

技术原理

  1. simhash

参考:SimHash算法的简单实现

  1. 文本去重

参考:基于simhash的文本去重算法

  1. 凝固度PMI 凝固度表示了词内部的聚合能力,凝固度越大,表面字组成该词的可能性越大。
pmi('abc') = min(p('abc')/(p('a')*p('bc')), p('abc')/(p('ab')*p('c')))
  1. 自由度DF

一个词可以作为词,那么它应该适用于各种不同的场景,也就是它的左右词尽可能会丰富,也就是信息熵越大。 所以我们定义一个词的自由度,就是它左右词信息熵的较小者。

df = min(entropy(left), entropy(right))
  1. 最终得分

使用 alpha 和 beta 调节各个指标的影响程度,综合得到最终得分 score.

score = alpha * pmi + (1 - alpha) * df
score = beta * freq + (1 - beta) * score

代码使用

python main.py  \
    --doc_path data/corpus  \
    --dict_file data/dict.txt \
    --alpha 0.3 \
    --beta 0.1 \
    --max_word_len 5 \
    --hash_size 64 \
    --block_num 4

效果展示

新处理文章:data/corpus\document1
重复内容文章:data/corpus\document2
新处理文章:data/corpus\document3
新处理文章:data/corpus\document4
(Word: ――, Count: 752, Freq: 5.734021466742866e-05, PMI: 8.198559541296442, DF: 5.448484840732345, Score: 5.646162259832883, Left: {'呢': 4, '》': 10, '说': 3, '雄': 2, '验': 2, '会': 3, '上': 5, '起': 1, '你': 2, '病': 2, '忙': 1, '生': 8, '失': 1, '化': 6, '护': 1, '径': 2, '题': 8, '0': 2, '宾': 1, '气': 5, '方': 2, '击': 1, '变': 3, '默': 1, '呼': 1, '器': 2, '品': 10, '页': 1, '台': 2, '日': 3, '心': 3, '发': 1, '次': 2, '咽': 1, '事': 3, '长': 2, '入': 1, '尚': 2, '宝': 3, '己': 9, '的': 25, '魂': 1, '面': 2, '妈': 1, '物': 8, 'n': 3, '时': 2, 'Y': 1, '了': 10, '花': 3, '舞': 1, '节': 4, '欢': 3, '爱': 3, '话': 2, '扇': 1, '乐': 4, '幻': 1, '少': 4, '惧': 1, '女': 1, '助': 2, '刊': 1, '阳': 1, ']': 4, '京': 1, '路': 3, '机': 1, '�': 2, '是': 7, '子': 5, '来': 7, '么': 2, '展': 31, '质': 2, '由': 2, '片': 6, '志': 2, '站': 6, '因': 1, '酒': 2, '人': 13, '势': 2, '征': 1, '4': 3, '意': 1, '祝': 1, '色': 2, '制': 1, '力': 3, '―': 6, '酷': 1, '关': 1, '然': 2, '典': 2, '着': 5, '她': 1, '款': 1, '散': 1, '备': 3, '熟': 1, '在': 3, '多': 1, '7': 2, '漠': 1, '醒': 1, '强': 1, '处': 1, '侣': 1, '里': 4, '分': 3, '习': 1, '奇': 1, '间': 2, '秀': 1, '列': 1, '量': 4, '要': 2, '祖': 3, '郎': 1, '西': 2, '慧': 1, '员': 2, '贵': 1, '奖': 1, '友': 3, '则': 1, '为': 2, '?': 1, '注': 1, '系': 1, '情': 2, '1': 1, '空': 1, '乡': 2, '身': 1, '月': 4, '择': 1, '条': 1, '诀': 2, '光': 1, '白': 1, '妹': 1, '切': 1, '缠': 1, '不': 2, '费': 2, '和': 1, '谢': 1, '收': 1, '怨': 1, '存': 1, '它': 2, '历': 2, '想': 3, '平': 1, '见': 2, '使': 1, '塘': 1, '您': 1, '出': 2, '向': 1, '实': 3, '走': 1, '望': 2, '缺': 1, '荒': 1, '净': 1, '飞': 2, '得': 1, '脚': 1, '悔': 2, '运': 2, '富': 1, '到': 3, '福': 1, '美': 1, '好': 2, '卑': 1, '言': 3, '去': 2, '疑': 1, '广': 1, '样': 1, '经': 2, '标': 1, '恕': 1, 't': 1, '善': 1, '岛': 1, 's': 3, '】': 4, '之': 4, '家': 3, '亮': 1, '敬': 3, '赅': 1, '驴': 1, 'Q': 1, '书': 2, '青': 1, '年': 4, '戏': 1, '定': 1, '件': 1, '期': 3, '动': 5, '何': 1, '案': 1, '湖': 2, '弟': 1, '玩': 2, '等': 1, '委': 1, '头': 3, '号': 2, '段': 1, '弱': 1, '尾': 1, '任': 1, '厮': 1, '激': 1, '将': 1, '进': 3, '造': 2, '名': 1, '铭': 1, '场': 1, '迹': 1, '有': 1, '灭': 1, '天': 1, '本': 1, '阵': 1, '但': 1, '忆': 1, '粒': 1, '问': 1, '托': 1, '义': 2, '野': 1, '理': 2, '估': 1, '联': 1, '够': 1, 'a': 1, '饭': 1, '离': 1, '务': 1, '海': 2, 'y': 3, '识': 3, '累': 1, '呀': 2, '吧': 1, '可': 1, '牛': 1, '太': 1, '獭': 1, '转': 1, '论': 1, '功': 2, '虫': 1, '些': 1, '黑': 1, '俗': 1, '滴': 2, '吗': 3, '法': 3, '大': 2, '们': 3, '德': 1, '改': 1, '视': 1, '歌': 2, '文': 5, '恋': 1, '报': 2, '采': 1, '像': 1, '漫': 1, '索': 1, '作': 2, '享': 1, '火': 2, '者': 2, '神': 1, '信': 1, '看': 1, '兴': 1, '哈': 1, ')': 1, '筑': 1, '男': 1, '客': 2, '播': 1, '字': 2, '道': 1, '于': 1, '眼': 1, '2': 1, '害': 1, '草': 1, '差': 1, '排': 1, '治': 1, '景': 1, '卡': 1, '点': 3, '眶': 1, '老': 1, '同': 1, '新': 1, 'O': 1, 'e': 2, '曲': 1, '息': 1, '感': 1, '版': 1, '师': 1, '高': 1, '噗': 1, '惯': 1, '」': 1, '听': 1, '找': 1, '手': 1, '果': 2, '达': 1, '选': 1, '单': 3, '擎': 1, '能': 1, '姐': 1, '源': 2, '漆': 1, '张': 1, '继': 1, '外': 1, '暗': 1, '业': 2, '统': 1, '类': 1, '归': 1, '国': 2, '我': 2, '活': 1, '暖': 1, '左': 1, '步': 1, '怖': 1, '行': 2, '告': 1, '慎': 1, '睛': 1, '中': 2, '袭': 1, '别': 1, '他': 9, '角': 1, '访': 1, '纸': 1, '魔': 1, '讲': 1, '周': 1, '斯': 1, '坝': 1, '足': 1, '明': 2, '3': 1, '程': 1, '低': 1, '欠': 1, '位': 1, '挟': 1, '牌': 1, '死': 1, '缚': 1, '用': 1, '性': 1, '求': 1, '惑': 1, '遗': 1, '买': 1, '责': 1}, Right: {'A': 5, '你': 6, '不': 11, '《': 46, '与': 3, '就': 3, '新': 5, '张': 9, 'F': 1, '马': 3, '最': 3, '微': 5, '这': 27, '童': 1, '爱': 9, '世': 1, '旭': 1, '立': 2, '亲': 3, '>': 2, '高': 2, '开': 3, '它': 2, '围': 2, '百': 1, '展': 1, '麻': 1, '吴': 3, '嘉': 2, '去': 1, '好': 4, '软': 1, '赠': 1, '致': 3, '支': 2, '难': 1, '那': 4, '给': 2, '而': 1, '安': 5, '如': 1, '要': 1, '多': 2, '当': 3, '所': 1, '女': 1, '美': 2, '设': 1, '真': 1, '人': 4, '他': 8, '理': 1, '特': 1, '和': 2, '基': 1, '两': 7, '以': 5, '幸': 3, '周': 3, '8': 1, '我': 17, '北': 2, '餐': 1, '沈': 1, '踏': 1, '牡': 1, '发': 1, '节': 5, '雨': 1, '乔': 3, '蕾': 1, '王': 2, '其': 4, '魅': 5, '朱': 7, '刘': 5, '陈': 4, '遇': 2, '乐': 5, '巴': 4, '希': 2, '大': 4, '粉': 2, '三': 6, '柴': 2, '幽': 6, '乘': 1, '山': 1, '袁': 1, '花': 1, '0': 6, '托': 1, '用': 4, '包': 2, '素': 2, '―': 6, '水': 1, '史': 1, '父': 2, '奥': 5, '章': 1, '来': 2, 'I': 1, '1': 1, '赫': 1, '舍': 1, '李': 4, '别': 2, '懒': 1, '约': 1, '虹': 1, '庄': 1, '佟': 1, '卢': 2, '身': 2, '街': 2, '泰': 2, '廖': 1, '虽': 2, '潮': 5, '春': 1, '恒': 1, '苏': 2, '尽': 1, '宋': 1, '杰': 1, '克': 3, '鞋': 1, '全': 2, '西': 1, '[': 3, '由': 3, '杨': 2, '活': 2, '情': 2, '余': 4, '鸟': 1, '徐': 1, '拉': 2, 'L': 1, '喇': 1, '姚': 1, '自': 2, '让': 3, 'D': 2, '细': 1, '至': 3, 'M': 3, '实': 1, '派': 1, '在': 4, '冯': 1, '柏': 1, '棒': 1, '龙': 3, '露': 1, '村': 1, '玛': 1, '青': 1, '艾': 2, '梁': 1, '毕': 2, '雷': 1, '尼': 1, '端': 1, '扎': 1, '罗': 2, '米': 2, '亦': 1, '席': 2, '上': 2, '雪': 1, '钟': 1, '卡': 3, '桐': 1, '梭': 1, '丰': 1, '保': 1, '梅': 1, '萨': 1, '哈': 2, '古': 1, '蔡': 1, '�': 2, '布': 1, 'B': 2, '凯': 1, '银': 1, '看': 3, '将': 1, '唬': 1, '词': 1, '生': 3, '中': 4, '淘': 2, '胡': 2, '年': 1, '朔': 1, '简': 1, '骆': 1, '框': 1, '南': 1, '电': 4, '想': 1, '请': 3, '们': 1, '2': 5, '冬': 1, '浙': 1, '还': 2, '群': 1, '偶': 1, '没': 1, '梦': 2, '做': 1, '找': 1, '启': 1, '话': 1, '一': 6, '因': 3, '对': 3, '奉': 1, '波': 1, '黄': 1, '感': 1, '无': 2, '血': 1, '稻': 1, '从': 10, '只': 1, '母': 1, '也': 1, '关': 2, '四': 1, '驴': 1, '亚': 4, 'S': 1, '接': 1, '玩': 3, '出': 2, '慢': 1, '像': 1, '迟': 1, '传': 1, '现': 5, '网': 1, '直': 1, '什': 2, '昨': 1, '色': 1, '极': 2, '问': 1, '效': 1, '很': 1, '心': 2, '江': 1, '深': 2, '犀': 1, '流': 1, '老': 2, '仙': 2, '浮': 1, '硬': 1, '庞': 1, '非': 1, '法': 1, '摘': 2, '向': 2, '期': 1, '代': 1, '革': 1, '具': 1, '寻': 1, '谁': 1, '达': 1, '5': 1, '比': 2, '迷': 1, '4': 1, '英': 1, '评': 1, '莫': 1, '考': 2, '十': 1, '听': 1, '强': 2, '说': 1, 'J': 1, '东': 1, '超': 2, 'W': 1, '记': 1, '折': 1, '」': 1, '划': 1, '小': 2, '尚': 1, '营': 1, '几': 1, '吉': 1, '卧': 1, '知': 1, '并': 1, '靠': 2, '有': 1, '是': 1, '作': 1, '通': 1, '团': 1, 'T': 1, 'h': 1, '装': 1, '批': 1, '继': 1, '洪': 1, 'N': 1, '公': 1, '居': 1, '容': 1, '苹': 1, '跟': 1, '原': 2, '洗': 1, '推': 3, '车': 1, '据': 1, '转': 2, '走': 1, '互': 1, '汽': 1, '了': 1, 'C': 1, '嗯': 1, '归': 1, '纪': 1, '拍': 1, '为': 4, '喜': 1, 'G': 1, '清': 1, '便': 1, '挑': 1, '遍': 1, '正': 2, '写': 2, '使': 1, '京': 1, '战': 1, '提': 1, '柳': 1, '澳': 1, '每': 1, '明': 1, '可': 1, '逃': 1, '讲': 1, 'O': 1, '锁': 1, '萧': 1, '杜': 1, '但': 1})
(Word: 鼻腔, Count: 10, Freq: 0.0006140620202640467, PMI: 15.348822108271795, DF: 2.3025850929940455, Score: 5.594871984021659, Left: {'和': 1, '进': 1, '洁': 1, '助': 1, '种': 1, '化': 1, '而': 1, '了': 1, '持': 1, '洗': 1}, Right: {'鼻': 1, '变': 1, '的': 1, '通': 1, '内': 1, '是': 1, '粘': 1, '-': 1, '清': 1, '能': 1})
(Word: 继续, Count: 467, Freq: 3.56088833107569e-05, PMI: 9.432997025393203, DF: 4.779726469231208, Score: 5.5581404333601565, Left: {'后': 4, '的': 5, '天': 17, '油': 2, '晚': 4, '场': 4, '量': 1, '望': 1, '样': 5, '始': 1, '居': 1, '没': 1, ']': 7, '求': 1, '山': 1, '里': 1, '您': 1, '了': 7, '岚': 1, '笑': 3, '咱': 1, ':': 10, '得': 4, '么': 3, '来': 7, '会': 20, '请': 10, '在': 13, '们': 9, '次': 1, '过': 1, '啊': 3, '人': 3, '海': 2, '能': 11, '要': 13, '摄': 1, '以': 8, '子': 7, '地': 1, '吧': 3, '佛': 1, '我': 5, '早': 1, '是': 8, '起': 3, '斗': 1, '啦': 3, '将': 8, '该': 1, '想': 4, '马': 3, '片': 2, '年': 3, '恩': 3, '长': 1, '家': 30, '哦': 2, '友': 1, '可': 2, '屏': 2, '力': 3, '心': 2, '0': 1, '包': 1, '上': 2, '王': 1, '女': 1, '戏': 1, '赛': 1, '好': 4, '周': 1, '末': 1, '团': 1, '复': 1, '彩': 4, '动': 1, '战': 2, '金': 2, '足': 2, '陆': 1, '箱': 1, '有': 3, '时': 1, '点': 1, '程': 1, '诺': 1, '堂': 2, '半': 2, '他': 2, '够': 1, '去': 2, 'e': 1, '你': 2, '晨': 1, '品': 1, '杀': 1, '离': 2, '路': 1, '然': 3, '态': 1, '议': 1, '西': 1, '就': 5, '琪': 1, '~': 2, '业': 1, '生': 1, '却': 2, '宙': 1, '话': 1, '又': 2, '查': 1, '解': 2, '曲': 3, '还': 2, '需': 1, '师': 1, '备': 1, '7': 1, '蓝': 1, '午': 1, 'n': 1, 'g': 1, '者': 1, '敬': 1, '作': 1, '1': 2, '昂': 2, '日': 1, '持': 1, '节': 1, '坊': 1, '网': 1, '》': 3, ')': 1, '民': 1, '室': 1, '报': 1, '改': 1, 'r': 2, '棒': 1, '小': 1, '博': 2, '也': 1, '逼': 1, '与': 1, '愿': 1, '读': 1, 'w': 1, 'y': 1, '乐': 1, '菜': 1, '队': 1, '件': 1, '位': 1, '哟': 1, '用': 1, '前': 1, '分': 1, '气': 1, '性': 1, '纷': 1, '并': 1, '?': 1, '转': 1, '意': 1, '法': 2, '钱': 2, '牌': 1, '历': 1, '6': 2, '志': 1, '视': 1, '格': 1, '面': 2, '供': 2, '看': 1, '对': 1, '都': 1, '讯': 1, '迎': 1, '总': 1, '购': 1, '澡': 1, '活': 1, 'L': 1, '指': 1, '算': 1, '哥': 1, '况': 1, '情': 1, '码': 1, '展': 1, '环': 1, '个': 1, '己': 1, '再': 1, '且': 2}, Right: {'上': 4, '涮': 1, '不': 2, 'h': 5, '蚊': 1, '努': 27, '一': 4, '给': 6, '讹': 1, '演': 3, '干': 2, '人': 1, '完': 2, '战': 1, '血': 1, '锁': 2, '与': 1, '楚': 1, '讲': 1, '下': 5, '在': 9, '做': 7, '扇': 1, '比': 1, '调': 1, 'L': 2, '得': 1, '直': 1, '夜': 1, '鸡': 1, '这': 3, 'P': 3, '顺': 1, '侃': 1, '让': 5, '瘦': 1, '年': 1, '飞': 13, '[': 6, '期': 2, '感': 2, '寻': 3, '看': 7, '宁': 1, '走': 9, '去': 1, '拼': 3, '龙': 1, '收': 3, '存': 1, '哭': 1, '有': 2, '等': 5, '奋': 1, '么': 1, '孤': 1, '奔': 2, '为': 2, '<': 1, '加': 22, '守': 1, '支': 4, '帅': 1, '抢': 4, '中': 2, '进': 3, '关': 10, '大': 4, '拍': 5, '监': 

Related Skills

View on GitHub
GitHub Stars6
CategoryDevelopment
Updated2y ago
Forks2

Languages

Python

Security Score

65/100

Audited on Mar 18, 2024

No findings