我在开发我的网络应用程序时遇到问题,这里是描述:
这个 web 应用程序(仍处于 alpha 阶段)基于用户生成的内容(通常是短文章,尽管它们的长度可能会变得很大,大约占屏幕的四分之一),每个用户至少提交 10 篇这样的文章,所以这个数字应该会增长得很快。从本质上讲,大约 10% 的文章会被重复,所以我需要一个算法来获取它们。
我想出了以下步骤:
- 在提交时获取一段文本并将其存储在一个单独的表中(
article_id
,length ),问题是文章是使用 PHP special_entities() 函数编码的,用户发布的内容稍有修改(有些人会错过逗号、重音或甚至跳过一些单词) - 然后从数据库中检索长度范围 =
new_post_length
+/- 5% 的所有条目(我应该使用另一个阈值,记住文章提交中的人为因素吗?) - 获取前 3 个关键字并将它们与步骤 2 中获取的文章进行比较
- 拥有一个最可能匹配的最终数组,使用 PHP 的 levenstein() 函数比较新条目
此过程必须在文章提交时执行,而不是使用 cron。但是我怀疑它会在服务器上产生沉重的负载。
你能提供任何想法吗?
谢谢!麦克风