在基于 Django 的站点上使用类别标签标记用户提交的问题的最简单方法是什么?
What is the easiest way to tag user-submitted questions with category tags on a Django-base site?
我正在用 Django 构建一个站点,用户可以在其中提交有关广泛主题的问题。当一个问题被提交时,我希望它被标记为它所属的各种类别,以便它可以与相关问题分组。例如,如果有人问 "does breastfeeding increase the risk of cancer?",我希望用 "child care, breastfeeding, cancer, etc" 等类别标记该问题。我知道对内容进行分类是一个常见问题,我很好奇最好的选择是什么。
最好的方法是简单地为用户提供一些标签,让他们使用多对多关系手动选择。例如:
class Tag(models.Model):
title = models.CharField(max_length=40)
class Question(models.Model):
title = models.CharField(max_length=80)
text = models.TextField()
tags = models.ManyToMany(Tag)
然后您可以创建新标签并标记您的问题,例如:
>>> tag1 = Tag(title='science')
>>> tag1.save()
>>> tag2 = Tag(title='music')
>>> tag2.save()
>>> tag3 = Tag(title='computers')
>>> tag3.save()
>>> question = Question(title='Question about science', text='very important question')
>>> question.save()
>>> question.tags.add(tag1)
请注意,您只能为已保存的对象添加标签。您可以在 official documentation
中阅读更多关于多对多关系的信息
你要实现的不仅仅是一个编程问题,因为它与我所说的AI,或人工智能,这使得计算机在某种程度上像人类一样思考。
假设您有这些类别:体育、健康、儿童保育、政治……
如果我post这个问题:"How bad can sport affect our health ?"
您可以将问题拆分为单词,因为单词 sport 和 health 是类别,因此可以轻松标记问题跟他们。
现在如果我 post 这个问题:“克里斯蒂亚诺·罗纳尔多是否拒绝向儿童捐赠 25000 美元?”
这个问题没有任何属于类别的词。然而,通过使用我们的人类思维,我们可以看到这个问题属于那些类别:体育、儿童保育、社会...
所以第一种算法不适合,你要寻找更多属于人工智能的方法和技术,比如机器学习,神经网络,语义...
如果你想避免所有这些,你可以让用户 select 与他的问题匹配的类别,就像我们在 Stack Overflow 中所做的那样,当我们为我们的问题选择标签时。
希望我的回答对您有所帮助
我正在用 Django 构建一个站点,用户可以在其中提交有关广泛主题的问题。当一个问题被提交时,我希望它被标记为它所属的各种类别,以便它可以与相关问题分组。例如,如果有人问 "does breastfeeding increase the risk of cancer?",我希望用 "child care, breastfeeding, cancer, etc" 等类别标记该问题。我知道对内容进行分类是一个常见问题,我很好奇最好的选择是什么。
最好的方法是简单地为用户提供一些标签,让他们使用多对多关系手动选择。例如:
class Tag(models.Model):
title = models.CharField(max_length=40)
class Question(models.Model):
title = models.CharField(max_length=80)
text = models.TextField()
tags = models.ManyToMany(Tag)
然后您可以创建新标签并标记您的问题,例如:
>>> tag1 = Tag(title='science')
>>> tag1.save()
>>> tag2 = Tag(title='music')
>>> tag2.save()
>>> tag3 = Tag(title='computers')
>>> tag3.save()
>>> question = Question(title='Question about science', text='very important question')
>>> question.save()
>>> question.tags.add(tag1)
请注意,您只能为已保存的对象添加标签。您可以在 official documentation
中阅读更多关于多对多关系的信息你要实现的不仅仅是一个编程问题,因为它与我所说的AI,或人工智能,这使得计算机在某种程度上像人类一样思考。
假设您有这些类别:体育、健康、儿童保育、政治……
如果我post这个问题:"How bad can sport affect our health ?"
您可以将问题拆分为单词,因为单词 sport 和 health 是类别,因此可以轻松标记问题跟他们。
现在如果我 post 这个问题:“克里斯蒂亚诺·罗纳尔多是否拒绝向儿童捐赠 25000 美元?”
这个问题没有任何属于类别的词。然而,通过使用我们的人类思维,我们可以看到这个问题属于那些类别:体育、儿童保育、社会...
所以第一种算法不适合,你要寻找更多属于人工智能的方法和技术,比如机器学习,神经网络,语义...
如果你想避免所有这些,你可以让用户 select 与他的问题匹配的类别,就像我们在 Stack Overflow 中所做的那样,当我们为我们的问题选择标签时。
希望我的回答对您有所帮助