by max.zhang@2013-12-25
Brief: 此工具根据Simhash指纹过滤文档集合中近似重复的文档
- python
- python-jieba
- bash (sort/paste/awk/sed)
filter_duplicate.sh: 文本去重脚本,对长/短文本数据进行去噪、指纹提取并采用hamming距离除去重复文本
webcontent_filter.sh: 文本预处理脚本,除去不可打印的字符、数字、字母,合并多个空白符
python: python脚本目录
--tokens.py jieba分词脚本
--DictBuilder.py 特征词典构建脚本
--SimhashMapper.py Simhash指纹提取的streaming脚本
--Utils.py 工具模块,包含hamming距离函数
--FilterSalientBySimhashNoScore.py 根据Simhash指纹进行去重
--get_row_sample.py 根据原始文本文件和去重后的行号文件生成去重后的样本
-
生成文档集合文件, 每个文档占一行
-
[自去重]启动去重脚本,.content文件所在目录下会自动生成去重后的_uniq.lenfprint指纹文件和去重后的文档集合_uniq.content文件
./sample_filter.sh data/docs.content
-
[与其他文档集合去重]根据其他文档集的.lenfprint文件和生成的_uniq.lenfprint文件生成新文档集的_uniq_new.lenfprint文件
python/FilterSalientBySimhashNoScore.py data/docs_uniq.lenfprint data/other_docs.lenfprint data/docs_uniq_new.lenfprint
-
[与其他文档集合去重]获取去重后剩余的文档集合
python/get_row_sample.py data/docs.content data/docs_uniq_new.lenfprint > docs_uniq_new.content