有一种简单的方法可以按照与给定文本的相似性来对一组文本进行排序:根据分析文本中词频之间的欧式距离。 原则上,算法应对此明确,可以在
此处找到简单的实现。
出人意料的是,一种简单的方法可以提供良好的结果。 例如,如果我们要寻找下一本书,则可以输入一本书或几本已读书籍的文本作为搜索方式,然后对于这10本书的存储库,我们得到“格林兄弟的童话”的以下结果:
0.0320757 Repo\THE ADVENTURES OF TOM SAWYER.txt 0.0363329 Repo\A TALE OF TWO CITIES - A STORY OF THE FRENCH REVOLUTION.txt 0.0388528 Repo\ALICES ADVENTURES IN WONDERLAND.txt 0.0440605 Repo\MOBY-DICK or, THE WHALE.txt 0.046679 Repo\THE ADVENTURES OF SHERLOCK HOLMES.txt 0.0472574 Repo\The Iliad of Homer.txt 0.0511793 Repo\The Romance of Lust.txt 0.053746 Repo\PRIDE AND PREJUDICE.txt 0.0543531 Repo\BEOWULF - AN ANGLO-SAXON EPIC POEM.txt 0.0557194 Repo\Frankenstein; or, the Modern Prometheus.txt
从结果可以看出,童话书被发现是最相似的,而恐怖书被认为是最不相似的。
为了商业目的,有可能使用这样的程序,以便通过将用户阅读的页面的文本与现有广告指向的页面的文本进行比较来找到给定网页的最合适的广告。
另一个应用程序是从数据库中查找一份简历,以适合该职位但不愿加入或离开公司的候选人简历为例。 寻找雇员的替代品并不是一个罕见的商业案例。 您还可以通过与职位描述的相似性对简历数据库进行排序。
PS顺便说一句,类似文章列表中的Habr产生了不太相似的东西。 Habru也可以应用此方法吗?