【问题标题】:Deduplicating content by removing similar rows of text in Python通过在 Python 中删除相似的文本行来消除重复内容
【发布时间】: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


【解决方案1】:

您可以尝试使用doc2vec (example of usage) 获取您的数据,然后使用分层算法的kmedoids 用余弦距离对您的文本进行聚类。

【讨论】:

    猜你喜欢
    • 2019-09-06
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多