如何根据熊猫中各行之间的文本相似性删除重复项

时间:2019-04-09 00:12:24

标签: python pandas pandasql

我有一个新闻头条数据集。我想根据与过去十天的标题相似的文字,删除重复或高度相似的标题。对于高度相似的标题,我想保留最早的标题。例如,我仅将"SECTION:BUSINESS; Business; Events; Pg.2"保留为2014-08-04

我正在考虑基于日期和标题进行联接,其中日期在过去十天内,类似于以下内容(在SQL语句中):

create table df_joined as 
select a.*, b.date as date_b, b.Headline as Headline_b from 
df a inner join df[["Date", "Headline"]] b on a.date - b.date <= 10

接下来,我可以计算相似度:

df_joined["Similarity"] = similar_function (df_joined.Headline, df_joined.Headline_b)

然后,对于(date, headline)的每组,如果有任何行的相似度高于所选基准,则删除整个组。最后,我将各组折叠。

不确定如何在Pandas中执行此操作。谢谢!

Sample Data

1 个答案:

答案 0 :(得分:1)

您是否研究过pandas.Series.unique函数?它返回没有重复的数组,并且可以处理字符串。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.unique.html