使用 Django 模型管理器记录中的词频计数

Word frequency count within record with Django model Manager

我正在构建一个 Django 应用程序,该应用程序使用大量文本的数据库,它计算文本中的一些预定义短语。它不计算包含短语的记录数,但计算一条记录内的频率。这就是我卡住的地方:

如果我直接添加字符串,Django 会计算并找到短语:

frequency = 'Search this text for me, please'.count('this text')

当我将此逻辑与模型管理器一起使用时,"count" 不起作用,并给出错误:

Typeerror: count() takes 1 positional argument but 2 were given

这是我在 model.py

中的代码
class MyModelManager(models.Manager):
    def get_queryset(self):
        qs = super(MyModelManager, self).get_queryset().values_list('mytext').count('this text')
        return qs

class MyModel(models.Model):
    mytext = models.TextField()
    ...
    objects = MyModelManager() 

你能建议我应该如何继续吗?我走在正确的轨道上还是我应该采用完全不同的方法来使其正常工作?谢谢!

Django docs .count() has another purpose - this is only the length of QuerySet, it does not provide any additional counting and does not take any arguments. In your case looks like you have to use some text-parsing instruments, like NLTK 或其他东西,无法提供建议。