In this project we will build a movie recommendation system using nltk library.
import pandas as pd
import numpy as np
import ast
from sklearn.feature_extraction.text import CountVectorizer
from nltk.stem.porter import PorterStemmer
from sklearn.metrics.pairwise import cosine_similarity
import pickle
pd.options.mode.chained_assignment = None # default='warn'
movies=pd.read_csv('tmdb_5000_movies.csv')
credits=pd.read_csv('tmdb_5000_credits.csv')
movies.head(1)
budget | genres | homepage | id | keywords | original_language | original_title | overview | popularity | production_companies | production_countries | release_date | revenue | runtime | spoken_languages | status | tagline | title | vote_average | vote_count | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 237000000 | [{"id": 28, "name": "Action"}, {"id": 12, "nam... | http://www.avatarmovie.com/ | 19995 | [{"id": 1463, "name": "culture clash"}, {"id":... | en | Avatar | In the 22nd century, a paraplegic Marine is di... | 150.437577 | [{"name": "Ingenious Film Partners", "id": 289... | [{"iso_3166_1": "US", "name": "United States o... | 2009-12-10 | 2787965087 | 162.0 | [{"iso_639_1": "en", "name": "English"}, {"iso... | Released | Enter the World of Pandora. | Avatar | 7.2 | 11800 |
credits.head(1)
movie_id | title | cast | crew | |
---|---|---|---|---|
0 | 19995 | Avatar | [{"cast_id": 242, "character": "Jake Sully", "... | [{"credit_id": "52fe48009251416c750aca23", "de... |
movies = movies.merge(credits, left_on='id', right_on='movie_id',suffixes=('_moviesdf', '_creditsdf'))
movies.shape
(4803, 24)
movies.columns
Index(['budget', 'genres', 'homepage', 'id', 'keywords', 'original_language', 'original_title', 'overview', 'popularity', 'production_companies', 'production_countries', 'release_date', 'revenue', 'runtime', 'spoken_languages', 'status', 'tagline', 'title_moviesdf', 'vote_average', 'vote_count', 'movie_id', 'title_creditsdf', 'cast', 'crew'], dtype='object')
#keep columns
movies = movies[['genres', 'id', 'keywords', 'title_moviesdf', 'overview', 'cast', 'crew']]
movies.head()
genres | id | keywords | title_moviesdf | overview | cast | crew | |
---|---|---|---|---|---|---|---|
0 | [{"id": 28, "name": "Action"}, {"id": 12, "nam... | 19995 | [{"id": 1463, "name": "culture clash"}, {"id":... | Avatar | In the 22nd century, a paraplegic Marine is di... | [{"cast_id": 242, "character": "Jake Sully", "... | [{"credit_id": "52fe48009251416c750aca23", "de... |
1 | [{"id": 12, "name": "Adventure"}, {"id": 14, "... | 285 | [{"id": 270, "name": "ocean"}, {"id": 726, "na... | Pirates of the Caribbean: At World's End | Captain Barbossa, long believed to be dead, ha... | [{"cast_id": 4, "character": "Captain Jack Spa... | [{"credit_id": "52fe4232c3a36847f800b579", "de... |
2 | [{"id": 28, "name": "Action"}, {"id": 12, "nam... | 206647 | [{"id": 470, "name": "spy"}, {"id": 818, "name... | Spectre | A cryptic message from Bond’s past sends him o... | [{"cast_id": 1, "character": "James Bond", "cr... | [{"credit_id": "54805967c3a36829b5002c41", "de... |
3 | [{"id": 28, "name": "Action"}, {"id": 80, "nam... | 49026 | [{"id": 849, "name": "dc comics"}, {"id": 853,... | The Dark Knight Rises | Following the death of District Attorney Harve... | [{"cast_id": 2, "character": "Bruce Wayne / Ba... | [{"credit_id": "52fe4781c3a36847f81398c3", "de... |
4 | [{"id": 28, "name": "Action"}, {"id": 12, "nam... | 49529 | [{"id": 818, "name": "based on novel"}, {"id":... | John Carter | John Carter is a war-weary, former military ca... | [{"cast_id": 5, "character": "John Carter", "c... | [{"credit_id": "52fe479ac3a36847f813eaa3", "de... |
movies.isnull().sum()
genres 0 id 0 keywords 0 title_moviesdf 0 overview 3 cast 0 crew 0 dtype: int64
movies.dropna(inplace=True)
movies.duplicated().sum()
0
movies.iloc[0].genres
print("This is a string of list")
This is a string of list
movies.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 4800 entries, 0 to 4802 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 genres 4800 non-null object 1 id 4800 non-null int64 2 keywords 4800 non-null object 3 title_moviesdf 4800 non-null object 4 overview 4800 non-null object 5 cast 4800 non-null object 6 crew 4800 non-null object dtypes: int64(1), object(6) memory usage: 300.0+ KB
def get_list(eachdict):
a_list = []
for i in ast.literal_eval(eachdict):
a_list.append(i['name'])
return a_list
print('This converst the list of string to a list')
ast.literal_eval('[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}]')
This converst the list of string to a list
[{'id': 28, 'name': 'Action'}, {'id': 12, 'name': 'Adventure'}, {'id': 14, 'name': 'Fantasy'}, {'id': 878, 'name': 'Science Fiction'}]
movies['genres'] = movies['genres'].apply(get_list)
movies['keywords'] = movies['keywords'].apply(get_list)
movies['cast'][0]
'[{"cast_id": 242, "character": "Jake Sully", "credit_id": "5602a8a7c3a3685532001c9a", "gender": 2, "id": 65731, "name": "Sam Worthington", "order": 0}, {"cast_id": 3, "character": "Neytiri", "credit_id": "52fe48009251416c750ac9cb", "gender": 1, "id": 8691, "name": "Zoe Saldana", "order": 1}, {"cast_id": 25, "character": "Dr. Grace Augustine", "credit_id": "52fe48009251416c750aca39", "gender": 1, "id": 10205, "name": "Sigourney Weaver", "order": 2}, {"cast_id": 4, "character": "Col. Quaritch", "credit_id": "52fe48009251416c750ac9cf", "gender": 2, "id": 32747, "name": "Stephen Lang", "order": 3}, {"cast_id": 5, "character": "Trudy Chacon", "credit_id": "52fe48009251416c750ac9d3", "gender": 1, "id": 17647, "name": "Michelle Rodriguez", "order": 4}, {"cast_id": 8, "character": "Selfridge", "credit_id": "52fe48009251416c750ac9e1", "gender": 2, "id": 1771, "name": "Giovanni Ribisi", "order": 5}, {"cast_id": 7, "character": "Norm Spellman", "credit_id": "52fe48009251416c750ac9dd", "gender": 2, "id": 59231, "name": "Joel David Moore", "order": 6}, {"cast_id": 9, "character": "Moat", "credit_id": "52fe48009251416c750ac9e5", "gender": 1, "id": 30485, "name": "CCH Pounder", "order": 7}, {"cast_id": 11, "character": "Eytukan", "credit_id": "52fe48009251416c750ac9ed", "gender": 2, "id": 15853, "name": "Wes Studi", "order": 8}, {"cast_id": 10, "character": "Tsu\'Tey", "credit_id": "52fe48009251416c750ac9e9", "gender": 2, "id": 10964, "name": "Laz Alonso", "order": 9}, {"cast_id": 12, "character": "Dr. Max Patel", "credit_id": "52fe48009251416c750ac9f1", "gender": 2, "id": 95697, "name": "Dileep Rao", "order": 10}, {"cast_id": 13, "character": "Lyle Wainfleet", "credit_id": "52fe48009251416c750ac9f5", "gender": 2, "id": 98215, "name": "Matt Gerald", "order": 11}, {"cast_id": 32, "character": "Private Fike", "credit_id": "52fe48009251416c750aca5b", "gender": 2, "id": 154153, "name": "Sean Anthony Moran", "order": 12}, {"cast_id": 33, "character": "Cryo Vault Med Tech", "credit_id": "52fe48009251416c750aca5f", "gender": 2, "id": 397312, "name": "Jason Whyte", "order": 13}, {"cast_id": 34, "character": "Venture Star Crew Chief", "credit_id": "52fe48009251416c750aca63", "gender": 2, "id": 42317, "name": "Scott Lawrence", "order": 14}, {"cast_id": 35, "character": "Lock Up Trooper", "credit_id": "52fe48009251416c750aca67", "gender": 2, "id": 986734, "name": "Kelly Kilgour", "order": 15}, {"cast_id": 36, "character": "Shuttle Pilot", "credit_id": "52fe48009251416c750aca6b", "gender": 0, "id": 1207227, "name": "James Patrick Pitt", "order": 16}, {"cast_id": 37, "character": "Shuttle Co-Pilot", "credit_id": "52fe48009251416c750aca6f", "gender": 0, "id": 1180936, "name": "Sean Patrick Murphy", "order": 17}, {"cast_id": 38, "character": "Shuttle Crew Chief", "credit_id": "52fe48009251416c750aca73", "gender": 2, "id": 1019578, "name": "Peter Dillon", "order": 18}, {"cast_id": 39, "character": "Tractor Operator / Troupe", "credit_id": "52fe48009251416c750aca77", "gender": 0, "id": 91443, "name": "Kevin Dorman", "order": 19}, {"cast_id": 40, "character": "Dragon Gunship Pilot", "credit_id": "52fe48009251416c750aca7b", "gender": 2, "id": 173391, "name": "Kelson Henderson", "order": 20}, {"cast_id": 41, "character": "Dragon Gunship Gunner", "credit_id": "52fe48009251416c750aca7f", "gender": 0, "id": 1207236, "name": "David Van Horn", "order": 21}, {"cast_id": 42, "character": "Dragon Gunship Navigator", "credit_id": "52fe48009251416c750aca83", "gender": 0, "id": 215913, "name": "Jacob Tomuri", "order": 22}, {"cast_id": 43, "character": "Suit #1", "credit_id": "52fe48009251416c750aca87", "gender": 0, "id": 143206, "name": "Michael Blain-Rozgay", "order": 23}, {"cast_id": 44, "character": "Suit #2", "credit_id": "52fe48009251416c750aca8b", "gender": 2, "id": 169676, "name": "Jon Curry", "order": 24}, {"cast_id": 46, "character": "Ambient Room Tech", "credit_id": "52fe48009251416c750aca8f", "gender": 0, "id": 1048610, "name": "Luke Hawker", "order": 25}, {"cast_id": 47, "character": "Ambient Room Tech / Troupe", "credit_id": "52fe48009251416c750aca93", "gender": 0, "id": 42288, "name": "Woody Schultz", "order": 26}, {"cast_id": 48, "character": "Horse Clan Leader", "credit_id": "52fe48009251416c750aca97", "gender": 2, "id": 68278, "name": "Peter Mensah", "order": 27}, {"cast_id": 49, "character": "Link Room Tech", "credit_id": "52fe48009251416c750aca9b", "gender": 0, "id": 1207247, "name": "Sonia Yee", "order": 28}, {"cast_id": 50, "character": "Basketball Avatar / Troupe", "credit_id": "52fe48009251416c750aca9f", "gender": 1, "id": 1207248, "name": "Jahnel Curfman", "order": 29}, {"cast_id": 51, "character": "Basketball Avatar", "credit_id": "52fe48009251416c750acaa3", "gender": 0, "id": 89714, "name": "Ilram Choi", "order": 30}, {"cast_id": 52, "character": "Na\'vi Child", "credit_id": "52fe48009251416c750acaa7", "gender": 0, "id": 1207249, "name": "Kyla Warren", "order": 31}, {"cast_id": 53, "character": "Troupe", "credit_id": "52fe48009251416c750acaab", "gender": 0, "id": 1207250, "name": "Lisa Roumain", "order": 32}, {"cast_id": 54, "character": "Troupe", "credit_id": "52fe48009251416c750acaaf", "gender": 1, "id": 83105, "name": "Debra Wilson", "order": 33}, {"cast_id": 57, "character": "Troupe", "credit_id": "52fe48009251416c750acabb", "gender": 0, "id": 1207253, "name": "Chris Mala", "order": 34}, {"cast_id": 55, "character": "Troupe", "credit_id": "52fe48009251416c750acab3", "gender": 0, "id": 1207251, "name": "Taylor Kibby", "order": 35}, {"cast_id": 56, "character": "Troupe", "credit_id": "52fe48009251416c750acab7", "gender": 0, "id": 1207252, "name": "Jodie Landau", "order": 36}, {"cast_id": 58, "character": "Troupe", "credit_id": "52fe48009251416c750acabf", "gender": 0, "id": 1207254, "name": "Julie Lamm", "order": 37}, {"cast_id": 59, "character": "Troupe", "credit_id": "52fe48009251416c750acac3", "gender": 0, "id": 1207257, "name": "Cullen B. Madden", "order": 38}, {"cast_id": 60, "character": "Troupe", "credit_id": "52fe48009251416c750acac7", "gender": 0, "id": 1207259, "name": "Joseph Brady Madden", "order": 39}, {"cast_id": 61, "character": "Troupe", "credit_id": "52fe48009251416c750acacb", "gender": 0, "id": 1207262, "name": "Frankie Torres", "order": 40}, {"cast_id": 62, "character": "Troupe", "credit_id": "52fe48009251416c750acacf", "gender": 1, "id": 1158600, "name": "Austin Wilson", "order": 41}, {"cast_id": 63, "character": "Troupe", "credit_id": "52fe48019251416c750acad3", "gender": 1, "id": 983705, "name": "Sara Wilson", "order": 42}, {"cast_id": 64, "character": "Troupe", "credit_id": "52fe48019251416c750acad7", "gender": 0, "id": 1207263, "name": "Tamica Washington-Miller", "order": 43}, {"cast_id": 65, "character": "Op Center Staff", "credit_id": "52fe48019251416c750acadb", "gender": 1, "id": 1145098, "name": "Lucy Briant", "order": 44}, {"cast_id": 66, "character": "Op Center Staff", "credit_id": "52fe48019251416c750acadf", "gender": 2, "id": 33305, "name": "Nathan Meister", "order": 45}, {"cast_id": 67, "character": "Op Center Staff", "credit_id": "52fe48019251416c750acae3", "gender": 0, "id": 1207264, "name": "Gerry Blair", "order": 46}, {"cast_id": 68, "character": "Op Center Staff", "credit_id": "52fe48019251416c750acae7", "gender": 2, "id": 33311, "name": "Matthew Chamberlain", "order": 47}, {"cast_id": 69, "character": "Op Center Staff", "credit_id": "52fe48019251416c750acaeb", "gender": 0, "id": 1207265, "name": "Paul Yates", "order": 48}, {"cast_id": 70, "character": "Op Center Duty Officer", "credit_id": "52fe48019251416c750acaef", "gender": 0, "id": 1207266, "name": "Wray Wilson", "order": 49}, {"cast_id": 71, "character": "Op Center Staff", "credit_id": "52fe48019251416c750acaf3", "gender": 2, "id": 54492, "name": "James Gaylyn", "order": 50}, {"cast_id": 72, "character": "Dancer", "credit_id": "52fe48019251416c750acaf7", "gender": 0, "id": 1207267, "name": "Melvin Leno Clark III", "order": 51}, {"cast_id": 73, "character": "Dancer", "credit_id": "52fe48019251416c750acafb", "gender": 0, "id": 1207268, "name": "Carvon Futrell", "order": 52}, {"cast_id": 74, "character": "Dancer", "credit_id": "52fe48019251416c750acaff", "gender": 0, "id": 1207269, "name": "Brandon Jelkes", "order": 53}, {"cast_id": 75, "character": "Dancer", "credit_id": "52fe48019251416c750acb03", "gender": 0, "id": 1207270, "name": "Micah Moch", "order": 54}, {"cast_id": 76, "character": "Dancer", "credit_id": "52fe48019251416c750acb07", "gender": 0, "id": 1207271, "name": "Hanniyah Muhammad", "order": 55}, {"cast_id": 77, "character": "Dancer", "credit_id": "52fe48019251416c750acb0b", "gender": 0, "id": 1207272, "name": "Christopher Nolen", "order": 56}, {"cast_id": 78, "character": "Dancer", "credit_id": "52fe48019251416c750acb0f", "gender": 0, "id": 1207273, "name": "Christa Oliver", "order": 57}, {"cast_id": 79, "character": "Dancer", "credit_id": "52fe48019251416c750acb13", "gender": 0, "id": 1207274, "name": "April Marie Thomas", "order": 58}, {"cast_id": 80, "character": "Dancer", "credit_id": "52fe48019251416c750acb17", "gender": 0, "id": 1207275, "name": "Bravita A. Threatt", "order": 59}, {"cast_id": 81, "character": "Mining Chief (uncredited)", "credit_id": "52fe48019251416c750acb1b", "gender": 0, "id": 1207276, "name": "Colin Bleasdale", "order": 60}, {"cast_id": 82, "character": "Veteran Miner (uncredited)", "credit_id": "52fe48019251416c750acb1f", "gender": 0, "id": 107969, "name": "Mike Bodnar", "order": 61}, {"cast_id": 83, "character": "Richard (uncredited)", "credit_id": "52fe48019251416c750acb23", "gender": 0, "id": 1207278, "name": "Matt Clayton", "order": 62}, {"cast_id": 84, "character": "Nav\'i (uncredited)", "credit_id": "52fe48019251416c750acb27", "gender": 1, "id": 147898, "name": "Nicole Dionne", "order": 63}, {"cast_id": 85, "character": "Trooper (uncredited)", "credit_id": "52fe48019251416c750acb2b", "gender": 0, "id": 1207280, "name": "Jamie Harrison", "order": 64}, {"cast_id": 86, "character": "Trooper (uncredited)", "credit_id": "52fe48019251416c750acb2f", "gender": 0, "id": 1207281, "name": "Allan Henry", "order": 65}, {"cast_id": 87, "character": "Ground Technician (uncredited)", "credit_id": "52fe48019251416c750acb33", "gender": 2, "id": 1207282, "name": "Anthony Ingruber", "order": 66}, {"cast_id": 88, "character": "Flight Crew Mechanic (uncredited)", "credit_id": "52fe48019251416c750acb37", "gender": 0, "id": 1207283, "name": "Ashley Jeffery", "order": 67}, {"cast_id": 14, "character": "Samson Pilot", "credit_id": "52fe48009251416c750ac9f9", "gender": 0, "id": 98216, "name": "Dean Knowsley", "order": 68}, {"cast_id": 89, "character": "Trooper (uncredited)", "credit_id": "52fe48019251416c750acb3b", "gender": 0, "id": 1201399, "name": "Joseph Mika-Hunt", "order": 69}, {"cast_id": 90, "character": "Banshee (uncredited)", "credit_id": "52fe48019251416c750acb3f", "gender": 0, "id": 236696, "name": "Terry Notary", "order": 70}, {"cast_id": 91, "character": "Soldier (uncredited)", "credit_id": "52fe48019251416c750acb43", "gender": 0, "id": 1207287, "name": "Kai Pantano", "order": 71}, {"cast_id": 92, "character": "Blast Technician (uncredited)", "credit_id": "52fe48019251416c750acb47", "gender": 0, "id": 1207288, "name": "Logan Pithyou", "order": 72}, {"cast_id": 93, "character": "Vindum Raah (uncredited)", "credit_id": "52fe48019251416c750acb4b", "gender": 0, "id": 1207289, "name": "Stuart Pollock", "order": 73}, {"cast_id": 94, "character": "Hero (uncredited)", "credit_id": "52fe48019251416c750acb4f", "gender": 0, "id": 584868, "name": "Raja", "order": 74}, {"cast_id": 95, "character": "Ops Centreworker (uncredited)", "credit_id": "52fe48019251416c750acb53", "gender": 0, "id": 1207290, "name": "Gareth Ruck", "order": 75}, {"cast_id": 96, "character": "Engineer (uncredited)", "credit_id": "52fe48019251416c750acb57", "gender": 0, "id": 1062463, "name": "Rhian Sheehan", "order": 76}, {"cast_id": 97, "character": "Col. Quaritch\'s Mech Suit (uncredited)", "credit_id": "52fe48019251416c750acb5b", "gender": 0, "id": 60656, "name": "T. J. Storm", "order": 77}, {"cast_id": 98, "character": "Female Marine (uncredited)", "credit_id": "52fe48019251416c750acb5f", "gender": 0, "id": 1207291, "name": "Jodie Taylor", "order": 78}, {"cast_id": 99, "character": "Ikran Clan Leader (uncredited)", "credit_id": "52fe48019251416c750acb63", "gender": 1, "id": 1186027, "name": "Alicia Vela-Bailey", "order": 79}, {"cast_id": 100, "character": "Geologist (uncredited)", "credit_id": "52fe48019251416c750acb67", "gender": 0, "id": 1207292, "name": "Richard Whiteside", "order": 80}, {"cast_id": 101, "character": "Na\'vi (uncredited)", "credit_id": "52fe48019251416c750acb6b", "gender": 0, "id": 103259, "name": "Nikie Zambo", "order": 81}, {"cast_id": 102, "character": "Ambient Room Tech / Troupe", "credit_id": "52fe48019251416c750acb6f", "gender": 1, "id": 42286, "name": "Julene Renee", "order": 82}]'
def get_list3(eachdict):
a_list = []
counter = 0
for i in ast.literal_eval(eachdict):
if counter != 3:
a_list.append(i['name'])
counter+=1
else:
break
return a_list
movies['cast'] = movies['cast'].apply(get_list3)
movies['cast'][0]
['Sam Worthington', 'Zoe Saldana', 'Sigourney Weaver']
movies['crew'][0]
'[{"credit_id": "52fe48009251416c750aca23", "department": "Editing", "gender": 0, "id": 1721, "job": "Editor", "name": "Stephen E. Rivkin"}, {"credit_id": "539c47ecc3a36810e3001f87", "department": "Art", "gender": 2, "id": 496, "job": "Production Design", "name": "Rick Carter"}, {"credit_id": "54491c89c3a3680fb4001cf7", "department": "Sound", "gender": 0, "id": 900, "job": "Sound Designer", "name": "Christopher Boyes"}, {"credit_id": "54491cb70e0a267480001bd0", "department": "Sound", "gender": 0, "id": 900, "job": "Supervising Sound Editor", "name": "Christopher Boyes"}, {"credit_id": "539c4a4cc3a36810c9002101", "department": "Production", "gender": 1, "id": 1262, "job": "Casting", "name": "Mali Finn"}, {"credit_id": "5544ee3b925141499f0008fc", "department": "Sound", "gender": 2, "id": 1729, "job": "Original Music Composer", "name": "James Horner"}, {"credit_id": "52fe48009251416c750ac9c3", "department": "Directing", "gender": 2, "id": 2710, "job": "Director", "name": "James Cameron"}, {"credit_id": "52fe48009251416c750ac9d9", "department": "Writing", "gender": 2, "id": 2710, "job": "Writer", "name": "James Cameron"}, {"credit_id": "52fe48009251416c750aca17", "department": "Editing", "gender": 2, "id": 2710, "job": "Editor", "name": "James Cameron"}, {"credit_id": "52fe48009251416c750aca29", "department": "Production", "gender": 2, "id": 2710, "job": "Producer", "name": "James Cameron"}, {"credit_id": "52fe48009251416c750aca3f", "department": "Writing", "gender": 2, "id": 2710, "job": "Screenplay", "name": "James Cameron"}, {"credit_id": "539c4987c3a36810ba0021a4", "department": "Art", "gender": 2, "id": 7236, "job": "Art Direction", "name": "Andrew Menzies"}, {"credit_id": "549598c3c3a3686ae9004383", "department": "Visual Effects", "gender": 0, "id": 6690, "job": "Visual Effects Producer", "name": "Jill Brooks"}, {"credit_id": "52fe48009251416c750aca4b", "department": "Production", "gender": 1, "id": 6347, "job": "Casting", "name": "Margery Simkin"}, {"credit_id": "570b6f419251417da70032fe", "department": "Art", "gender": 2, "id": 6878, "job": "Supervising Art Director", "name": "Kevin Ishioka"}, {"credit_id": "5495a0fac3a3686ae9004468", "department": "Sound", "gender": 0, "id": 6883, "job": "Music Editor", "name": "Dick Bernstein"}, {"credit_id": "54959706c3a3686af3003e81", "department": "Sound", "gender": 0, "id": 8159, "job": "Sound Effects Editor", "name": "Shannon Mills"}, {"credit_id": "54491d58c3a3680fb1001ccb", "department": "Sound", "gender": 0, "id": 8160, "job": "Foley", "name": "Dennie Thorpe"}, {"credit_id": "54491d6cc3a3680fa5001b2c", "department": "Sound", "gender": 0, "id": 8163, "job": "Foley", "name": "Jana Vance"}, {"credit_id": "52fe48009251416c750aca57", "department": "Costume & Make-Up", "gender": 1, "id": 8527, "job": "Costume Design", "name": "Deborah Lynn Scott"}, {"credit_id": "52fe48009251416c750aca2f", "department": "Production", "gender": 2, "id": 8529, "job": "Producer", "name": "Jon Landau"}, {"credit_id": "539c4937c3a36810ba002194", "department": "Art", "gender": 0, "id": 9618, "job": "Art Direction", "name": "Sean Haworth"}, {"credit_id": "539c49b6c3a36810c10020e6", "department": "Art", "gender": 1, "id": 12653, "job": "Set Decoration", "name": "Kim Sinclair"}, {"credit_id": "570b6f2f9251413a0e00020d", "department": "Art", "gender": 1, "id": 12653, "job": "Supervising Art Director", "name": "Kim Sinclair"}, {"credit_id": "54491a6c0e0a26748c001b19", "department": "Art", "gender": 2, "id": 14350, "job": "Set Designer", "name": "Richard F. Mays"}, {"credit_id": "56928cf4c3a3684cff0025c4", "department": "Production", "gender": 1, "id": 20294, "job": "Executive Producer", "name": "Laeta Kalogridis"}, {"credit_id": "52fe48009251416c750aca51", "department": "Costume & Make-Up", "gender": 0, "id": 17675, "job": "Costume Design", "name": "Mayes C. Rubeo"}, {"credit_id": "52fe48009251416c750aca11", "department": "Camera", "gender": 2, "id": 18265, "job": "Director of Photography", "name": "Mauro Fiore"}, {"credit_id": "5449194d0e0a26748f001b39", "department": "Art", "gender": 0, "id": 42281, "job": "Set Designer", "name": "Scott Herbertson"}, {"credit_id": "52fe48009251416c750aca05", "department": "Crew", "gender": 0, "id": 42288, "job": "Stunts", "name": "Woody Schultz"}, {"credit_id": "5592aefb92514152de0010f5", "department": "Costume & Make-Up", "gender": 0, "id": 29067, "job": "Makeup Artist", "name": "Linda DeVetta"}, {"credit_id": "5592afa492514152de00112c", "department": "Costume & Make-Up", "gender": 0, "id": 29067, "job": "Hairstylist", "name": "Linda DeVetta"}, {"credit_id": "54959ed592514130fc002e5d", "department": "Camera", "gender": 2, "id": 33302, "job": "Camera Operator", "name": "Richard Bluck"}, {"credit_id": "539c4891c3a36810ba002147", "department": "Art", "gender": 2, "id": 33303, "job": "Art Direction", "name": "Simon Bright"}, {"credit_id": "54959c069251417a81001f3a", "department": "Visual Effects", "gender": 0, "id": 113145, "job": "Visual Effects Supervisor", "name": "Richard Martin"}, {"credit_id": "54959a0dc3a3680ff5002c8d", "department": "Crew", "gender": 2, "id": 58188, "job": "Visual Effects Editor", "name": "Steve R. Moore"}, {"credit_id": "52fe48009251416c750aca1d", "department": "Editing", "gender": 2, "id": 58871, "job": "Editor", "name": "John Refoua"}, {"credit_id": "54491a4dc3a3680fc30018ca", "department": "Art", "gender": 0, "id": 92359, "job": "Set Designer", "name": "Karl J. Martin"}, {"credit_id": "52fe48009251416c750aca35", "department": "Camera", "gender": 1, "id": 72201, "job": "Director of Photography", "name": "Chiling Lin"}, {"credit_id": "52fe48009251416c750ac9ff", "department": "Crew", "gender": 0, "id": 89714, "job": "Stunts", "name": "Ilram Choi"}, {"credit_id": "54959c529251416e2b004394", "department": "Visual Effects", "gender": 2, "id": 93214, "job": "Visual Effects Supervisor", "name": "Steven Quale"}, {"credit_id": "54491edf0e0a267489001c37", "department": "Crew", "gender": 1, "id": 122607, "job": "Dialect Coach", "name": "Carla Meyer"}, {"credit_id": "539c485bc3a368653d001a3a", "department": "Art", "gender": 2, "id": 132585, "job": "Art Direction", "name": "Nick Bassett"}, {"credit_id": "539c4903c3a368653d001a74", "department": "Art", "gender": 0, "id": 132596, "job": "Art Direction", "name": "Jill Cormack"}, {"credit_id": "539c4967c3a368653d001a94", "department": "Art", "gender": 0, "id": 132604, "job": "Art Direction", "name": "Andy McLaren"}, {"credit_id": "52fe48009251416c750aca45", "department": "Crew", "gender": 0, "id": 236696, "job": "Motion Capture Artist", "name": "Terry Notary"}, {"credit_id": "54959e02c3a3680fc60027d2", "department": "Crew", "gender": 2, "id": 956198, "job": "Stunt Coordinator", "name": "Garrett Warren"}, {"credit_id": "54959ca3c3a3686ae300438c", "department": "Visual Effects", "gender": 2, "id": 957874, "job": "Visual Effects Supervisor", "name": "Jonathan Rothbart"}, {"credit_id": "570b6f519251412c74001b2f", "department": "Art", "gender": 0, "id": 957889, "job": "Supervising Art Director", "name": "Stefan Dechant"}, {"credit_id": "570b6f62c3a3680b77007460", "department": "Art", "gender": 2, "id": 959555, "job": "Supervising Art Director", "name": "Todd Cherniawsky"}, {"credit_id": "539c4a3ac3a36810da0021cc", "department": "Production", "gender": 0, "id": 1016177, "job": "Casting", "name": "Miranda Rivers"}, {"credit_id": "539c482cc3a36810c1002062", "department": "Art", "gender": 0, "id": 1032536, "job": "Production Design", "name": "Robert Stromberg"}, {"credit_id": "539c4b65c3a36810c9002125", "department": "Costume & Make-Up", "gender": 2, "id": 1071680, "job": "Costume Design", "name": "John Harding"}, {"credit_id": "54959e6692514130fc002e4e", "department": "Camera", "gender": 0, "id": 1177364, "job": "Steadicam Operator", "name": "Roberto De Angelis"}, {"credit_id": "539c49f1c3a368653d001aac", "department": "Costume & Make-Up", "gender": 2, "id": 1202850, "job": "Makeup Department Head", "name": "Mike Smithson"}, {"credit_id": "5495999ec3a3686ae100460c", "department": "Visual Effects", "gender": 0, "id": 1204668, "job": "Visual Effects Producer", "name": "Alain Lalanne"}, {"credit_id": "54959cdfc3a3681153002729", "department": "Visual Effects", "gender": 0, "id": 1206410, "job": "Visual Effects Supervisor", "name": "Lucas Salton"}, {"credit_id": "549596239251417a81001eae", "department": "Crew", "gender": 0, "id": 1234266, "job": "Post Production Supervisor", "name": "Janace Tashjian"}, {"credit_id": "54959c859251416e1e003efe", "department": "Visual Effects", "gender": 0, "id": 1271932, "job": "Visual Effects Supervisor", "name": "Stephen Rosenbaum"}, {"credit_id": "5592af28c3a368775a00105f", "department": "Costume & Make-Up", "gender": 0, "id": 1310064, "job": "Makeup Artist", "name": "Frankie Karena"}, {"credit_id": "539c4adfc3a36810e300203b", "department": "Costume & Make-Up", "gender": 1, "id": 1319844, "job": "Costume Supervisor", "name": "Lisa Lovaas"}, {"credit_id": "54959b579251416e2b004371", "department": "Visual Effects", "gender": 0, "id": 1327028, "job": "Visual Effects Supervisor", "name": "Jonathan Fawkner"}, {"credit_id": "539c48a7c3a36810b5001fa7", "department": "Art", "gender": 0, "id": 1330561, "job": "Art Direction", "name": "Robert Bavin"}, {"credit_id": "539c4a71c3a36810da0021e0", "department": "Costume & Make-Up", "gender": 0, "id": 1330567, "job": "Costume Supervisor", "name": "Anthony Almaraz"}, {"credit_id": "539c4a8ac3a36810ba0021e4", "department": "Costume & Make-Up", "gender": 0, "id": 1330570, "job": "Costume Supervisor", "name": "Carolyn M. Fenton"}, {"credit_id": "539c4ab6c3a36810da0021f0", "department": "Costume & Make-Up", "gender": 0, "id": 1330574, "job": "Costume Supervisor", "name": "Beth Koenigsberg"}, {"credit_id": "54491ab70e0a267480001ba2", "department": "Art", "gender": 0, "id": 1336191, "job": "Set Designer", "name": "Sam Page"}, {"credit_id": "544919d9c3a3680fc30018bd", "department": "Art", "gender": 0, "id": 1339441, "job": "Set Designer", "name": "Tex Kadonaga"}, {"credit_id": "54491cf50e0a267483001b0c", "department": "Editing", "gender": 0, "id": 1352422, "job": "Dialogue Editor", "name": "Kim Foscato"}, {"credit_id": "544919f40e0a26748c001b09", "department": "Art", "gender": 0, "id": 1352962, "job": "Set Designer", "name": "Tammy S. Lee"}, {"credit_id": "5495a115c3a3680ff5002d71", "department": "Crew", "gender": 0, "id": 1357070, "job": "Transportation Coordinator", "name": "Denny Caira"}, {"credit_id": "5495a12f92514130fc002e94", "department": "Crew", "gender": 0, "id": 1357071, "job": "Transportation Coordinator", "name": "James Waitkus"}, {"credit_id": "5495976fc3a36811530026b0", "department": "Sound", "gender": 0, "id": 1360103, "job": "Supervising Sound Editor", "name": "Addison Teague"}, {"credit_id": "54491837c3a3680fb1001c5a", "department": "Art", "gender": 2, "id": 1376887, "job": "Set Designer", "name": "C. Scott Baker"}, {"credit_id": "54491878c3a3680fb4001c9d", "department": "Art", "gender": 0, "id": 1376888, "job": "Set Designer", "name": "Luke Caska"}, {"credit_id": "544918dac3a3680fa5001ae0", "department": "Art", "gender": 0, "id": 1376889, "job": "Set Designer", "name": "David Chow"}, {"credit_id": "544919110e0a267486001b68", "department": "Art", "gender": 0, "id": 1376890, "job": "Set Designer", "name": "Jonathan Dyer"}, {"credit_id": "54491967c3a3680faa001b5e", "department": "Art", "gender": 0, "id": 1376891, "job": "Set Designer", "name": "Joseph Hiura"}, {"credit_id": "54491997c3a3680fb1001c8a", "department": "Art", "gender": 0, "id": 1376892, "job": "Art Department Coordinator", "name": "Rebecca Jellie"}, {"credit_id": "544919ba0e0a26748f001b42", "department": "Art", "gender": 0, "id": 1376893, "job": "Set Designer", "name": "Robert Andrew Johnson"}, {"credit_id": "54491b1dc3a3680faa001b8c", "department": "Art", "gender": 0, "id": 1376895, "job": "Assistant Art Director", "name": "Mike Stassi"}, {"credit_id": "54491b79c3a3680fbb001826", "department": "Art", "gender": 0, "id": 1376897, "job": "Construction Coordinator", "name": "John Villarino"}, {"credit_id": "54491baec3a3680fb4001ce6", "department": "Art", "gender": 2, "id": 1376898, "job": "Assistant Art Director", "name": "Jeffrey Wisniewski"}, {"credit_id": "54491d2fc3a3680fb4001d07", "department": "Editing", "gender": 0, "id": 1376899, "job": "Dialogue Editor", "name": "Cheryl Nardi"}, {"credit_id": "54491d86c3a3680fa5001b2f", "department": "Editing", "gender": 0, "id": 1376901, "job": "Dialogue Editor", "name": "Marshall Winn"}, {"credit_id": "54491d9dc3a3680faa001bb0", "department": "Sound", "gender": 0, "id": 1376902, "job": "Supervising Sound Editor", "name": "Gwendolyn Yates Whittle"}, {"credit_id": "54491dc10e0a267486001bce", "department": "Sound", "gender": 0, "id": 1376903, "job": "Sound Re-Recording Mixer", "name": "William Stein"}, {"credit_id": "54491f500e0a26747c001c07", "department": "Crew", "gender": 0, "id": 1376909, "job": "Choreographer", "name": "Lula Washington"}, {"credit_id": "549599239251412c4e002a2e", "department": "Visual Effects", "gender": 0, "id": 1391692, "job": "Visual Effects Producer", "name": "Chris Del Conte"}, {"credit_id": "54959d54c3a36831b8001d9a", "department": "Visual Effects", "gender": 2, "id": 1391695, "job": "Visual Effects Supervisor", "name": "R. Christopher White"}, {"credit_id": "54959bdf9251412c4e002a66", "department": "Visual Effects", "gender": 0, "id": 1394070, "job": "Visual Effects Supervisor", "name": "Dan Lemmon"}, {"credit_id": "5495971d92514132ed002922", "department": "Sound", "gender": 0, "id": 1394129, "job": "Sound Effects Editor", "name": "Tim Nielsen"}, {"credit_id": "5592b25792514152cc0011aa", "department": "Crew", "gender": 0, "id": 1394286, "job": "CG Supervisor", "name": "Michael Mulholland"}, {"credit_id": "54959a329251416e2b004355", "department": "Crew", "gender": 0, "id": 1394750, "job": "Visual Effects Editor", "name": "Thomas Nittmann"}, {"credit_id": "54959d6dc3a3686ae9004401", "department": "Visual Effects", "gender": 0, "id": 1394755, "job": "Visual Effects Supervisor", "name": "Edson Williams"}, {"credit_id": "5495a08fc3a3686ae300441c", "department": "Editing", "gender": 0, "id": 1394953, "job": "Digital Intermediate", "name": "Christine Carr"}, {"credit_id": "55402d659251413d6d000249", "department": "Visual Effects", "gender": 0, "id": 1395269, "job": "Visual Effects Supervisor", "name": "John Bruno"}, {"credit_id": "54959e7b9251416e1e003f3e", "department": "Camera", "gender": 0, "id": 1398970, "job": "Steadicam Operator", "name": "David Emmerichs"}, {"credit_id": "54959734c3a3686ae10045e0", "department": "Sound", "gender": 0, "id": 1400906, "job": "Sound Effects Editor", "name": "Christopher Scarabosio"}, {"credit_id": "549595dd92514130fc002d79", "department": "Production", "gender": 0, "id": 1401784, "job": "Production Supervisor", "name": "Jennifer Teves"}, {"credit_id": "549596009251413af70028cc", "department": "Production", "gender": 0, "id": 1401785, "job": "Production Manager", "name": "Brigitte Yorke"}, {"credit_id": "549596e892514130fc002d99", "department": "Sound", "gender": 0, "id": 1401786, "job": "Sound Effects Editor", "name": "Ken Fischer"}, {"credit_id": "549598229251412c4e002a1c", "department": "Crew", "gender": 0, "id": 1401787, "job": "Special Effects Coordinator", "name": "Iain Hutton"}, {"credit_id": "549598349251416e2b00432b", "department": "Crew", "gender": 0, "id": 1401788, "job": "Special Effects Coordinator", "name": "Steve Ingram"}, {"credit_id": "54959905c3a3686ae3004324", "department": "Visual Effects", "gender": 0, "id": 1401789, "job": "Visual Effects Producer", "name": "Joyce Cox"}, {"credit_id": "5495994b92514132ed002951", "department": "Visual Effects", "gender": 0, "id": 1401790, "job": "Visual Effects Producer", "name": "Jenny Foster"}, {"credit_id": "549599cbc3a3686ae1004613", "department": "Crew", "gender": 0, "id": 1401791, "job": "Visual Effects Editor", "name": "Christopher Marino"}, {"credit_id": "549599f2c3a3686ae100461e", "department": "Crew", "gender": 0, "id": 1401792, "job": "Visual Effects Editor", "name": "Jim Milton"}, {"credit_id": "54959a51c3a3686af3003eb5", "department": "Visual Effects", "gender": 0, "id": 1401793, "job": "Visual Effects Producer", "name": "Cyndi Ochs"}, {"credit_id": "54959a7cc3a36811530026f4", "department": "Crew", "gender": 0, "id": 1401794, "job": "Visual Effects Editor", "name": "Lucas Putnam"}, {"credit_id": "54959b91c3a3680ff5002cb4", "department": "Visual Effects", "gender": 0, "id": 1401795, "job": "Visual Effects Supervisor", "name": "Anthony \'Max\' Ivins"}, {"credit_id": "54959bb69251412c4e002a5f", "department": "Visual Effects", "gender": 0, "id": 1401796, "job": "Visual Effects Supervisor", "name": "John Knoll"}, {"credit_id": "54959cbbc3a3686ae3004391", "department": "Visual Effects", "gender": 2, "id": 1401799, "job": "Visual Effects Supervisor", "name": "Eric Saindon"}, {"credit_id": "54959d06c3a3686ae90043f6", "department": "Visual Effects", "gender": 0, "id": 1401800, "job": "Visual Effects Supervisor", "name": "Wayne Stables"}, {"credit_id": "54959d259251416e1e003f11", "department": "Visual Effects", "gender": 0, "id": 1401801, "job": "Visual Effects Supervisor", "name": "David Stinnett"}, {"credit_id": "54959db49251413af7002975", "department": "Visual Effects", "gender": 0, "id": 1401803, "job": "Visual Effects Supervisor", "name": "Guy Williams"}, {"credit_id": "54959de4c3a3681153002750", "department": "Crew", "gender": 0, "id": 1401804, "job": "Stunt Coordinator", "name": "Stuart Thorp"}, {"credit_id": "54959ef2c3a3680fc60027f2", "department": "Lighting", "gender": 0, "id": 1401805, "job": "Best Boy Electric", "name": "Giles Coburn"}, {"credit_id": "54959f07c3a3680fc60027f9", "department": "Camera", "gender": 2, "id": 1401806, "job": "Still Photographer", "name": "Mark Fellman"}, {"credit_id": "54959f47c3a3681153002774", "department": "Lighting", "gender": 0, "id": 1401807, "job": "Lighting Technician", "name": "Scott Sprague"}, {"credit_id": "54959f8cc3a36831b8001df2", "department": "Visual Effects", "gender": 0, "id": 1401808, "job": "Animation Director", "name": "Jeremy Hollobon"}, {"credit_id": "54959fa0c3a36831b8001dfb", "department": "Visual Effects", "gender": 0, "id": 1401809, "job": "Animation Director", "name": "Orlando Meunier"}, {"credit_id": "54959fb6c3a3686af3003f54", "department": "Visual Effects", "gender": 0, "id": 1401810, "job": "Animation Director", "name": "Taisuke Tanimura"}, {"credit_id": "54959fd2c3a36831b8001e02", "department": "Costume & Make-Up", "gender": 0, "id": 1401812, "job": "Set Costumer", "name": "Lilia Mishel Acevedo"}, {"credit_id": "54959ff9c3a3686ae300440c", "department": "Costume & Make-Up", "gender": 0, "id": 1401814, "job": "Set Costumer", "name": "Alejandro M. Hernandez"}, {"credit_id": "5495a0ddc3a3686ae10046fe", "department": "Editing", "gender": 0, "id": 1401815, "job": "Digital Intermediate", "name": "Marvin Hall"}, {"credit_id": "5495a1f7c3a3686ae3004443", "department": "Production", "gender": 0, "id": 1401816, "job": "Publicist", "name": "Judy Alley"}, {"credit_id": "5592b29fc3a36869d100002f", "department": "Crew", "gender": 0, "id": 1418381, "job": "CG Supervisor", "name": "Mike Perry"}, {"credit_id": "5592b23a9251415df8001081", "department": "Crew", "gender": 0, "id": 1426854, "job": "CG Supervisor", "name": "Andrew Morley"}, {"credit_id": "55491e1192514104c40002d8", "department": "Art", "gender": 0, "id": 1438901, "job": "Conceptual Design", "name": "Seth Engstrom"}, {"credit_id": "5525d5809251417276002b06", "department": "Crew", "gender": 0, "id": 1447362, "job": "Visual Effects Art Director", "name": "Eric Oliver"}, {"credit_id": "554427ca925141586500312a", "department": "Visual Effects", "gender": 0, "id": 1447503, "job": "Modeling", "name": "Matsune Suzuki"}, {"credit_id": "551906889251415aab001c88", "department": "Art", "gender": 0, "id": 1447524, "job": "Art Department Manager", "name": "Paul Tobin"}, {"credit_id": "5592af8492514152cc0010de", "department": "Costume & Make-Up", "gender": 0, "id": 1452643, "job": "Hairstylist", "name": "Roxane Griffin"}, {"credit_id": "553d3c109251415852001318", "department": "Lighting", "gender": 0, "id": 1453938, "job": "Lighting Artist", "name": "Arun Ram-Mohan"}, {"credit_id": "5592af4692514152d5001355", "department": "Costume & Make-Up", "gender": 0, "id": 1457305, "job": "Makeup Artist", "name": "Georgia Lockhart-Adams"}, {"credit_id": "5592b2eac3a36877470012a5", "department": "Crew", "gender": 0, "id": 1466035, "job": "CG Supervisor", "name": "Thrain Shadbolt"}, {"credit_id": "5592b032c3a36877450015f1", "department": "Crew", "gender": 0, "id": 1483220, "job": "CG Supervisor", "name": "Brad Alexander"}, {"credit_id": "5592b05592514152d80012f6", "department": "Crew", "gender": 0, "id": 1483221, "job": "CG Supervisor", "name": "Shadi Almassizadeh"}, {"credit_id": "5592b090c3a36877570010b5", "department": "Crew", "gender": 0, "id": 1483222, "job": "CG Supervisor", "name": "Simon Clutterbuck"}, {"credit_id": "5592b0dbc3a368774b00112c", "department": "Crew", "gender": 0, "id": 1483223, "job": "CG Supervisor", "name": "Graeme Demmocks"}, {"credit_id": "5592b0fe92514152db0010c1", "department": "Crew", "gender": 0, "id": 1483224, "job": "CG Supervisor", "name": "Adrian Fernandes"}, {"credit_id": "5592b11f9251415df8001059", "department": "Crew", "gender": 0, "id": 1483225, "job": "CG Supervisor", "name": "Mitch Gates"}, {"credit_id": "5592b15dc3a3687745001645", "department": "Crew", "gender": 0, "id": 1483226, "job": "CG Supervisor", "name": "Jerry Kung"}, {"credit_id": "5592b18e925141645a0004ae", "department": "Crew", "gender": 0, "id": 1483227, "job": "CG Supervisor", "name": "Andy Lomas"}, {"credit_id": "5592b1bfc3a368775d0010e7", "department": "Crew", "gender": 0, "id": 1483228, "job": "CG Supervisor", "name": "Sebastian Marino"}, {"credit_id": "5592b2049251415df8001078", "department": "Crew", "gender": 0, "id": 1483229, "job": "CG Supervisor", "name": "Matthias Menz"}, {"credit_id": "5592b27b92514152d800136a", "department": "Crew", "gender": 0, "id": 1483230, "job": "CG Supervisor", "name": "Sergei Nevshupov"}, {"credit_id": "5592b2c3c3a36869e800003c", "department": "Crew", "gender": 0, "id": 1483231, "job": "CG Supervisor", "name": "Philippe Rebours"}, {"credit_id": "5592b317c3a36877470012af", "department": "Crew", "gender": 0, "id": 1483232, "job": "CG Supervisor", "name": "Michael Takarangi"}, {"credit_id": "5592b345c3a36877470012bb", "department": "Crew", "gender": 0, "id": 1483233, "job": "CG Supervisor", "name": "David Weitzberg"}, {"credit_id": "5592b37cc3a368775100113b", "department": "Crew", "gender": 0, "id": 1483234, "job": "CG Supervisor", "name": "Ben White"}, {"credit_id": "573c8e2f9251413f5d000094", "department": "Crew", "gender": 1, "id": 1621932, "job": "Stunts", "name": "Min Windle"}]'
we need director from this
job = Director
def fetch_director(eachdict):
a_list = []
for i in ast.literal_eval(eachdict):
if i['job']=='Director':
a_list.append(i['name'])
break
return a_list
movies['crew'] = movies['crew'].apply(fetch_director)
movies['overview'] = movies['overview'].apply(lambda x: x.split())
movies['genres'].apply(lambda x: [i.replace(" ","") for i in x] )
0 [Action, Adventure, Fantasy, ScienceFiction] 1 [Adventure, Fantasy, Action] 2 [Action, Adventure, Crime] 3 [Action, Crime, Drama, Thriller] 4 [Action, Adventure, ScienceFiction] ... 4798 [Action, Crime, Thriller] 4799 [Comedy, Romance] 4800 [Comedy, Drama, Romance, TVMovie] 4801 [] 4802 [Documentary] Name: genres, Length: 4800, dtype: object
col_list = ['genres', 'keywords', 'cast', 'crew']
for col in col_list:
movies[col] = movies[col].apply(lambda x: [i.replace(" ","") for i in x] )
movies.head()
genres | id | keywords | title_moviesdf | overview | cast | crew | |
---|---|---|---|---|---|---|---|
0 | [Action, Adventure, Fantasy, ScienceFiction] | 19995 | [cultureclash, future, spacewar, spacecolony, ... | Avatar | [In, the, 22nd, century,, a, paraplegic, Marin... | [SamWorthington, ZoeSaldana, SigourneyWeaver] | [JamesCameron] |
1 | [Adventure, Fantasy, Action] | 285 | [ocean, drugabuse, exoticisland, eastindiatrad... | Pirates of the Caribbean: At World's End | [Captain, Barbossa,, long, believed, to, be, d... | [JohnnyDepp, OrlandoBloom, KeiraKnightley] | [GoreVerbinski] |
2 | [Action, Adventure, Crime] | 206647 | [spy, basedonnovel, secretagent, sequel, mi6, ... | Spectre | [A, cryptic, message, from, Bond’s, past, send... | [DanielCraig, ChristophWaltz, LéaSeydoux] | [SamMendes] |
3 | [Action, Crime, Drama, Thriller] | 49026 | [dccomics, crimefighter, terrorist, secretiden... | The Dark Knight Rises | [Following, the, death, of, District, Attorney... | [ChristianBale, MichaelCaine, GaryOldman] | [ChristopherNolan] |
4 | [Action, Adventure, ScienceFiction] | 49529 | [basedonnovel, mars, medallion, spacetravel, p... | John Carter | [John, Carter, is, a, war-weary,, former, mili... | [TaylorKitsch, LynnCollins, SamanthaMorton] | [AndrewStanton] |
movies['tags']=movies['overview']+movies['genres']+movies['keywords']+movies['cast']+movies['crew']
new_df = movies[['id', 'title_moviesdf', 'tags']]
new_df.rename(columns = {'title_moviesdf': 'title'}, inplace=True)
new_df['tags'] = new_df['tags'].apply(lambda x:" ".join(x))
new_df['tags'][0]
'In the 22nd century, a paraplegic Marine is dispatched to the moon Pandora on a unique mission, but becomes torn between following orders and protecting an alien civilization. Action Adventure Fantasy ScienceFiction cultureclash future spacewar spacecolony society spacetravel futuristic romance space alien tribe alienplanet cgi marine soldier battle loveaffair antiwar powerrelations mindandsoul 3d SamWorthington ZoeSaldana SigourneyWeaver JamesCameron'
new_df['tags'] = new_df['tags'].apply(lambda x: x.lower())
stemmer = PorterStemmer()
def stem(text):
y = []
for i in text.split():
y.append(stemmer.stem(i))
return " ".join(y)
new_df['tags'] = new_df['tags'].apply(stem)
new_df.head()
id | title | tags | |
---|---|---|---|
0 | 19995 | Avatar | in the 22nd century, a parapleg marin is dispa... |
1 | 285 | Pirates of the Caribbean: At World's End | captain barbossa, long believ to be dead, ha c... |
2 | 206647 | Spectre | a cryptic messag from bond’ past send him on a... |
3 | 49026 | The Dark Knight Rises | follow the death of district attorney harvey d... |
4 | 49529 | John Carter | john carter is a war-weary, former militari ca... |
new_df.shape
(4800, 3)
text vectorization
vectorizer = CountVectorizer(stop_words='english', max_features = 5000)
vectors = vectorizer.fit_transform(new_df['tags']).toarray()
vectorizer.get_feature_names()
['000', '007', '10', '100', '11', '12', '13', '14', '15', '16', '17', '17th', '18', '18th', '18thcenturi', '19', '1910', '1920', '1930', '1940', '1944', '1950', '1950s', '1960', '1960s', '1970', '1970s', '1971', '1974', '1976', '1980', '1985', '1990', '1999', '19th', '19thcenturi', '20', '200', '2003', '2009', '20th', '21st', '23', '24', '25', '30', '300', '3d', '40', '50', '500', '60', '70', '80', 'aaron', 'aaroneckhart', 'abandon', 'abduct', 'abigailbreslin', 'abil', 'abl', 'aboard', 'abov', 'abus', 'academ', 'academi', 'accept', 'access', 'accid', 'accident', 'acclaim', 'accompani', 'accomplish', 'account', 'accus', 'ace', 'achiev', 'acquaint', 'act', 'action', 'actionhero', 'activ', 'activist', 'activities', 'actor', 'actress', 'actual', 'ad', 'adam', 'adamsandl', 'adamshankman', 'adapt', 'add', 'addict', 'adjust', 'admir', 'admit', 'adolesc', 'adopt', 'ador', 'adrienbrodi', 'adult', 'adultanim', 'adulteri', 'adulthood', 'advanc', 'adventur', 'adventure', 'adventures', 'advertis', 'advic', 'advis', 'affair', 'affect', 'afghanistan', 'africa', 'african', 'africanamerican', 'aftercreditssting', 'afterlif', 'aftermath', 'ag', 'age', 'agediffer', 'agenc', 'agency', 'agenda', 'agent', 'agents', 'aggress', 'ago', 'agre', 'ahead', 'aid', 'aidanquinn', 'ail', 'aim', 'air', 'airplan', 'airplanecrash', 'airport', 'aka', 'al', 'alabama', 'alan', 'alaska', 'albert', 'alcatraz', 'alcohol', 'alecbaldwin', 'alex', 'alexkendrick', 'alfredhitchcock', 'alfredmolina', 'ali', 'alic', 'alice', 'alien', 'alieninvas', 'alienlife', 'alienplanet', 'aliens', 'alik', 'aliv', 'alive', 'allen', 'alli', 'allianc', 'allow', 'alon', 'alongsid', 'alpacino', 'alpha', 'alreadi', 'alter', 'altern', 'alway', 'alyssa', 'alzheimer', 'amanda', 'amandapeet', 'amandaseyfri', 'amateur', 'amaz', 'amazon', 'ambassador', 'ambit', 'ambiti', 'ambul', 'ambush', 'america', 'american', 'americanabroad', 'americancivilwar', 'americanfootbal', 'americanfootballplay', 'amid', 'amidst', 'amnesia', 'amp', 'amsterdam', 'amus', 'amusementpark', 'amy', 'amyadam', 'amysmart', 'ana', 'anakin', 'analyst', 'anarchiccomedi', 'ancient', 'ancientrom', 'ancientworld', 'anderson', 'andi', 'andiemacdowel', 'andrew', 'android', 'andy', 'andygarcía', 'angel', 'angela', 'angelabassett', 'angeles', 'angelinajoli', 'anger', 'angle', 'angri', 'ani', 'anim', 'animalattack', 'animalhorror', 'animals', 'anjelicahuston', 'ann', 'anna', 'annafari', 'annakendrick', 'anne', 'annehathaway', 'annemoss', 'annetteben', 'anni', 'annie', 'anniversari', 'announc', 'annual', 'anonym', 'anoth', 'answer', 'ant', 'antholog', 'anthoni', 'anthonyanderson', 'anthonyhopkin', 'anthonymacki', 'anthropomorph', 'anti', 'antic', 'antihero', 'antiqu', 'antoinefuqua', 'antoniobandera', 'antonyelchin', 'anyon', 'anyth', 'apart', 'apartheid', 'apartment', 'ape', 'apocalyps', 'apocalypse', 'apocalypt', 'appar', 'appear', 'appl', 'apple', 'appoint', 'appreci', 'apprentic', 'approach', 'april', 'aquarium', 'arab', 'arch', 'archaeologist', 'archeolog', 'architect', 'arctic', 'area', 'aren', 'arena', 'argument', 'aris', 'aristocrat', 'arm', 'armi', 'armor', 'armsdeal', 'army', 'arnold', 'arnoldschwarzenegg', 'arrang', 'arrangedmarriag', 'arrest', 'arriv', 'arrog', 'art', 'arthur', 'artifact', 'artifici', 'artificialintellig', 'artist', 'ash', 'ashley', 'ashleyjudd', 'ashtonkutch', 'asia', 'asian', 'asid', 'ask', 'aspect', 'aspir', 'assassin', 'assault', 'assembl', 'assign', 'assist', 'assistant', 'associ', 'assum', 'asteroid', 'astronaut', 'asylum', 'atheist', 'athlet', 'atom', 'atomicbomb', 'attack', 'attacks', 'attempt', 'attempttoescap', 'attend', 'attent', 'attic', 'attitud', 'attorney', 'attract', 'auction', 'audienc', 'audit', 'august', 'aunt', 'austin', 'australia', 'australian', 'author', 'autism', 'auto', 'automobilerac', 'aveng', 'averag', 'avoid', 'await', 'awak', 'awaken', 'awar', 'award', 'away', 'awkward', 'awri', 'awry', 'ax', 'babe', 'babi', 'baby', 'bachelor', 'backdrop', 'background', 'backpack', 'bad', 'bag', 'bahama', 'bail', 'balanc', 'ball', 'ballet', 'balloon', 'baltimor', 'ban', 'band', 'bandit', 'bangkok', 'banish', 'bank', 'banker', 'bankrobb', 'bankrobberi', 'bar', 'barbrastreisand', 'bare', 'bargain', 'barn', 'barney', 'baron', 'barri', 'barrylevinson', 'barrysonnenfeld', 'bas', 'base', 'basebal', 'basedoncomicbook', 'basedongraphicnovel', 'basedonnovel', 'basedonplay', 'basedonstagemus', 'basedontrueev', 'basedontruestori', 'basedontvseri', 'basedonvideogam', 'basedonyoungadultnovel', 'basement', 'basketbal', 'basketball', 'bat', 'batman', 'battl', 'battle', 'battlefield', 'bay', 'beach', 'beam', 'bear', 'beard', 'beast', 'beat', 'beauti', 'beautiful', 'beautifulwoman', 'beauty', 'becam', 'becaus', 'becki', 'becom', 'becominganadult', 'bed', 'bedroom', 'bee', 'beer', 'befor', 'befriend', 'began', 'begin', 'begins', 'behavior', 'belief', 'believ', 'bell', 'bella', 'belong', 'belov', 'ben', 'benaffleck', 'bend', 'beneath', 'benefit', 'benfost', 'beniciodeltoro', 'benjamin', 'benjaminbratt', 'benkingsley', 'bennett', 'benstil', 'bent', 'berlin', 'best', 'bestfriend', 'bestfriendsinlov', 'bet', 'beth', 'betray', 'bettemidl', 'better', 'betti', 'beverli', 'bibl', 'bid', 'big', 'bigger', 'biggest', 'bike', 'biker', 'bikini', 'billhad', 'billi', 'billionair', 'billmurray', 'billnighi', 'billpaxton', 'billpullman', 'billybobthornton', 'billycrudup', 'billycryst', 'biographi', 'biolog', 'bird', 'birth', 'birthday', 'bisexu', 'bishop', 'bit', 'bite', 'bitter', 'bizarr', 'black', 'blackmag', 'blackmail', 'blackpeopl', 'blacksmith', 'blade', 'blame', 'blend', 'blind', 'bliss', 'blizzard', 'block', 'blond', 'blood', 'bloodi', 'bloodsplatt', 'bloodthirsti', 'blow', 'blue', 'board', 'boardingschool', 'boat', 'bob', 'bobbi', 'bobbyfarrelli', 'bobhoskin', 'bodi', 'body', 'bodyguard', 'bold', 'bollywood', 'bomb', 'bond', 'bone', 'book', 'border', 'bore', 'boredom', 'born', 'boss', 'boston', 'botch', 'bound', 'boundari', 'bounti', 'bountyhunt', 'bout', 'box', 'boxer', 'boy', 'boyfriend', 'boys', 'bradleycoop', 'bradpitt', 'brain', 'brainwash', 'brand', 'brandon', 'brave', 'braveri', 'brazil', 'brazilian', 'break', 'breakdown', 'breakup', 'breast', 'breath', 'breed', 'brendanfras', 'brendangleeson', 'brent', 'brettratn', 'brian', 'briandepalma', 'bride', 'bridesmaid', 'bridg', 'brief', 'brielarson', 'brien', 'bright', 'brilliant', 'bring', 'brink', 'britain', 'british', 'britishsecretservic', 'brittanymurphi', 'broadcast', 'broadway', 'broke', 'broken', 'broker', 'bronx', 'brook', 'brooklyn', 'broom', 'brothel', 'brother', 'brotherbrotherrelationship', 'brothers', 'brothersisterrelationship', 'brought', 'brown', 'bruce', 'brucegreenwood', 'brucewilli', 'brutal', 'bryansing', 'bu', 'buck', 'bud', 'buddi', 'buddy', 'buddycomedi', 'buddycop', 'budget', 'build', 'building', 'built', 'bullet', 'bulli', 'bumbl', 'bunch', 'bunker', 'bunni', 'burglar', 'buri', 'burn', 'bush', 'busi', 'business', 'businessman', 'bust', 'butcher', 'butler', 'butt', 'button', 'buy', 'buzz', 'cabin', 'caesar', 'cage', 'cairo', 'cal', 'california', 'calvin', 'camcord', 'came', 'camera', 'cameraman', 'camerondiaz', 'camp', 'campaign', 'campbell', 'campu', 'canada', 'canadian', 'cancer', 'candi', 'candid', 'canin', 'cannib', 'capabl', 'caper', 'capit', 'capt', 'captain', 'captiv', 'captur', 'capture', 'car', 'caraccid', 'carchas', 'carcrash', 'card', 'care', 'career', 'carefre', 'caretak', 'careymulligan', 'caribbean', 'carjourney', 'carl', 'carlagugino', 'carmen', 'carol', 'carolina', 'carrac', 'carri', 'carrie', 'cartel', 'carter', 'cartoon', 'caryelw', 'case', 'caseyaffleck', 'cash', 'casino', 'cast', 'castl', 'cat', 'cataclysm', 'catastroph', 'catch', 'cateblanchett', 'catherinedeneuv', 'catherinekeen', 'catherinezeta', 'cathol', 'catholic', 'cattl', 'caught', 'caus', 'cavalri', 'cave', 'cavemen', 'celebr', 'celebration', 'cell', 'cellphon', 'cemeteri', 'center', 'centr', 'central', 'centuri', 'centuries', 'century', 'ceo', 'certain', 'chad', 'chain', 'chainsaw', 'challeng', 'chamber', 'champion', 'championship', 'chanc', 'chance', 'chang', 'change', 'changed', 'changes', 'channingtatum', 'chao', 'chaos', 'chaotic', 'chapter', 'charact', 'character', 'characters', 'charg', 'charismat', 'charl', 'charli', 'charlie', 'charliesheen', 'charlizetheron', 'charm', 'chart', 'chase', 'chauffeur', 'chazzpalminteri', 'cheat', 'check', 'cheerlead', 'chef', 'chemic', 'cher', 'chevychas', 'chicago', 'chicken', 'chief', 'child', 'childabus', 'childhero', 'childhood', 'childprodigi', 'children', 'chill', 'chimp', 'china', 'chines', 'chip', 'chipmunk', 'chiwetelejiofor', 'chloe', 'chloëgracemoretz', 'chloësevigni', 'chocol', 'choic', 'choice', 'choos', 'chosen', 'chowyun', 'chri', 'chriscolumbu', 'chriscoop', 'chrisevan', 'chrishemsworth', 'chrisklein', 'chrispin', 'chrisrock', 'christ', 'christian', 'christianbal', 'christianslat', 'christin', 'christinaappleg', 'christinaricci', 'christma', 'christmas', 'christmasparti', 'christmastre', 'christoph', 'christopherlambert', 'christopherlloyd', 'christophernolan', 'christopherplumm', 'christopherwalken', 'christophwaltz', 'chrisweitz', 'chronicl', 'chuck', 'church', 'cia', 'ciaránhind', 'cigarettesmok', 'cillianmurphi', 'cinema', 'circl', 'circu', 'circuit', 'circumst', 'citi', 'citizen', 'city', 'civil', 'civilian', 'civilwar', 'claim', 'clair', 'clairedan', 'claireforlani', 'clan', 'clark', 'clash', 'class', 'classdiffer', 'classic', 'classmat', 'classroom', 'claudevandamm', 'clay', 'clean', 'clear', 'clerk', 'clever', 'client', 'clients', 'cliff', 'climat', 'climb', 'clinteastwood', 'cliveowen', 'clock', 'clone', 'close', 'closer', 'cloud', 'clown', 'club', 'clue', 'clueless', 'clutch', 'coach', 'coast', 'cocain', 'code', 'coffin', 'cohen', 'col', 'cold', 'coldwar', 'cole', 'colin', 'colinfarrel', 'colinfirth', 'collaps', 'colleagu', 'collect', 'collector', 'colleg', 'college', 'collid', 'collis', 'colombia', 'colonel', 'coloni', 'color', 'colorado', 'coma', 'combat', 'combin', 'come', 'comeback', 'comed', 'comedi', 'comedian', 'comedy', 'comet', 'comfort', 'comic', 'coming', 'comingofag', 'comingout', 'command', 'commando', 'commerci', 'commiss', 'commit', 'common', 'commun', 'communist', 'community', 'compani', 'companion', 'company', 'compet', 'competit', 'competition', 'complet', 'complex', 'complic', 'compos', 'compuls', 'comput', 'computerviru', 'conan', 'concern', 'concert', 'concoct', 'condit', 'condition', 'conduct', 'confeder', 'confess', 'confid', 'confin', 'conflict', 'confront', 'confus', 'congress', 'conman', 'connect', 'connecticut', 'connel', 'connor', 'conquer', 'consequ', 'consequences', 'conserv', 'consid', 'conspir', 'conspiraci', 'conspiracy', 'constant', 'constantli', 'construct', 'consum', 'contact', 'contain', 'contemporari', 'contend', 'content', 'contest', 'continu', 'contract', 'contractor', 'control', 'controversi', 'convent', 'converg', 'convers', 'convict', 'convinc', ...]
we will calculate the cosine distance
similarity = cosine_similarity(vectors)
similarity.dtype
dtype('float64')
sorted(list(enumerate(similarity[0])), reverse = True, key = lambda x:x[1])[1:6]
[(1213, 0.28676966733820225), (2403, 0.26901379342448517), (3723, 0.2605130246476754), (507, 0.255608593705383), (539, 0.25038669783359574)]
1 means high similarity and 0 means low similarity
new_df[new_df['title']=='Batman Begins'].index[0]
119
def recommend(movie):
movie_index = new_df[new_df['title']==movie].index[0]
distances = similarity[movie_index]
movie_list = sorted(list(enumerate(distances)), reverse = True, key = lambda x:x[1])[1:6]
for i in movie_list:
#print(i[0])
print(new_df.iloc[i[0]].title)
recommend('Avatar')
Aliens vs Predator: Requiem Aliens Falcon Rising Independence Day Titan A.E.
recommend('Batman Begins')
The Dark Knight Batman The Dark Knight Rises 10th & Wolf Rockaway
new_df.head()
id | title | tags | |
---|---|---|---|
0 | 19995 | Avatar | in the 22nd century, a parapleg marin is dispa... |
1 | 285 | Pirates of the Caribbean: At World's End | captain barbossa, long believ to be dead, ha c... |
2 | 206647 | Spectre | a cryptic messag from bond’ past send him on a... |
3 | 49026 | The Dark Knight Rises | follow the death of district attorney harvey d... |
4 | 49529 | John Carter | john carter is a war-weary, former militari ca... |
new_df.iloc[499].id
71880
#pickle.dump(new_df,open('movies.pkl','wb'))
#pickle.dump(similarity,open('similarity.pkl','wb'))
#pickle.dump(new_df.to_dict(),open('movie_dict.pkl','wb'))