Подсчет частоты слов в записи с помощью менеджера моделей Django - PullRequest
0 голосов
/ 03 мая 2018

Я создаю приложение 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() 

Подскажите, пожалуйста, как мне продолжить? Я на правильном пути, или я должен применить совершенно другой подход, чтобы это работало? Спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Django docs .count() имеет еще одну цель - это всего лишь length of QuerySet, он не обеспечивает никакого дополнительного подсчета и не принимает никаких аргументов. В вашем случае похоже, что вам нужно использовать некоторые инструменты для разбора текста, такие как NLTK или что-то еще, не можете дать совет для этого.

...