推荐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 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.
pip install tqdm spacy
python cluster.py --infile ./data/infile_en \
--output ./data/output \
--lang en
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
For other specific language, modify tokenizer wrapper in ./utils/segmentor.py
.
推荐阅读
BERT 瘦身之路:Distillation,Quantization,Pruning
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。