如何实现“相关标签”?

我的网站上有标签,我在创建博客文章时会逐个输入这些标签。我很喜欢Gmail的新功能,当你输入Y的名字时,它会询问你是否想在邮件中包含X,因为你经常在同一邮件中同时包含这两个人。

我想在我的网站上实现类似的功能,但我不知道如何在对象或数据库中表示标签的“相关性”…有什么想法吗?


回答:

这最终归结为在你的文章的某些特征和某些标签之间建立关联,然后——当你按下“发布”按钮时——分析新文章并提出与文章特征匹配的所有标签。

这可以通过多种方式实现,从“完全硬编码”的关联到某种“学习AI”…以及介于两者之间的所有方法。

硬编码解决方案

这些是最简单的算法来实现。你应该首先决定哪些文章特征对标记是相关的(例如:如果标记为“短”或“长”,则文章的长度;如果标记为“多媒体内容”,则是否包含照片或视频等…)。然而,最明显的是关注文章中使用的哪些词。例如,你可以构建这样的映射:

tag_hint_words = {'code-development' : ['programming',                                         'language', 'python', 'function',                                         'object', 'method'],                  'family' : ['Theresa', 'kids',                               'uncle Ben', 'holidays']}

然后你会检查你的文章中是否包含列表中的词(代码中的[]之间的部分),并提出标签(:前的词)作为可能的候选。

一种常见的方法是给出“分数”,换句话说,就是给出一个数字来表示某个标签是正确标签的概率。例如:如果你的文章包含这样的句子…

经过几个月的编程,我们终于出发去叔本的别墅度过夏季假期。Theresa和孩子们都非常兴奋!

…尽管有“编程”这个词,程序应该指示家庭作为最可能使用的标签,因为有更多词语暗示这一点。

学习AI

上述方法的一个明显限制是——假设有一天你除了Python之外还开始使用Java——你可能需要更改你的代码并包含像“java”或“oracle”这样的词。如果你创建新标签,同样适用。

为了克服这个限制(并获得一些乐趣!!),你可以尝试实现一个学习算法。学习算法是那些你使用得越多,它们的结果就越精确的算法(所以它们确实…学习!)。有些算法需要初始训练(许多垃圾邮件过滤器和语音识别程序需要这种初始“引导”)。有些不需要。

我绝对不是这方面的专家,但两种常见的AI是:朴素贝叶斯分类器和某种形式的神经网络

尽管WP页面可能看起来很吓人,但它们实现起来出奇地简单(至少在Python中是这样)。这是PyCon 2009年关于“用Python实现简单AI”主题的讲座录音。我发现它非常有信息量,甚至有些启发性!:)

希望对你有帮助!

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注