【发布时间】:2020-12-01 10:05:27
【问题描述】:
我对 Python 还很陌生。虽然我知道可以使用 drop_duplicates 对 Pandas 中的行进行重复数据删除以获得相同的文本结果,但有没有办法删除 相似 行文本?
例如对于这个虚构的在线文章标题集合,按时间顺序排列
1 班伯里困惑的孩子说“狗吃了我的作业”
2 困惑的班伯里孩子说狗吃了作业
3 为什么狗这么可爱
4 老师难以置信,因为孩子说狗吃了作业 - Banbury Times
5 狗不喜欢鸡蛋,这就是为什么
6 收养高级流浪汉的那一刻-尽量不要哭
班伯里的 7 名狗走私者在警方的刺杀行动中被捕
我的理想结果是只保留第 1、3、5、6 和 7 行,第 1、2 和 4 行已按相似性分组,然后仅保留 1,即最早/“第一个”条目。
(如何)我可以到达那里?即使是纯粹关于分组方法的建议也会非常有帮助。我希望能够在数百行文本上运行它,无需使用特定的、手动预先确定的文章或标题来衡量相似度,只需将相似的行分组。
非常感谢您的想法和时间!
【问题讨论】:
-
你试过什么?你有什么问题?
-
如果A行与B行相似,B与C相似,但A与C不相似怎么办?
-
您是指文本的语义相似性吗?您的数据集是否包含两个单词不同但相似度相同的句子?
-
@I159 我开始研究 FuzzyWuzzy,但不知道如何去搜索不只是比较两行的文本行之间的相似性。对这方面的新手并不谦虚。任何关于开始寻找解决方案的地方的指针都会很棒。
-
@Alex Hall 完全正确。根据您的经验,是否有可行的聚类方法?在这一点上,我愿意探索。
标签: python nlp duplicates similarity sentence-similarity