{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2024-06-13T14:05:55.052373800Z", "start_time": "2024-06-13T14:05:53.599538500Z" } }, "outputs": [], "source": [ "import psycopg2\n", "import pandas as pd\n", "import numpy as np\n", "import warnings\n", "import google.generativeai as genai\n", "from sklearn.base import BaseEstimator\n", "from sklearn.model_selection import train_test_split\n", "warnings.filterwarnings(\"ignore\")\n" ] }, { "cell_type": "code", "execution_count": 3, "outputs": [], "source": [ "conn = psycopg2.connect(dbname='bechdel_test', user='postgres', password='guest')\n", "cur = conn.cursor()\n", "\n", "cur.execute('SELECT * FROM imsdb_scripts JOIN bechdel_ratings ON imsdb_scripts.imdb_id = bechdel_ratings.imdb_id JOIN tmdb_data ON tmdb_data.imdb_id = imsdb_scripts.imdb_id;')\n", "data = pd.DataFrame(cur.fetchall())\n", "df = data.copy()\n", "df.set_index(0, inplace=True)\n", "\n", "cur.execute('SELECT genre.imdb_id, genre FROM genre JOIN imsdb_scripts ON imsdb_scripts.imdb_id = genre.imdb_id;')\n", "genre = pd.DataFrame(cur.fetchall())\n", "cur.close()\n", "conn.close()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:55.878641100Z", "start_time": "2024-06-13T14:05:55.057773700Z" } }, "id": "14e136167bccac0" }, { "cell_type": "code", "execution_count": 4, "outputs": [], "source": [ "for genre_ in genre[1].unique():\n", " df[genre_] = pd.Series()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:55.903387700Z", "start_time": "2024-06-13T14:05:55.880911400Z" } }, "id": "8e360700252225e0" }, { "cell_type": "code", "execution_count": 5, "outputs": [], "source": [ "for row in genre.iterrows():\n", " df[row[1][1]][row[1][0]] = 1" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:56.237431200Z", "start_time": "2024-06-13T14:05:55.898809600Z" } }, "id": "fb80dad8b86a94a6" }, { "cell_type": "code", "execution_count": 6, "outputs": [], "source": [ "df.rename(columns={0:'imdb_id',\n", " 1:'script_date',\n", " 2:'script',\n", " 3:'bechdel_id',\n", " 5:'title',\n", " 6:'release_year',\n", " 7:'bechdel_rating',\n", " 11:'language',\n", " 13:'popularity',\n", " 14:'vote_average',\n", " 15:'vote_count',\n", " 16:'overview'\n", " }, \n", " inplace=True)\n", "df.drop(columns=[4, 8, 9, 10, 12], inplace=True)\n", "df.fillna(0, inplace=True)\n", "df.replace('none', np.nan, inplace=True)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:56.258892400Z", "start_time": "2024-06-13T14:05:56.239236400Z" } }, "id": "c6652299813ffa8c" }, { "cell_type": "code", "execution_count": 7, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(df.drop(columns=['bechdel_rating']), df['bechdel_rating'], test_size=0.234, random_state=42)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:56.287930500Z", "start_time": "2024-06-13T14:05:56.255756800Z" } }, "id": "1e3c4066671fbf5d" }, { "cell_type": "code", "execution_count": 8, "outputs": [], "source": [ "def y_transform(y):\n", " y = pd.DataFrame(y)\n", " y['pass_fail'] = y['bechdel_rating'].map({0:0, 1:0, 2:0, 3:1})\n", " return y\n", "y_train, y_test = y_transform(y_train), y_transform(y_test)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:56.290267600Z", "start_time": "2024-06-13T14:05:56.273297300Z" } }, "id": "1ede4a695018215c" }, { "cell_type": "code", "execution_count": 9, "outputs": [ { "data": { "text/plain": " script_date script \\\n0 \n472033 NaN \\n\\n ... \n120780 March 1998 \"Out of Sight\"\\r\\n\\r\\n\\r\\n ... \n1706593 NaN CHRONICLE\\r\\n\\r\\n\\r\\... \n2911666 NaN JOHN WICK\\r\\n\\r\\n\\... \n61722 March 1967 \\t\\t\\t\\t\"THE GRADUATE\"\\r\\n\\r\\n\\r\\n\\t\\t\\t\\tScre... \n... ... ... \n100814 June 1988 \\n\\nS. S. Wilson & Brent Maddock's \"Tremors\"\\n... \n109506 September 1992 The CROW\\r\\n\\r\\n\\tby\\r\\n\\r\\n\\tDavis Schow\\r\\n\\... \n765443 NaN EASTERN PROMISES\\r\\... \n816462 October 2009 NaN \n110148 NaN Interview with the Vampire\\r\\n\\r\\n\\tScreenplay... \n\n bechdel_id title release_year language \\\n0 \n472033 494 9 2009 en \n120780 2247 Out of Sight 1998 en \n1706593 3037 Chronicle 2012 en \n2911666 5897 John Wick 2014 en \n61722 616 Graduate, The 1967 en \n... ... ... ... ... \n100814 1663 Tremors 1990 en \n109506 3820 Crow, The 1994 en \n765443 3069 Eastern Promises 2007 en \n816462 2636 Conan the Barbarian 2011 en \n110148 120 Interview with the Vampire 1994 en \n\n popularity vote_average vote_count \\\n0 \n472033 71.590 6.921 3407 \n120780 24.781 6.682 1203 \n1706593 40.036 6.816 5119 \n2911666 105.961 7.430 18679 \n61722 30.980 7.700 3206 \n... ... ... ... \n100814 77.463 6.896 3105 \n109506 54.672 7.527 3786 \n765443 35.119 7.362 3194 \n816462 35.716 5.299 1792 \n110148 83.427 7.387 5627 \n\n overview ... Thriller \\\n0 ... \n472033 When 9 first comes to life, he finds himself i... ... 1 \n120780 Meet Jack Foley, a smooth criminal who bends t... ... 0 \n1706593 Three high school students make an incredible ... ... 1 \n2911666 Ex-hitman John Wick comes out of retirement to... ... 1 \n61722 Benjamin, a recent college graduate very worri... ... 0 \n... ... ... ... \n100814 Val McKee and Earl Bassett are in a fight for ... ... 0 \n109506 Exactly one year after young rock guitarist Er... ... 1 \n765443 A Russian teenager living in London dies durin... ... 1 \n816462 A quest that begins as a personal vendetta for... ... 0 \n110148 A vampire relates his epic life story of love,... ... 0 \n\n War Comedy Music Western Horror Science Fiction Action \\\n0 \n472033 0 0 0 0 0 1 1 \n120780 0 1 0 0 0 0 0 \n1706593 0 0 0 0 0 1 0 \n2911666 0 0 0 0 0 0 1 \n61722 0 1 0 0 0 0 0 \n... ... ... ... ... ... ... ... \n100814 0 1 0 0 1 1 1 \n109506 0 0 0 0 0 0 1 \n765443 0 0 0 0 0 0 0 \n816462 0 0 0 0 0 0 1 \n110148 0 0 0 0 1 0 0 \n\n Animation History \n0 \n472033 1 0 \n120780 0 0 \n1706593 0 0 \n2911666 0 0 \n61722 0 0 \n... ... ... \n100814 0 0 \n109506 0 0 \n765443 0 0 \n816462 0 0 \n110148 0 0 \n\n[326 rows x 27 columns]", "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>script_date</th>\n <th>script</th>\n <th>bechdel_id</th>\n <th>title</th>\n <th>release_year</th>\n <th>language</th>\n <th>popularity</th>\n <th>vote_average</th>\n <th>vote_count</th>\n <th>overview</th>\n <th>...</th>\n <th>Thriller</th>\n <th>War</th>\n <th>Comedy</th>\n <th>Music</th>\n <th>Western</th>\n <th>Horror</th>\n <th>Science Fiction</th>\n <th>Action</th>\n <th>Animation</th>\n <th>History</th>\n </tr>\n <tr>\n <th>0</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>472033</th>\n <td>NaN</td>\n <td>\\n\\n ...</td>\n <td>494</td>\n <td>9</td>\n <td>2009</td>\n <td>en</td>\n <td>71.590</td>\n <td>6.921</td>\n <td>3407</td>\n <td>When 9 first comes to life, he finds himself i...</td>\n <td>...</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>1</td>\n <td>1</td>\n <td>0</td>\n </tr>\n <tr>\n <th>120780</th>\n <td>March 1998</td>\n <td>\"Out of Sight\"\\r\\n\\r\\n\\r\\n ...</td>\n <td>2247</td>\n <td>Out of Sight</td>\n <td>1998</td>\n <td>en</td>\n <td>24.781</td>\n <td>6.682</td>\n <td>1203</td>\n <td>Meet Jack Foley, a smooth criminal who bends t...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1706593</th>\n <td>NaN</td>\n <td>CHRONICLE\\r\\n\\r\\n\\r\\...</td>\n <td>3037</td>\n <td>Chronicle</td>\n <td>2012</td>\n <td>en</td>\n <td>40.036</td>\n <td>6.816</td>\n <td>5119</td>\n <td>Three high school students make an incredible ...</td>\n <td>...</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2911666</th>\n <td>NaN</td>\n <td>JOHN WICK\\r\\n\\r\\n\\...</td>\n <td>5897</td>\n <td>John Wick</td>\n <td>2014</td>\n <td>en</td>\n <td>105.961</td>\n <td>7.430</td>\n <td>18679</td>\n <td>Ex-hitman John Wick comes out of retirement to...</td>\n <td>...</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>61722</th>\n <td>March 1967</td>\n <td>\\t\\t\\t\\t\"THE GRADUATE\"\\r\\n\\r\\n\\r\\n\\t\\t\\t\\tScre...</td>\n <td>616</td>\n <td>Graduate, The</td>\n <td>1967</td>\n <td>en</td>\n <td>30.980</td>\n <td>7.700</td>\n <td>3206</td>\n <td>Benjamin, a recent college graduate very worri...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>100814</th>\n <td>June 1988</td>\n <td>\\n\\nS. S. Wilson & Brent Maddock's \"Tremors\"\\n...</td>\n <td>1663</td>\n <td>Tremors</td>\n <td>1990</td>\n <td>en</td>\n <td>77.463</td>\n <td>6.896</td>\n <td>3105</td>\n <td>Val McKee and Earl Bassett are in a fight for ...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>1</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>109506</th>\n <td>September 1992</td>\n <td>The CROW\\r\\n\\r\\n\\tby\\r\\n\\r\\n\\tDavis Schow\\r\\n\\...</td>\n <td>3820</td>\n <td>Crow, The</td>\n <td>1994</td>\n <td>en</td>\n <td>54.672</td>\n <td>7.527</td>\n <td>3786</td>\n <td>Exactly one year after young rock guitarist Er...</td>\n <td>...</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>765443</th>\n <td>NaN</td>\n <td>EASTERN PROMISES\\r\\...</td>\n <td>3069</td>\n <td>Eastern Promises</td>\n <td>2007</td>\n <td>en</td>\n <td>35.119</td>\n <td>7.362</td>\n <td>3194</td>\n <td>A Russian teenager living in London dies durin...</td>\n <td>...</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>816462</th>\n <td>October 2009</td>\n <td>NaN</td>\n <td>2636</td>\n <td>Conan the Barbarian</td>\n <td>2011</td>\n <td>en</td>\n <td>35.716</td>\n <td>5.299</td>\n <td>1792</td>\n <td>A quest that begins as a personal vendetta for...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n </tr>\n <tr>\n <th>110148</th>\n <td>NaN</td>\n <td>Interview with the Vampire\\r\\n\\r\\n\\tScreenplay...</td>\n <td>120</td>\n <td>Interview with the Vampire</td>\n <td>1994</td>\n <td>en</td>\n <td>83.427</td>\n <td>7.387</td>\n <td>5627</td>\n <td>A vampire relates his epic life story of love,...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>326 rows × 27 columns</p>\n</div>" }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:56.359117Z", "start_time": "2024-06-13T14:05:56.285786400Z" } }, "id": "22f7b01462f775b3" }, { "cell_type": "markdown", "source": [ "## Modeling without LLMs" ], "metadata": { "collapsed": false }, "id": "d5171d3049101429" }, { "cell_type": "code", "execution_count": 10, "outputs": [], "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.model_selection import GridSearchCV" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:05:56.594270800Z", "start_time": "2024-06-13T14:05:56.339615400Z" } }, "id": "580e8a5c27fe9e5d" }, { "cell_type": "code", "execution_count": 11, "outputs": [ { "data": { "text/plain": "{'max_depth': 7,\n 'min_samples_leaf': 4,\n 'min_samples_split': 15,\n 'n_estimators': 1000}" }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "param_grid = {'n_estimators': [1000],\n", " 'max_depth': [7],\n", " 'min_samples_split': [15],\n", " 'min_samples_leaf': [4]}\n", "grid = GridSearchCV(RandomForestClassifier(random_state=42),\n", " param_grid=param_grid,\n", " cv=3)\n", "grid.fit(X_train[['release_year', 'popularity', 'vote_average', 'vote_count', 'Drama', 'Romance', 'Adventure', 'Animation', 'Fantasy', 'Science Fiction', 'Family', 'Mystery', 'Crime', 'Thriller', 'War', 'Western', 'Comedy', 'Music', 'Horror', 'Action', 'History']], y_train['pass_fail'])\n", "grid.best_params_" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:06:02.681325900Z", "start_time": "2024-06-13T14:05:56.541616Z" } }, "id": "f29f1842c880fedf" }, { "cell_type": "code", "execution_count": 12, "outputs": [ { "data": { "text/plain": "0\n6644200 True\n100477 True\n124315 False\n78748 False\n480687 False\n ... \n349903 True\n481499 False\n905372 True\n43014 False\n86510 True\nName: pass_fail, Length: 100, dtype: bool" }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "random_forest_clf = grid.best_estimator_\n", "y_test['pass_fail'] == random_forest_clf.predict(X_test[['release_year', 'popularity', 'vote_average', 'vote_count', 'Drama', 'Romance', 'Adventure', 'Animation', 'Fantasy', 'Science Fiction', 'Family', 'Mystery', 'Crime', 'Thriller', 'War', 'Western', 'Comedy', 'Music', 'Horror', 'Action', 'History']])" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:06:02.794011300Z", "start_time": "2024-06-13T14:06:02.668488700Z" } }, "id": "9a590e8f9b6d33d0" }, { "cell_type": "code", "execution_count": 12, "outputs": [], "source": [], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:06:02.796176600Z", "start_time": "2024-06-13T14:06:02.777075900Z" } }, "id": "be455db130ffc68b" }, { "cell_type": "code", "execution_count": 13, "outputs": [], "source": [ "apikey = open('apikey.txt').read()\n", "genai.configure(api_key=apikey)\n", "model = 'models/embedding-001'\n", "from google.api_core import retry\n", "from tqdm.auto import tqdm\n", "tqdm.pandas()\n", "\n", "def make_embed_text_fn(model):\n", " @retry.Retry(timeout=300.0)\n", " def embed_fn(text: str) -> list[float]:\n", " embedding = genai.embed_content(model=model,\n", " content=text,\n", " task_type='classification')\n", " return embedding['embedding']\n", " return embed_fn\n", "\n", "def create_embeddings(model, df):\n", " df['embeddings'] = df['overview'].progress_apply(make_embed_text_fn(model))\n", " return df\n" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:06:02.798289700Z", "start_time": "2024-06-13T14:06:02.780760900Z" } }, "id": "5b3855b9d8987239" }, { "cell_type": "code", "execution_count": 14, "outputs": [ { "data": { "text/plain": " 0%| | 0/326 [00:00<?, ?it/s]", "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "fdcd789312524a2cad326b7cf23a2080" } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_train_embedded = create_embeddings(model, X_train)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:10.957807Z", "start_time": "2024-06-13T14:06:02.795100700Z" } }, "id": "ae3fb74aff6aa825" }, { "cell_type": "code", "execution_count": 15, "outputs": [ { "data": { "text/plain": " script_date script \\\n0 \n472033 NaN \\n\\n ... \n120780 March 1998 \"Out of Sight\"\\r\\n\\r\\n\\r\\n ... \n1706593 NaN CHRONICLE\\r\\n\\r\\n\\r\\... \n2911666 NaN JOHN WICK\\r\\n\\r\\n\\... \n61722 March 1967 \\t\\t\\t\\t\"THE GRADUATE\"\\r\\n\\r\\n\\r\\n\\t\\t\\t\\tScre... \n\n bechdel_id title release_year language popularity \\\n0 \n472033 494 9 2009 en 71.590 \n120780 2247 Out of Sight 1998 en 24.781 \n1706593 3037 Chronicle 2012 en 40.036 \n2911666 5897 John Wick 2014 en 105.961 \n61722 616 Graduate, The 1967 en 30.980 \n\n vote_average vote_count \\\n0 \n472033 6.921 3407 \n120780 6.682 1203 \n1706593 6.816 5119 \n2911666 7.430 18679 \n61722 7.700 3206 \n\n overview ... War Comedy \\\n0 ... \n472033 When 9 first comes to life, he finds himself i... ... 0 0 \n120780 Meet Jack Foley, a smooth criminal who bends t... ... 0 1 \n1706593 Three high school students make an incredible ... ... 0 0 \n2911666 Ex-hitman John Wick comes out of retirement to... ... 0 0 \n61722 Benjamin, a recent college graduate very worri... ... 0 1 \n\n Music Western Horror Science Fiction Action Animation History \\\n0 \n472033 0 0 0 1 1 1 0 \n120780 0 0 0 0 0 0 0 \n1706593 0 0 0 1 0 0 0 \n2911666 0 0 0 0 1 0 0 \n61722 0 0 0 0 0 0 0 \n\n embeddings \n0 \n472033 [0.009933546, 0.028054273, -0.027433202, 0.011... \n120780 [0.054206412, 0.025492756, 0.036431577, -0.048... \n1706593 [0.0023177029, -0.011539809, -0.0100571215, 0.... \n2911666 [0.048869684, 0.029862285, -0.0062307036, -0.0... \n61722 [0.04377451, -0.034744043, 0.011599346, -0.005... \n\n[5 rows x 28 columns]", "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>script_date</th>\n <th>script</th>\n <th>bechdel_id</th>\n <th>title</th>\n <th>release_year</th>\n <th>language</th>\n <th>popularity</th>\n <th>vote_average</th>\n <th>vote_count</th>\n <th>overview</th>\n <th>...</th>\n <th>War</th>\n <th>Comedy</th>\n <th>Music</th>\n <th>Western</th>\n <th>Horror</th>\n <th>Science Fiction</th>\n <th>Action</th>\n <th>Animation</th>\n <th>History</th>\n <th>embeddings</th>\n </tr>\n <tr>\n <th>0</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>472033</th>\n <td>NaN</td>\n <td>\\n\\n ...</td>\n <td>494</td>\n <td>9</td>\n <td>2009</td>\n <td>en</td>\n <td>71.590</td>\n <td>6.921</td>\n <td>3407</td>\n <td>When 9 first comes to life, he finds himself i...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>1</td>\n <td>1</td>\n <td>0</td>\n <td>[0.009933546, 0.028054273, -0.027433202, 0.011...</td>\n </tr>\n <tr>\n <th>120780</th>\n <td>March 1998</td>\n <td>\"Out of Sight\"\\r\\n\\r\\n\\r\\n ...</td>\n <td>2247</td>\n <td>Out of Sight</td>\n <td>1998</td>\n <td>en</td>\n <td>24.781</td>\n <td>6.682</td>\n <td>1203</td>\n <td>Meet Jack Foley, a smooth criminal who bends t...</td>\n <td>...</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>[0.054206412, 0.025492756, 0.036431577, -0.048...</td>\n </tr>\n <tr>\n <th>1706593</th>\n <td>NaN</td>\n <td>CHRONICLE\\r\\n\\r\\n\\r\\...</td>\n <td>3037</td>\n <td>Chronicle</td>\n <td>2012</td>\n <td>en</td>\n <td>40.036</td>\n <td>6.816</td>\n <td>5119</td>\n <td>Three high school students make an incredible ...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>[0.0023177029, -0.011539809, -0.0100571215, 0....</td>\n </tr>\n <tr>\n <th>2911666</th>\n <td>NaN</td>\n <td>JOHN WICK\\r\\n\\r\\n\\...</td>\n <td>5897</td>\n <td>John Wick</td>\n <td>2014</td>\n <td>en</td>\n <td>105.961</td>\n <td>7.430</td>\n <td>18679</td>\n <td>Ex-hitman John Wick comes out of retirement to...</td>\n <td>...</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>[0.048869684, 0.029862285, -0.0062307036, -0.0...</td>\n </tr>\n <tr>\n <th>61722</th>\n <td>March 1967</td>\n <td>\\t\\t\\t\\t\"THE GRADUATE\"\\r\\n\\r\\n\\r\\n\\t\\t\\t\\tScre...</td>\n <td>616</td>\n <td>Graduate, The</td>\n <td>1967</td>\n <td>en</td>\n <td>30.980</td>\n <td>7.700</td>\n <td>3206</td>\n <td>Benjamin, a recent college graduate very worri...</td>\n <td>...</td>\n <td>0</td>\n <td>1</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>0</td>\n <td>[0.04377451, -0.034744043, 0.011599346, -0.005...</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 28 columns</p>\n</div>" }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train_embedded.head()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:11.258588400Z", "start_time": "2024-06-13T14:07:11.069302400Z" } }, "id": "c4b8ccd2dd978cd8" }, { "cell_type": "code", "execution_count": 16, "outputs": [], "source": [ "from sklearn.neural_network import MLPClassifier, MLPRegressor\n", "\n", "mlp_clf = MLPClassifier()\n" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:11.259715300Z", "start_time": "2024-06-13T14:07:11.129664Z" } }, "id": "981b7b51da8fefc9" }, { "cell_type": "code", "execution_count": 17, "outputs": [], "source": [ "def emb_arr(col=X_train_embedded['embeddings']):\n", " embeddings = np.ndarray((len(col),768))\n", " j = 0\n", " for i in col.index:\n", " try:\n", " embeddings[j] = col[i]\n", " j+=1\n", " except: j+=1\n", " return embeddings" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:11.261949300Z", "start_time": "2024-06-13T14:07:11.150054100Z" } }, "id": "2089a40b08c711ba" }, { "cell_type": "code", "execution_count": 18, "outputs": [], "source": [ "embeddings = emb_arr(X_train_embedded['embeddings'])" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:11.323453700Z", "start_time": "2024-06-13T14:07:11.156411500Z" } }, "id": "7ddc5132c8a89398" }, { "cell_type": "code", "execution_count": 18, "outputs": [], "source": [], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:11.325599100Z", "start_time": "2024-06-13T14:07:11.176392Z" } }, "id": "2877eee86d1673de" }, { "cell_type": "code", "execution_count": 19, "outputs": [ { "data": { "text/plain": "MLPClassifier()", "text/html": "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>MLPClassifier()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">MLPClassifier</label><div class=\"sk-toggleable__content\"><pre>MLPClassifier()</pre></div></div></div></div></div>" }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mlp = MLPClassifier()\n", "mlp.fit(embeddings, y_train['pass_fail'].reset_index().drop(0, axis=1))\n" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:12.909485500Z", "start_time": "2024-06-13T14:07:11.182412600Z" } }, "id": "aba42d46e9ffccf" }, { "cell_type": "code", "execution_count": 20, "outputs": [ { "data": { "text/plain": "array([0.56060606, 0.70769231, 0.64615385, 0.64615385, 0.61538462])" }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import cross_val_score, cross_val_predict\n", "\n", "mlp = MLPClassifier()\n", "cross_val_score(mlp, embeddings, y_train['pass_fail'].reset_index().drop(0, axis=1), cv=5)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:17.961681700Z", "start_time": "2024-06-13T14:07:12.900586Z" } }, "id": "34bdb3cd355ff348" }, { "cell_type": "code", "execution_count": 21, "outputs": [ { "data": { "text/plain": "{'hidden_layer_sizes': (50,), 'solver': 'lbfgs'}" }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "param_grid = {\n", " 'hidden_layer_sizes':[(32,),(50,),(64,),(32,32,)],\n", " 'solver':['lbfgs']\n", "}\n", "grid = GridSearchCV(MLPClassifier(random_state=0), \n", " param_grid=param_grid,\n", " cv=3\n", " )\n", "grid.fit(embeddings, y_train['pass_fail'].reset_index().drop(0, axis=1))\n", "\n", "grid.best_params_" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:21.874591400Z", "start_time": "2024-06-13T14:07:17.962802700Z" } }, "id": "c45ef4f2a7105e13" }, { "cell_type": "code", "execution_count": 22, "outputs": [ { "data": { "text/plain": "array([0.51515152, 0.72307692, 0.64615385, 0.63076923, 0.64615385])" }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_val_score(grid.best_estimator_, embeddings, y_train['pass_fail'].reset_index().drop(0, axis=1), cv=5)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:23.446309600Z", "start_time": "2024-06-13T14:07:21.864137600Z" } }, "id": "59da71109d3a3610" }, { "cell_type": "code", "execution_count": 23, "outputs": [], "source": [ "X_train_embedded['neural_net_preds'] = cross_val_predict(MLPClassifier(hidden_layer_sizes=(50,), solver='lbfgs'), embeddings, y_train['pass_fail'].reset_index().drop(0, axis=1), cv=6)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:25.566075Z", "start_time": "2024-06-13T14:07:23.446309600Z" } }, "id": "a6dcd03b13eafd1a" }, { "cell_type": "code", "execution_count": 24, "outputs": [ { "data": { "text/plain": "array([0.54545455, 0.70769231, 0.73846154, 0.58461538, 0.63076923])" }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_val_score(RandomForestClassifier(max_depth=7,\n", " min_samples_leaf=4,\n", " min_samples_split=15,\n", " n_estimators=1000), X_train_embedded[['release_year', 'popularity', 'vote_average', 'vote_count', 'Drama', 'Romance', 'Adventure', 'Animation', 'Fantasy', 'Science Fiction', 'Family', 'Mystery', 'Crime', 'Thriller', 'War', 'Western', 'Comedy', 'Music', 'Horror', 'Action', 'History', 'neural_net_preds']], y_train['pass_fail'])" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:07:31.850987600Z", "start_time": "2024-06-13T14:07:25.570330900Z" } }, "id": "b25658587ce8d473" }, { "cell_type": "code", "execution_count": 25, "outputs": [ { "data": { "text/plain": "{'max_depth': 3,\n 'max_features': 12,\n 'min_samples_leaf': 3,\n 'min_samples_split': 50}" }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.tree import DecisionTreeClassifier\n", "tree_clf = GridSearchCV(DecisionTreeClassifier(),\n", " param_grid={'max_depth': [1,2,3,4,5],\n", " 'min_samples_leaf': [1,2,3,4,5,40,50],\n", " 'min_samples_split': [2,3,4,40,50],\n", " 'max_features': [1,2,3,12,30]},\n", " cv=10)\n", "tree_clf.fit(X_train_embedded[['release_year', 'popularity', 'vote_average', 'vote_count', 'Drama', 'Romance', 'Adventure', 'Animation', 'Fantasy', 'Science Fiction', 'Family', 'Mystery', 'Crime', 'Thriller', 'War', 'Western', 'Comedy', 'Music', 'Horror', 'Action', 'History', 'neural_net_preds']], y_train['pass_fail'])\n", "tree_clf.best_params_" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:16.241447Z", "start_time": "2024-06-13T14:07:31.838016400Z" } }, "id": "2bf52517b393ff75" }, { "cell_type": "code", "execution_count": 26, "outputs": [ { "data": { "text/plain": "<Figure size 1800x500 with 1 Axes>", "image/png": "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RMWKHhgMqzl79jQDBw411bl37x42NjY4ODiQJUvWRPvJmDET2bO7ACR42HN0dMLKyspUnj9/QcqXr8jkyePo3/8bHB0dWbBgHg8fPqRp0y/e0J2KiIhIUlLzvKVBg8asXLmc4cO/oV27joSFhTFp0lhKly5LoUKFgSdbSvz441yyZMnC++8XZfPmDezd+xdTp8588zctIiLJhg6kExGReHx9J5AlS1Z69OhEjx6deO+998mWLXuiX8E0lycHqgzlt99+pXXrL9i3by8TJkw1rRoCaNfuK6ZNm/TaxrSwsGDkyLGULl2OoUMH0q5dSx4+DGXGjDkJ9hcUERGRtyO1zlsyZMjAjBlziI2NoX37VvTv34v33ivCmDH/66NVq7Z8/XU7fvjhe778sglbt/6Or+8ESpcu+zpvT0REkjkL44tsriQiIu+cBw8eERUV+1r7vH//PsePH6VChYqmPeyio6Px8qpB7979qVPH+zk9yOtia2tF+vT25g5DRERSOKPRSFRUDKGhEeYO5aVp3pK6ODmlwdbW+p1aFS4ikhJoWwkRETGxsrJi2LCBfPJJIz79tDHR0dEsXboIW1sbPvigsrnDExERETHRvEVEROS/08phEZFk6k2sHIYnB6TMmTOTc+fOYWFhQfHiJejUqRv58uV/fmN5bbRyWERE3obkvHIYNG9JTbRyWETkzVByWEQkmXpTyWF5Nyg5LCIib0NyTw5L6qHksIjIm6ED6URERERERERERERSIe05LCIiZuHvP5vAwHWsWLHW3KEkKi4ujj59ulGkSDHatOlgKvfwSPqE7xUr1pE9e3bOnw/i++/9OH78GJaWlpQsWRofn55kz579bYQuIiIiIiIi8kK0clhERORfIiMjGDlyCH///VeCa6tXr4/3+vnn38iaNRu1atUle/bsPHhwn549O2Nvb8/06T8waZIfDx7cp0+frkRGRprhbkREROS/8vefTePG9c0dRpLi4uLo1csHf//ZCa41afIxHh5l471GjhySaD8bN67Hw6Ms169fe9Mhi4jIO0Irh0VERP7h6NHDjBs3iujoaBwcHBNcd3bOHO/nCRN8sbKypl+/wQBs376NiIgIBg0ajp2dHQBDhoykYUNvjh07Qpky5d78TYiIiEiqERkZwdixo/j7778oUqRYvGuPHoUTEnKdCROmUqhQYVO5nV2aBP2E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pXyKiSSlUUyU9BQTJU8aOZwELCz0tadk+v1JSmVpaUjqIqRp+v5FRET+oTZ1yqbfn6RUapMnLX3/yZNq9HcsKiqK9OmtkroY8h+kT2+FBtxLSmNmZoalpQGDQdV+UjAYzLG0NOgNuYiICIqJUgPFRJISKSZKWoqJki8tK5FEgoPDCA4OIzw8Av0Gkj8zM7CwMJAunSXp0lkmdXFE3khUVBRRUVEEBYUSGhpOZKQqn7fN3NwMKysLMmSInjqlhpCIiMg/FBOlLIqJJDVQTPTuKSZK/tQ5nESioqL0B5EC6fcmKd2LKl//jt8dfeciIiKxU9s6ZdLvTVI6tc/fPX3nyZs6h0VERERERERERETSIC20IiIiIiIiIiIiIpIGqXNYREREREREREREJA1S57CIiIiIiIiIiIhIGqTOYREREREREREREZE0SJ3DIiIiIiIiIiIiImmQOodFRERERERERERE0iB1DouIiIiIiIiIiIikQeocFhEREREREREREUmD1DksIiIiIiIiIiIikgapc1hEREREREREREQkDVLnsIiIiIiIiIiIiEgapM5hERERERERERERkTRIncMiIiIiIiIiIiIiaZA6h0VERERERERERETSIHUOi4iIiIiIiIiIiKRB6hwWERERERERERERSYPUOSwiIiIiIiIiIiKSBqlzWERERERERERERCQNUuewiIiIiIiIiIiISBqkzmERERERERERERGRNEidwyIiIiIiIiIiIiJpkDqHRURERERERERERNIgdQ6LiIiIiIiIiIiIpEHqHBYRERERERERERFJg9Q5LCIiIiIiIiIiIpIGqXNYREREREREREREJA1S57CIiIiIiIiIiIhIGqTOYREREREREREREZE0SJ3DIiIiIiIiIiIiImnQ/wHUApFFFrmougAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn.tree import plot_tree\n", "import matplotlib.pyplot as plt\n", "\n", "fig, ax = plt.subplots(figsize=(18,5))\n", "plot_tree(tree_clf.best_estimator_, fontsize=11, feature_names=['release_year', 'popularity', 'vote_average', 'vote_count', 'Drama', 'Romance', 'Adventure', 'Animation', 'Fantasy', 'Science Fiction', 'Family', 'Mystery', 'Crime', 'Thriller', 'War', 'Western', 'Comedy', 'Music', 'Horror', 'Action', 'History', 'neural_net_preds'], ax=ax, rounded=True)\n", "plt.show()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:16.702287400Z", "start_time": "2024-06-13T14:08:16.232372600Z" } }, "id": "7da14d284462b2c6" }, { "cell_type": "code", "execution_count": 27, "outputs": [ { "data": { "text/plain": " 0%| | 0/100 [00:00<?, ?it/s]", "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, "model_id": "a98b4ca334f244fa92a80a2f1807c3b8" } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "X_test_embedded = create_embeddings(model, X_test)" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:37.664685Z", "start_time": "2024-06-13T14:08:16.695634Z" } }, "id": "17f1c03a01b74e2f" }, { "cell_type": "code", "execution_count": 28, "outputs": [], "source": [ "test_embeddings = emb_arr(col=X_test_embedded['embeddings'])\n", "mlp_trained = MLPClassifier(hidden_layer_sizes=(50,),solver='lbfgs')\n", "mlp_trained.fit(embeddings, y_train['pass_fail'].reset_index().drop(0, axis=1))\n", "X_test_embedded['neural_net_preds'] = mlp_trained.predict(test_embeddings)\n", "test_preds = tree_clf.best_estimator_.predict(X_test_embedded[['release_year', 'popularity', 'vote_average', 'vote_count', 'Drama', 'Romance', 'Adventure', 'Animation', 'Fantasy', 'Science Fiction', 'Family', 'Mystery', 'Crime', 'Thriller', 'War', 'Western', 'Comedy', 'Music', 'Horror', 'Action', 'History', 'neural_net_preds']])" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.182393300Z", "start_time": "2024-06-13T14:08:37.832999200Z" } }, "id": "5db2ccb2bd662394" }, { "cell_type": "code", "execution_count": 28, "outputs": [], "source": [], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.201211700Z", "start_time": "2024-06-13T14:08:38.183861200Z" } }, "id": "7909cce6623f8c53" }, { "cell_type": "code", "execution_count": 29, "outputs": [ { "data": { "text/plain": "0\n6644200 True\n100477 False\n124315 True\n78748 True\n480687 False\n ... \n349903 True\n481499 True\n905372 True\n43014 True\n86510 True\nLength: 100, dtype: bool" }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_test_embedded['neural_net_preds'] == y_test['pass_fail']" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.202413900Z", "start_time": "2024-06-13T14:08:38.188874200Z" } }, "id": "31be544145c03c33" }, { "cell_type": "code", "execution_count": 30, "outputs": [ { "data": { "text/plain": "0\n6644200 True\n100477 True\n124315 True\n78748 False\n480687 False\n ... \n349903 True\n481499 True\n905372 True\n43014 False\n86510 True\nName: pass_fail, Length: 100, dtype: bool" }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "test_preds == y_test['pass_fail']" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.242058600Z", "start_time": "2024-06-13T14:08:38.198208500Z" } }, "id": "5105c83744b885fb" }, { "cell_type": "code", "execution_count": 31, "outputs": [ { "data": { "text/plain": "0\n472033 True\n120780 True\n1706593 False\n2911666 True\n61722 False\n ... \n100814 True\n109506 False\n765443 True\n816462 True\n110148 True\nLength: 326, dtype: bool" }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train_embedded['neural_net_preds'] == y_train['pass_fail']" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.243125100Z", "start_time": "2024-06-13T14:08:38.222298600Z" } }, "id": "44d9e4ba042fa5ee" }, { "cell_type": "code", "execution_count": 32, "outputs": [], "source": [ "conn = psycopg2.connect(dbname='bechdel_test', user='postgres', password='guest')\n", "cur = conn.cursor()\n", "\n", "cur.execute('SELECT * FROM bechdel_ratings JOIN tmdb_data ON tmdb_data.imdb_id = bechdel_ratings.imdb_id;')\n", "data = pd.DataFrame(cur.fetchall())\n", "df = data.copy()\n", "df.set_index(0, inplace=True)\n", "cur.close()\n", "conn.close()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.376569600Z", "start_time": "2024-06-13T14:08:38.235291900Z" } }, "id": "e0ca6a6a46b8fca8" }, { "cell_type": "code", "execution_count": 33, "outputs": [ { "data": { "text/plain": " 1 2 3 4 5 6 \\\n0 \n9804 14495706 La Rosace Magique 1877 0 766094 14495706 \n9806 12592084 Le singe musicien 1878 0 751212 12592084 \n9832 8588366 L'homme machine 1885 0 585297 8588366 \n9614 2075247 Man Walking Around the Corner 1887 0 159897 2075247 \n9841 7754902 Man Riding Jumping Horse 1887 0 1191584 7754902 \n... ... ... ... .. ... ... \n11302 21235248 Ghostbusters: Frozen Empire 2024 3 967847 21235248 \n11303 3359350 Road House 2024 3 359410 3359350 \n11317 14539740 Godzilla x Kong: New Empire 2024 3 823464 14539740 \n11318 19356262 Drive-Away Dolls 2024 3 957304 19356262 \n11322 26658104 Imaginary 2024 1 1125311 26658104 \n\n 7 8 9 10 11 12 \\\n0 \n9804 The Magic Rosette xx 1878-05-07 2.194 5.800 19 \n9806 The Musician Monkey xx 1878-05-07 2.560 5.900 25 \n9832 L'Homme Machine xx 1885-01-01 1.149 4.629 31 \n9614 Man Walking Around a Corner xx 1887-08-18 5.529 4.900 80 \n9841 Man Riding Jumping Horse en None 0.187 4.000 5 \n... ... .. ... ... ... ... \n11302 Ghostbusters: Frozen Empire en 2024-03-20 603.739 6.671 873 \n11303 Road House en 2024-03-08 483.627 7.024 1810 \n11317 Godzilla x Kong: The New Empire en 2024-03-27 3853.790 7.278 2211 \n11318 Drive-Away Dolls en 2024-02-22 81.501 5.531 208 \n11322 Imaginary en 2024-03-06 154.811 6.210 312 \n\n 13 \n0 \n9804 Praxinoscope strip of a shifting rosette. Seri... \n9806 A pre-cinematograph colour animation of the mo... \n9832 Animated stick drawings representing a man wal... \n9614 The last remaining production of Le Prince's L... \n9841 A man riding a horse jumps over an obstacle. \n... ... \n11302 When the discovery of an ancient artifact unle... \n11303 Ex-UFC fighter Dalton takes a job as a bouncer... \n11317 Following their explosive showdown, Godzilla a... \n11318 Jamie, an uninhibited free spirit bemoaning ye... \n11322 When Jessica moves back into her childhood hom... \n\n[10133 rows x 13 columns]", "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>1</th>\n <th>2</th>\n <th>3</th>\n <th>4</th>\n <th>5</th>\n <th>6</th>\n <th>7</th>\n <th>8</th>\n <th>9</th>\n <th>10</th>\n <th>11</th>\n <th>12</th>\n <th>13</th>\n </tr>\n <tr>\n <th>0</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>9804</th>\n <td>14495706</td>\n <td>La Rosace Magique</td>\n <td>1877</td>\n <td>0</td>\n <td>766094</td>\n <td>14495706</td>\n <td>The Magic Rosette</td>\n <td>xx</td>\n <td>1878-05-07</td>\n <td>2.194</td>\n <td>5.800</td>\n <td>19</td>\n <td>Praxinoscope strip of a shifting rosette. Seri...</td>\n </tr>\n <tr>\n <th>9806</th>\n <td>12592084</td>\n <td>Le singe musicien</td>\n <td>1878</td>\n <td>0</td>\n <td>751212</td>\n <td>12592084</td>\n <td>The Musician Monkey</td>\n <td>xx</td>\n <td>1878-05-07</td>\n <td>2.560</td>\n <td>5.900</td>\n <td>25</td>\n <td>A pre-cinematograph colour animation of the mo...</td>\n </tr>\n <tr>\n <th>9832</th>\n <td>8588366</td>\n <td>L&#39;homme machine</td>\n <td>1885</td>\n <td>0</td>\n <td>585297</td>\n <td>8588366</td>\n <td>L'Homme Machine</td>\n <td>xx</td>\n <td>1885-01-01</td>\n <td>1.149</td>\n <td>4.629</td>\n <td>31</td>\n <td>Animated stick drawings representing a man wal...</td>\n </tr>\n <tr>\n <th>9614</th>\n <td>2075247</td>\n <td>Man Walking Around the Corner</td>\n <td>1887</td>\n <td>0</td>\n <td>159897</td>\n <td>2075247</td>\n <td>Man Walking Around a Corner</td>\n <td>xx</td>\n <td>1887-08-18</td>\n <td>5.529</td>\n <td>4.900</td>\n <td>80</td>\n <td>The last remaining production of Le Prince's L...</td>\n </tr>\n <tr>\n <th>9841</th>\n <td>7754902</td>\n <td>Man Riding Jumping Horse</td>\n <td>1887</td>\n <td>0</td>\n <td>1191584</td>\n <td>7754902</td>\n <td>Man Riding Jumping Horse</td>\n <td>en</td>\n <td>None</td>\n <td>0.187</td>\n <td>4.000</td>\n <td>5</td>\n <td>A man riding a horse jumps over an obstacle.</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>11302</th>\n <td>21235248</td>\n <td>Ghostbusters: Frozen Empire</td>\n <td>2024</td>\n <td>3</td>\n <td>967847</td>\n <td>21235248</td>\n <td>Ghostbusters: Frozen Empire</td>\n <td>en</td>\n <td>2024-03-20</td>\n <td>603.739</td>\n <td>6.671</td>\n <td>873</td>\n <td>When the discovery of an ancient artifact unle...</td>\n </tr>\n <tr>\n <th>11303</th>\n <td>3359350</td>\n <td>Road House</td>\n <td>2024</td>\n <td>3</td>\n <td>359410</td>\n <td>3359350</td>\n <td>Road House</td>\n <td>en</td>\n <td>2024-03-08</td>\n <td>483.627</td>\n <td>7.024</td>\n <td>1810</td>\n <td>Ex-UFC fighter Dalton takes a job as a bouncer...</td>\n </tr>\n <tr>\n <th>11317</th>\n <td>14539740</td>\n <td>Godzilla x Kong: New Empire</td>\n <td>2024</td>\n <td>3</td>\n <td>823464</td>\n <td>14539740</td>\n <td>Godzilla x Kong: The New Empire</td>\n <td>en</td>\n <td>2024-03-27</td>\n <td>3853.790</td>\n <td>7.278</td>\n <td>2211</td>\n <td>Following their explosive showdown, Godzilla a...</td>\n </tr>\n <tr>\n <th>11318</th>\n <td>19356262</td>\n <td>Drive-Away Dolls</td>\n <td>2024</td>\n <td>3</td>\n <td>957304</td>\n <td>19356262</td>\n <td>Drive-Away Dolls</td>\n <td>en</td>\n <td>2024-02-22</td>\n <td>81.501</td>\n <td>5.531</td>\n <td>208</td>\n <td>Jamie, an uninhibited free spirit bemoaning ye...</td>\n </tr>\n <tr>\n <th>11322</th>\n <td>26658104</td>\n <td>Imaginary</td>\n <td>2024</td>\n <td>1</td>\n <td>1125311</td>\n <td>26658104</td>\n <td>Imaginary</td>\n <td>en</td>\n <td>2024-03-06</td>\n <td>154.811</td>\n <td>6.210</td>\n <td>312</td>\n <td>When Jessica moves back into her childhood hom...</td>\n </tr>\n </tbody>\n</table>\n<p>10133 rows × 13 columns</p>\n</div>" }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:08:38.399932400Z", "start_time": "2024-06-13T14:08:38.378708700Z" } }, "id": "b9b26041b7a79037" }, { "cell_type": "code", "execution_count": 48, "outputs": [], "source": [ "model = genai.GenerativeModel('gemini-1.5-flash', safety_settings=[\n", " {\n", " \"category\": \"HARM_CATEGORY_HARASSMENT\",\n", " \"threshold\": \"BLOCK_NONE\"\n", " },\n", " {\n", " \"category\": \"HARM_CATEGORY_HATE_SPEECH\",\n", " \"threshold\": \"BLOCK_NONE\"\n", " },\n", " {\n", " \"category\": \"HARM_CATEGORY_SEXUALLY_EXPLICIT\",\n", " \"threshold\": \"BLOCK_NONE\"\n", " },\n", " {\n", " \"category\": \"HARM_CATEGORY_DANGEROUS_CONTENT\",\n", " \"threshold\": \"BLOCK_NONE\"\n", " },\n", "])\n", "import time\n", "timer = time.time()\n", "gemini_flash_guesses = []\n", "\n", "for i in X_train.index[:10]:\n", " chat = model.start_chat()\n", " if (1 - float(time.time() - timer)) > 0: \n", " time.sleep(1 - float(time.time() - timer))\n", " timer = time.time()\n", " try: \n", " response = model.generate_content('How many female characters does the following script contain?'\n", " 'Script:'\n", " ''\n", " '' + X_train['script'][i] )\n", " r_text = response.text\n", " except Exception as e: \n", " r_text = response.prompt_feedback\n", " gemini_flash_guesses.append((i, r_text))" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:44:25.971515900Z", "start_time": "2024-06-13T14:43:07.917993600Z" } }, "id": "5b0e291093a90fb7" }, { "cell_type": "code", "execution_count": 49, "outputs": [ { "data": { "text/plain": "[(472033,\n 'This script features **one** named female character: **7**. \\n\\nWhile the scientist is referred to as \"he\" and is presumably male, there are no other female characters mentioned in the script. \\n'),\n (120780,\n 'The script \"Out of Sight\" contains the following female characters:\\n\\n* **Loretta:** A bank teller who is robbed by Foley.\\n* **Lulu:** Chino\\'s \"wife\" and accomplice in his escape plan. \\n* **Adele:** Foley\\'s ex-wife.\\n* **Karen Sisco:** A federal marshal who becomes involved in Foley\\'s escape and later attempts to apprehend him.\\n* **Moselle:** Maurice Miller\\'s girlfriend.\\n* **Midge:** Richard Ripley\\'s maid. \\n* **Yonelle:** A transsexual who is murdered at Eddie Solomon\\'s house. \\n* **Regina Mary Bragg:** Buddy\\'s sister, a born-again Christian who calls the FBI to report Buddy and Foley.\\n* **Celeste:** A waitress at the Westin Hotel in Detroit.\\n\\nIt\\'s important to note that some of these characters are only briefly mentioned and do not have any lines in the script. \\n'),\n (1706593,\n 'The script \"Chronicle\" features **two** female characters:\\n\\n1. **Sandra Detmer:** Andrew\\'s mother, who is ill and confined to bed.\\n2. **Casey Letter:** Matt\\'s girlfriend, who is a videoblogger and later becomes a love interest for Matt. \\n'),\n (2911666,\n \"This script contains only one female character: **Norma Wick**, John Wick's deceased wife. \\n\\nWhile there are female characters mentioned, like the Delivery Woman and the Waitress at the Red Circle, they don't have speaking roles or significant actions in the script. \\n\"),\n (61722,\n 'The script \"The Graduate\" features **three** female characters:\\n\\n1. **Mrs. Robinson:** The older woman who has an affair with Benjamin.\\n2. **Elaine Robinson:** Mrs. Robinson\\'s daughter, who Benjamin falls in love with.\\n3. **Mrs. Braddock:** Benjamin\\'s mother. \\n'),\n (1311071,\n \"This script features 7 female characters: \\n\\n1. **Naomi Ginsberg:** Allen's mother, struggling with a mental health condition.\\n2. **Edie Parker:** Jack Kerouac's girlfriend, an art student.\\n3. **Permissions Librarian:** A librarian at Columbia University.\\n4. **Gwendolyn:** A page at Columbia University's library.\\n5. **Edith Cohen:** A woman accompanying Louis Ginsberg.\\n6. **Marion Carr:** Lucien Carr's mother.\\n7. **Grandma Frankie:** Jack Kerouac's grandmother. \\n\"),\n (115632,\n \"The script you provided has **two** female characters:\\n\\n1. **Matilde:** Jean Michel Basquiat's mother, who appears in a dream sequence and later in a mental hospital.\\n2. **Gina Cardinale:** Jean Michel's girlfriend, who plays a significant role throughout the script. \\n\"),\n (499549,\n \"This script contains **2** female characters:\\n\\n* **Dr. Grace Augustine:** The head of the Avatar Program and a renowned Pandoran botanist.\\n* **Neytiri:** A fierce and beautiful Na'vi warrior who becomes Jake's teacher and love interest. \\n\"),\n (113101, block_reason: OTHER),\n (64665, block_reason: OTHER)]" }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gemini_flash_guesses" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:44:26.015457500Z", "start_time": "2024-06-13T14:44:25.989596Z" } }, "id": "9c18c98dceacb7f7" }, { "cell_type": "code", "execution_count": 47, "outputs": [ { "data": { "text/plain": "script_date April 1985\nscript NaN\nbechdel_id 2576\ntitle Commando\nrelease_year 1985\nlanguage en\npopularity 46.667\nvote_average 6.678\nvote_count 2677\noverview John Matrix, the former leader of a special co...\nDrama 0\nRomance 0\nAdventure 1\nFantasy 0\nFamily 0\nMystery 0\nCrime 0\nThriller 1\nWar 0\nComedy 0\nMusic 0\nWestern 0\nHorror 0\nScience Fiction 0\nAction 1\nAnimation 0\nHistory 0\nembeddings [0.03867363, 0.038765118, -0.029283423, -0.043...\nneural_net_preds 0\nName: 88944, dtype: object" }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.loc[88944]" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-13T14:41:57.141371100Z", "start_time": "2024-06-13T14:41:57.094035800Z" } }, "id": "741aa215c9e1ac5f" }, { "cell_type": "code", "execution_count": 111, "outputs": [ { "data": { "text/plain": "<coroutine object ChatSession.send_message_async at 0x000001734E1BA480>" }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ "response" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-12T23:30:56.524967900Z", "start_time": "2024-06-12T23:30:56.504129400Z" } }, "id": "e948fa3a8d827b91" }, { "cell_type": "code", "execution_count": 114, "outputs": [], "source": [ "response.close()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-12T23:31:24.415640600Z", "start_time": "2024-06-12T23:31:24.379790600Z" } }, "id": "7f35f43b37df1fb1" }, { "cell_type": "code", "execution_count": 117, "outputs": [ { "ename": "AttributeError", "evalue": "'coroutine' object has no attribute '__dict__'", "output_type": "error", "traceback": [ "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", "\u001B[1;31mAttributeError\u001B[0m Traceback (most recent call last)", "Cell \u001B[1;32mIn[117], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m response\u001B[38;5;241m.\u001B[39m\u001B[38;5;18m__dict__\u001B[39m\n", "\u001B[1;31mAttributeError\u001B[0m: 'coroutine' object has no attribute '__dict__'" ] } ], "source": [ "r" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2024-06-12T23:31:40.959115300Z", "start_time": "2024-06-12T23:31:40.917165400Z" } }, "id": "64e80d3418ea5576" }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [], "metadata": { "collapsed": false }, "id": "cdd22dad0e02671c" } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }