【Github】TextCluster:短文本聚类预处理模块 Short text cluster

推荐Github上一个NLP相关的项目: RandyPen/TextCluster

项目地址,阅读原文可以直达,欢迎参与和Star:

https://github.com/RandyPen/TextCluster

这个项目的作者是AINLP交流群里的昭鸣同学,该项目 开源了一个短文本聚类工具,内存友好,速度不错,还不用尝试隐变量个数,欢迎使用。

以下来自该项目介绍页,点击阅读原文可以直达相关资源链接。

短文本聚类

项目介绍

短文本聚类是常用的文本预处理步骤,可以用于洞察文本常见模式、分析设计语义解析规范等。 本项目实现了内存友好的短文本聚类方法。

依赖库

pip install tqdm jieba

使用方法

python cluster.py --infile ./data/infile \
--output ./data/output

具体参数设置可以参考 cluster.py 文件内 _get_parser() 函数参数说明,包含设置分词词典、停用词、匹配采样数、匹配度阈值等。

文件路径

TextCluster
|      README.md
|      LICENSE
|      cluster.py                    主要执行程序
|
|------utils                         公共功能模块
|    |    __init__.py
|    |    segmentor.py               分词器封装
|    |    similar.py                 相似度计算函数
|    |    utils.py                   文件处理模块
|
|------data
|    |    infile                     默认输入文本路径,用于测试中文模式
|    |    infile_en                  默认输入文本路径,用于测试英文模式
|    |    seg_dict                   默认分词词典
|    |    stop_words                 默认停用词路径

注: 本方法仅面向短文本,长文本聚类可根据需求选用 SimHash LDA 等其他算法。

Text Cluster

Introduction

Text cluster is a normal preprocess method to analysis text feature. This project implements a memory friendly method for  short text cluster . For long text, it will be preferable to choose  SimHash  or  LDA  or others according to demand.

Requirements

pip install tqdm spacy

Usage

python cluster.py --infile ./data/infile_en \
--output ./data/output \
--lang en

File Structure

TextCluster
|      README.md
|      LICENSE
|      cluster.py                    main excutable function
|
|------utils                         utilities
|    |    __init__.py
|    |    segmentor.py               tokenizer wrapper
|    |    similar.py                 similarity calculator
|    |    utils.py                   file process module
|
|------data
|    |    infile                     default input file path, to test Chinese mode
|    |    infile_en                  default input file path, to test English mode
|    |    seg_dict                   default tokenizer dict path
|    |    stop_words                 default stop words path

Other Language

For other specific language, modify tokenizer wrapper in  ./utils/segmentor.py .

推荐阅读

BERT 的演进和应用

BERT系列文章汇总导读

BERT 瘦身之路:Distillation,Quantization,Pruning

BERT论文笔记

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。