zadd () принимает от 3 до 7 позиционных аргументов, но было дано 198 - PullRequest
0 голосов
/ 17 января 2020

содержимое motors.py:

import pandas as pd
import time
import redis
from flask import current_app
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel


def info(msg):
    current_app.logger.info(msg)


class ContentEngine(object):

    SIMKEY = 'p:smlr:%s'

    def __init__(self):
        self._r = redis.StrictRedis.from_url(current_app.config['REDIS_URL'])

    def train(self, data_source):
        start = time.time()
        ds = pd.read_csv(data_source)
        info("Training data ingested in %s seconds." % (time.time() - start))

        # Flush the stale training data from redis
        self._r.flushdb()

        start = time.time()
        self._train(ds)
        info("Engine trained in %s seconds." % (time.time() - start))

    def _train(self, ds):

        tf = TfidfVectorizer(analyzer='word', ngram_range=(1, 3), min_df=0, stop_words='english')
        tfidf_matrix = tf.fit_transform(ds['description'])

        cosine_similarities = linear_kernel(tfidf_matrix, tfidf_matrix)

        for idx, row in ds.iterrows():
            similar_indices = cosine_similarities[idx].argsort()[:-100:-1]
            similar_items = [(cosine_similarities[idx][i], ds['id'][i]) for i in similar_indices]

            # First item is the item itself, so remove it.
            # This 'sum' is turns a list of tuples into a single tuple: [(1,2), (3,4)] -> (1,2,3,4)
            flattened = sum(similar_items[1:], ())
            self._r.zadd(self.SIMKEY % row['id'], *flattened)

    def predict(self, item_id, num):

        return self._r.zrange(self.SIMKEY % item_id, 0, num-1, withscores=True, desc=True)


content_engine = ContentEngine()

ошибка msg при попытке обучить модель:

[2020-01-17 06:38:49,303] INFO in engines: Training data ingested in 0.009774923324584961 seconds.
127.0.0.1 - - [17/Jan/2020 06:38:49] "GET /train HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/jayesh/Desktop/content-engine/web.py", line 14, in decorated_function
    return f(*args, **kwargs)
  File "/home/jayesh/Desktop/content-engine/web.py", line 34, in train
    content_engine.train(data_url)
  File "/home/jayesh/Desktop/content-engine/engines.py", line 29, in train
    self._train(ds)
  File "/home/jayesh/Desktop/content-engine/engines.py", line 62, in _train
    self._r.zadd(self.SIMKEY % row['id'], *flattened)
TypeError: zadd() takes from 3 to 7 positional arguments but 198 were given

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 2463, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 2449, in wsgi_app
    response = self.handle_exception(e)
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 1866, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/jayesh/Desktop/content-engine/env/lib/python3.7/site-packages/flask_api/app.py", line 96, in handle_user_exception
    app_handlers = self.error_handler_spec[None].get(None, ())
KeyError: None

ошибка выскакивает каждый раз ..... я попытался установить conda, но он все еще не работал при первом подходе, я создал виртуальную среду как для python, так и для conda, но после активации они не могут найти модули. Поэтому я перенес все зависимости в pip и после запуска показывает, что zadd () вызывает ошибку функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...