【问题标题】:How to establish relationships between Hashtags using PHP / MySQL?如何使用 PHP / MySQL 建立 Hashtags 之间的关系?
【发布时间】:2019-05-21 08:08:50
【问题描述】:

我正在开发一个 PHP 工具,它可以扫描 Instagram 以收集关于一堆主题标签的分析。目的是监控某些主题标签的演变/增长,并为人们提供一个搜索引擎,以获取每个主题标签的最新统计信息。

到目前为止,我已经有了一个相当简单的搜索引擎,并且我运行了一个 SQL 查询来查找LIKE %'travel'%。因此,如果有人输入“#travel”,他们将得到包含世界“travel”的任何内容,例如“travelagent”“iliketotravel”等。

我面临的问题是我想扩大搜索结果以包含与#travel相关的内容,就像http://displaypurposes.comhttp://best-hashtags.com/ 之类的网站和我'我试图弄清楚他们是如何做到的。

我对第一个特别着迷,还有 Graph 函数:https://displaypurposes.com/graph?tag=travel

看起来他们已经有效地映射了大量主题标签之间的所有链接,并基于此提供结果。

我的数据库中有大约 45 000 个主题标签,我将如何将它们链接在一起以启用“相关性搜索”,就像我上面提到的两个网站一样?如何构建类似的东西?我花了很长时间在网上寻找问题的答案。

感谢您的帮助! :)

【问题讨论】:

    标签: php mysql api instagram


    【解决方案1】:

    这不是一个真正的编程问题,但我会尝试以这种方式解决它。

    单个 Instagram 帖子可以有多个标签。例如,您可能有人发布带有标签#rome#travel 的罗马图片。这现在将#rome#travel 关联起来,并将其视为两者之间的连接。

    只要我们有一个具有以下属性的表结构:

    • 邮政编号
    • 标签

    我们可以通过运行以下代码来找到顶级关系:

    SELECT  COUNT(*) `Relation Occurances`, 
            b.Hashtag
    FROM 
        Posts a
    JOIN 
        Posts b
    ON 
        a.PostNumber = b.PostNumber
    WHERE 
        a.Hashtag = '#travel'
    AND 
        b.Hashtag != '#travel'
    

    如果需要,您可以优化查询以限制为 100 个顶级关系等。

    为了进一步扩展这一点,关键是将帖子拆分成一个表格,每个帖子每个主题标签有 1 行。如果您正在对大文本进行通配符搜索,这将导致处理时间长且效率低下。

    【讨论】:

    • 所以真的是为每个关系建立一个表的问题吗?因此,例如,每次我扫描 #travel 主题标签以获取结果时,我还会在表中存储一行,以记录 #travel 下帖子中出现的另一个主题标签的每次出现,然后使用该新表来识别标签之间的顶级关系。我只是担心这可能会导致大量表,并且我认为可能有更好的方法,但似乎这可能是唯一现实的解决方案?
    • 我强烈建议有一个表格,其中包含相关的 instagram postid 和单独的行中的每个主题标签。这一切都是为了将​​您的数据以您可以轻松查询的格式放置。这可能需要在 PHP 方面花费一些额外的时间,但这是您必须做的才能将其转换为体面的格式。关于拥有大型数据库,只要它们的结构正确且配置正确,这应该不是问题。我有数十亿行查询的 MySQL 表。如果您只是将完整的帖子存储在文本中,那么每次您想要查询它时都会进行大量处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2020-08-28
    • 1970-01-01
    • 2017-08-05
    相关资源
    最近更新 更多