我每次尝试运行和调整此代码时都会遇到键盘错误问题?

问题描述 投票:0回答:0

我正在尝试处理一个项目,但遇到了键盘错误问题,我不确定发生了什么,因为我对 python 还是比较陌生。我使用了部分源代码,但此时完全迷失了。我试着向 chatgpt 寻求帮助,但它不是很有用。我正在使用来自这个https://www.kaggle.com/datasets/tmdb/tmdb-movie-metadata?select=tmdb_5000_movies.csv

的数据

这是我试过的代码,它一直给我一个键盘错误。我期待它说再试一次响应,即使它不起作用 这是我的代码

# import important packages/items

import sklearn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import linear_kernel
from sklearn.metrics.pairwise import cosine_similarity
from ast import literal_eval
#load data
movies_df = pd.read_csv("data/tmdb_5000_movies.csv")
credits_df = pd.read_csv("data/tmdb_5000_credits.csv")
movies_df['title'] = movies_df['title'].str.strip()
movies_df = movies_df.merge(credits_df, left_on='title', right_on='title').reset_index(drop=True)
# print(movies_df.head())
# print(credits_df.head())
#merge data sets
movies_df.head()
print(movies_df.columns)
#extract relevant elements for filtering purposes
elements = ['keywords', 'genres', 'overview','cast']
movies_df['combined_features'] = movies_df[elements].apply(lambda x:  ' '.join(x.fillna('')), axis=1)
#compute cosin similarity
tfidf = TfidfVectorizer(stop_words='english')
tfidf_matrix = tfidf.fit_transform(movies_df['combined_features'])
cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix)
print(movies_df['title'].tolist())

def find_recommendations(title, cosine_sim=cosine_sim, data=movies_df):
    """finds and gives top 5 movie recommendations based on the input of a movie"""
    title = title.lower()
    if title not in data['title'].str.lower().unique():
        return "Our apologies! That movie is not in this database. Please try a new movie title."
    else:
        indices = pd.Series(data.index, index=data['title']).drop_duplicates()
        idx = indices[title]
        # gets cosine similarities and sorts them
        sim_scores = list(enumerate(cosine_sim[idx]))
        sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
        # gives 5 similar movies from database
        sim_scores = sim_scores[1:6]
        movie_indices = [i[0] for i in sim_scores]
        return data['title'].iloc[movie_indices]

def main():
    title = input('Write your movie title here:').strip().lower()
    print(f'Here are some movies that you might like based on {title.title()}')
    print(find_recommendations(title))

if __name__ == '__main__':
    main()
Traceback (most recent call last):
  File "c:\Users\ccaron1\Documents\GitHub\Term-Project\main.py", line 59, in <module>
    main()
  File "c:\Users\ccaron1\Documents\GitHub\Term-Project\main.py", line 50, in main
    print(find_recommendations(title))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\ccaron1\Documents\GitHub\Term-Project\main.py", line 37, in find_recommendations
    idx = indices[title]
          ~~~~~~~^^^^^^^
  File "C:\Users\ccaron1\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\series.py", line 1007, in __getitem__    
    return self._get_value(key)
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ccaron1\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\series.py", line 1116, in _get_value     
    loc = self.index.get_loc(label)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\ccaron1\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 3654, in get_loc  
    raise KeyError(key) from err
KeyError: 'bang'
python machine-learning scikit-learn keyerror
© www.soinside.com 2019 - 2024. All rights reserved.