0

我正在尝试制作一个小型体育博彩赔率比较脚本供我个人使用。为此,我正在获取 XML 提要的数据(来自不同的博彩公司)。为了比较它们,我必须知道哪些匹配/事件完全相同。问题在于,不同博彩公司的球队名称、联赛名称通常不同。

这里有一个例子:


博彩公司1:B1

联赛:欧洲冠军联赛

比赛球队:曼联vs国际米兰


博彩公司2:B2

联赛:冠军L。

比赛:马努vs国际米兰


博彩公司3:B3

联赛:冠军联赛(欧足联)

比赛:曼彻斯特大学 vs 国际足球俱乐部


日期将相同。但是有很多比赛同时开始。有 1000 场比赛和 100 场联赛。

除了手动识别它们之外,还有另一种可能性吗?

手动我的意思是:如果字符串是 Manu 或 Manchester U. => Manchester United(每个团队名称都是这个)

赔率比较网站如何做到这一点(如oddsportal.com 或其他服务)?

4

4 回答 4

3

非常老的问题,但也许其他用户可以受益。对不起,关于我的英语不好。我试图解释。我是 C# 开发人员,所以我只解释如何做到这一点。

如果您制作自己的团队字典,则可以处理此问题。

  1. 在您的数据库上创建您自己的 SoccerTeams 表。在这种情况下,MongoDb 或任何 documentDb 是最适合您的解决方案。也可以是关系型数据库,没问题。

  2. Bookmakers1、Bookmakers2 或更多没有什么不同。只需检查您自己的数据库中的团队名称即可。例如:

    Bookmaker1 主队名称:曼联

    Bookmaker1 客场球队名称:国际米兰

    Bookmaker2 主队名称 : Manchester Utd.

    Bookmaker2 客场球队名称:国际米兰

  3. 在这种情况下,我们必须检查字符串相似度,我们可以为此使用“Levanstein 距离”或类似算法。这是一些算法Url

  4. 首先从数据库中获取团队。并使用循环检查团队的相似性。例如,如果距离更近,“Manchester United vs Manchester Utd”距离大于 %50。您可以添加这个不同的表名,例如“SimilaritySoccerTeamNames”。毕竟,你有这样的相似性表:

table.myTable tr th, td {
  border: 1px solid black;
}
<table class="myTable">
  <thead>
    <tr>
      <th width="100px">Id</th>
      <th width="200px">Name</th>
      <th width="200px">SimilarName</th>
      <th width="100px">Distance</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Manchester United</td>
      <td>Manchester Utd</td>
      <td>70</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Manchester United</td>
      <td>Manchester City</td>
      <td>50</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Manchester United</td>
      <td>Manu</td>
      <td>20</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Inter Milan</td>
      <td>Inter</td>
      <td>45</td>
    </tr>
    <tr>
      <td>5</td>
      <td>Beşiktaş JK</td>
      <td>Beşiktaş AŞ</td>
      <td>75</td>
    </tr>
    <tr>
      <td>6</td>
      <td>Besiktas</td>
      <td>Beşiktaş</td>
      <td>63</td>
    </tr>
  </tbody>
</table>

因此,您可以手动选择和组合这些团队。你必须小心你的代码。Gent 与 Genk 的相似度也为 %99。这些是不同的团队。您必须手动。您可以改进此解决方案。例如,如果 2 场博彩公司相同日期和主队比赛和客队名称相似度大于 %50,您可以自动添加。毕竟,您可以简化所有这些工作并节省您的时间。我只是解释你如何做到这一点。您也可以改进此解决方案。我只是想解释一下逻辑。你可以做得更好。如果你需要任何帮助,我在这里。

于 2021-02-24T11:22:00.687 回答
0

恐怕没有神奇的解决方案。我没有看到任何你可以基于的模式。

最好的方法是确定每个博彩公司使用的名称并进行相应的比较。

博彩公司不太可能更改球队的名称

于 2013-04-05T11:36:02.070 回答
0

作为同一支球队,同一天打,你可以连接一个球队的名字,并在同一天查看这个球队,对面的球队,并连接这些球队。一支球队不能在同一天与另一支球队比赛。通过这种方式,您可以将所有团队映射为一个。

于 2017-08-28T12:41:15.063 回答
-1

你应该刮掉谷歌的名字。例如,如果您在 Google 中输入“man utd”,您会得到“manchester united”,如果您输入“manchester utd”,您也会得到“manchester united”。因此,您只需要将其数据工程化到数据库中。对于 Google 抓取,您应该使用 Selenium。

于 2021-12-03T08:41:28.073 回答