如何用MongoDB聚合框架实现70%-80%部分相似字符串分组?
MongoDB部分相似问题分组需求及现有方案局限
我在MongoDB的一个集合中存入了约5000条问题,现在需要将相似度处于70%-80%区间的部分相似问题归为一组,再返回给前端。
我尝试了以下MongoDB聚合管道,但它仅能对100%完全相同的问题进行分组:
{ '$group': { '_id': { '$toLower': '$question' }, 'count': { '$sum': 1 }, 'allData': { '$push': { '_id': '$_id', 'question': '$question', 'categoryId': '$categoryId', 'subCategoryId': '$subCategoryId', 'answers': '$answers', 'solution': '$solution', 'createdAt': '$createdAt', 'updatedAt': '$updatedAt' } } } }, { '$match': { 'count': { '$gte': 2 } } }
需要识别的相似问题示例
示例1
关于地震,哪些陈述是正确的?
关于地 震,哪些陈述是正确的?
:::上述两个问题应被标记为相似。
示例2
沃尔沃集团的总部位于欧洲哪个城市?
沃尔沃的总部位于欧洲哪个城市?
:::上述两个问题相似度达70%-80%,应被标记为相似。
内容的提问来源于stack exchange,提问作者Debojyoti Dey
相关产品推荐
相关产品推荐

