在Django网站上用分类标签标记用户提交的问题的最简单方法是什么?

在Django网站上用分类标签标记用户提交的问题的最简单方法是什么?,django,categories,Django,Categories,我正在Django建立一个网站,用户可以在这里提交关于广泛主题的问题。当一个问题被提交时,我希望它被标记为它所属的各种类别,这样它就可以与相关的问题分组。例如,如果有人问“母乳喂养会增加患癌症的风险吗?”,我希望这个问题标有“儿童保育、母乳喂养、癌症等”之类的类别。我知道对内容进行分类是一个常见的问题,我很好奇最好的选择是什么。最好的方法就是简单地为用户提供一些标签,让他们使用manytomy关系手动选择。例如: class Tag(models.Model): title = mode

我正在Django建立一个网站,用户可以在这里提交关于广泛主题的问题。当一个问题被提交时,我希望它被标记为它所属的各种类别,这样它就可以与相关的问题分组。例如,如果有人问“母乳喂养会增加患癌症的风险吗?”,我希望这个问题标有“儿童保育、母乳喂养、癌症等”之类的类别。我知道对内容进行分类是一个常见的问题,我很好奇最好的选择是什么。

最好的方法就是简单地为用户提供一些标签,让他们使用manytomy关系手动选择。例如:

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)
然后,您可以创建新标记并标记您的问题,例如:

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)

请注意,您只能向已保存的对象添加标记。你可以在

中阅读更多关于多对多关系的内容。你试图实现的不仅仅是一个编程问题,因为它与我所称的人工智能有关,或者与人工智能有关,人工智能使计算机在某种程度上像人一样思考

假设你有这些类别:体育、健康、儿童保育、政治等等

如果我发布这个问题:“运动对我们的健康有多大影响?”

你可以把问题分成几个单词,因为单词体育健康是类别,这样问题就可以很容易地用它们来标记

现在,如果我发布这个问题:“克里斯蒂亚诺·罗纳尔多是否拒绝向儿童捐赠25000美元?”

这个问题没有任何属于类别的词。然而,通过使用人类的思维,我们可以看到这些问题属于以下类别:体育、儿童保育、社会

所以第一种算法并不合适,你必须寻找更多属于人工智能的方法和技术,比如机器学习、神经网络、语义学

如果您想避免所有这些,您可以让用户选择与问题匹配的类别,就像我们在Stack Overflow中为问题选择标记时所做的那样

我希望我的回答会有帮助

请在发帖前阅读。遗憾的是,对于堆栈溢出来说,这个问题被认为过于宽泛。