在Python中获取文本和集合文本之间的相似性

在Python中获取文本和集合文本之间的相似性,python,string,text,twitter,similarity,Python,String,Text,Twitter,Similarity,我正在为Twitter构建一个事件检测器,它受到垃圾邮件推文的极大影响,所以我计划用文本相似性算法过滤推文 我考虑过的方法是建立一组tweet,我将在其中存储不同的tweet。首先,我将清除推文中的链接和提及,并检查我正在处理的推文是否与该集的任何推文具有大于阈值的相似度值(例如,0.7-0.8)。如果是这样的话,我将继续迭代并忽略该推文;否则,我会将该tweet添加到集合中并使用它 我一直在阅读相关问题的不同答案,但这些答案只适用于少量文本,而这将适用于至少15000条左右的推文数据集,因此算

我正在为Twitter构建一个事件检测器,它受到垃圾邮件推文的极大影响,所以我计划用文本相似性算法过滤推文

我考虑过的方法是建立一组tweet,我将在其中存储不同的tweet。首先,我将清除推文中的链接和提及,并检查我正在处理的推文是否与该集的任何推文具有大于阈值的相似度值(例如,0.7-0.8)。如果是这样的话,我将继续迭代并忽略该推文;否则,我会将该tweet添加到集合中并使用它

我一直在阅读相关问题的不同答案,但这些答案只适用于少量文本,而这将适用于至少15000条左右的推文数据集,因此算法将在每条推文和一组推文之间进行15000次比较

另外,其他问题也有点陈旧,可能已经创建了新的算法,或者出现了旧算法的更好实现


总之,你认为解决垃圾邮件问题的最佳方法是什么?它是Python本机的还是外部的?

要找到相似性,可以使用
tf idf
向量,然后计算它们之间的余弦相似性,但要比较的向量很多,因此可以对数据进行聚类,并为每个聚类找到一个中心向量,所以你只需要将你的新推文与中心向量进行比较,而不是全部