短文本聚类是常用的文本预处理步骤,可以用于洞察文本常见模式、分析设计语义解析规范、加速相似句子查询等。本项目实现了内存友好的短文本聚类方法,并提供了相似句子查询接口。
pip install tqdm jieba
python cluster.py --infile ./data/infile \
--output ./data/output
具体参数设置可以参考cluster.py
文件内_get_parser()
函数参数说明,包含设置分词词典、停用词、匹配采样数、匹配度阈值等。
参考search.py
代码里Searcher
类的使用方法,如果用于查询标注数据的场景,使用分隔符:::
将句子与标注信息拼接起来。如我是海贼王:::(λx.海贼王)
,处理时会只对句子进行匹配。
TextCluster
| README.md
| LICENSE
| cluster.py 聚类程序
| search.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 procedure to analysis text feature. This project implements a memory friendly method only for short text cluster. For long text, it is 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
For more configure arguments description, see _get_parser()
in cluster.py
, including stop words setting, sample number.
TextCluster
| README.md
| LICENSE
| cluster.py clustering function
| search.py search 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
.