获取文本与 Python 中的一组文本之间的相似度
Get similarity between text and the texts of a set in Python
我正在为 Twitter 构建一个事件检测器,它受到垃圾推文的严重影响,因此我计划使用文本相似性算法稍微过滤推文。
我考虑过的方法是拥有一组推文,我将在其中存储不同的推文。首先,我将清除推文中的链接和提及,并检查我正在处理的推文与集合中任何推文的相似度值是否大于阈值(例如 0.7-0.8)。如果是这样,我将继续迭代并忽略该推文;否则我会将该推文添加到集合中并使用它。
我一直在阅读相关问题的不同答案,但它们仅适用于小型文本语料库,而这将适用于至少包含或多或少 15.000 条推文的数据集,因此该算法将比较每条推文和一组推文 15.000 次。
其他问题也有点陈旧,可能已经创建了新算法或者可能出现了旧算法的更好实现。
总而言之,您认为解决垃圾邮件问题的最佳方法是什么?它是 Python 本地的还是外部的?
要找到相似度,您可以使用 tf-idf
向量,然后计算它们之间的余弦相似度,但要比较的向量数量很多,因此您可以对数据进行聚类并为每个聚类找到一个中心向量,所以你只需要将你的新推文与中心向量进行比较,而不是全部。
我正在为 Twitter 构建一个事件检测器,它受到垃圾推文的严重影响,因此我计划使用文本相似性算法稍微过滤推文。
我考虑过的方法是拥有一组推文,我将在其中存储不同的推文。首先,我将清除推文中的链接和提及,并检查我正在处理的推文与集合中任何推文的相似度值是否大于阈值(例如 0.7-0.8)。如果是这样,我将继续迭代并忽略该推文;否则我会将该推文添加到集合中并使用它。
我一直在阅读相关问题的不同答案,但它们仅适用于小型文本语料库,而这将适用于至少包含或多或少 15.000 条推文的数据集,因此该算法将比较每条推文和一组推文 15.000 次。
其他问题也有点陈旧,可能已经创建了新算法或者可能出现了旧算法的更好实现。
总而言之,您认为解决垃圾邮件问题的最佳方法是什么?它是 Python 本地的还是外部的?
要找到相似度,您可以使用 tf-idf
向量,然后计算它们之间的余弦相似度,但要比较的向量数量很多,因此您可以对数据进行聚类并为每个聚类找到一个中心向量,所以你只需要将你的新推文与中心向量进行比较,而不是全部。