wrongmove/crawler/ocr.ipynb

1523 lines
4.3 MiB
Text
Raw Permalink Normal View History

2025-03-30 23:42:29 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "b12b091f-11e4-4572-a326-3656ff85fbde",
"metadata": {},
"outputs": [],
"source": [
"import json"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d0336432-6451-4b46-b198-b1e6ff2caf38",
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"def extract_total_sqm(input_str: str):\n",
" sqmregex = r\"(\\d+\\.\\d*) ?(sq ?m|sq. ?m)\"\n",
" matches = re.findall(sqmregex, input_str.lower())\n",
" if len(matches) == 0:\n",
" return None\n",
" sqms = [float(m[0]) for m in matches]\n",
" return max(sqms)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "cefd4cd0-82b7-4fc7-b863-238c67fba6e4",
"metadata": {},
"outputs": [],
"source": [
"with open('data/rs/86807694/floorplan_ocr.json') as f:\n",
" ocred = json.load(f)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "c697bcaf-e40c-4218-b226-f0481f2221a9",
"metadata": {},
"outputs": [],
"source": [
"def extract_total_sqm(input_str: str):\n",
" sqmregex = r\"(\\d+\\.?\\d*) ?(sq ?m|sq. ?m)\"\n",
" matches = re.findall(sqmregex, input_str.lower())\n",
" if len(matches) == 0:\n",
" return None\n",
" sqms = [float(m[0]) for m in matches]\n",
" filtered = [sqm for sqm in sqms if 30 < sqm < 160]\n",
" return max(filtered)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "5c9688d5-273e-4fb1-a806-2ab2ccd4efa9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['2.36', '1.56', '79', '51', '5.30', '2.34', '175', '78', '2', '172', '16']"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"text = ocred[0]['text'].lower()\n",
"sqmregex = r\"(\\d+\\.\\d*) ?(sq ?m|sq. ?m)\"\n",
"sqmregex = r\"(\\d+\\.?\\d*)\"\n",
"matches = re.findall(sqmregex, text.lower())\n",
"\n",
"matches"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "57833889-c71c-42f8-a2f0-12fd284eca3d",
"metadata": {},
"outputs": [],
"source": [
"fix = [135577163,\n",
"139692791,\n",
"148661672,\n",
"149763596,\n",
"145384067,\n",
"150394943,\n",
"146826371,\n",
"151149578,\n",
"147682598,\n",
"148826510,\n",
"86922567,\n",
"147740009,\n",
"142128437,\n",
"86648925,\n",
"148609136,\n",
"145712417,\n",
"150133154,\n",
"86807694,\n",
"148345610,\n",
"140016896,\n",
"147800474,\n",
"148319222,\n",
"150066749,\n",
"148401890,\n",
"149307794,\n",
"146923850,\n",
"149822654,\n",
"149803352,\n",
"150019004,\n",
"148078598,\n",
"145801379,\n",
"149453036,\n",
"147421130,\n",
"150806240,\n",
"144411161,\n",
"149352407,\n",
"145816121,\n",
"150267824,\n",
"129764555,\n",
"141653678,\n",
"142919210,\n",
"147722849,\n",
"150753473,\n",
"151045490,\n",
"60761856,\n",
"139696430,\n",
"142793525,\n",
"150270113,\n",
"150578588,\n",
"150975599,\n",
"134499296,\n",
"149746589,\n",
"84129467,\n",
"150757094,\n",
"148034210,\n",
"137157644]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "3a07c174-3f0a-40f9-ad64-b9b6e2b16c6b",
"metadata": {},
"outputs": [],
"source": [
"from data_access import Listing\n",
"from rec.floorplan import extract_total_sqm\n",
"import json"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "5b5c5826-1462-427d-9c8e-d65ac20f57b2",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "84f9a356-ab29-4bcd-8214-f1f59c75f5a2",
"metadata": {},
"outputs": [],
"source": [
"listings = Listing.get_all_listings()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "9fc45893-08ec-4f7b-9c47-871399e2ce8e",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 75982/75982 [00:11<00:00, 6631.57it/s]\n"
]
}
],
"source": [
"c = 0\n",
"for listing in tqdm(listings):\n",
" with open(listing.path_floorplan_ocr_json()) as f:\n",
" objs = json.load(f)\n",
" for obj in objs:\n",
" old = obj['estimated_sqm']\n",
" sqm = extract_total_sqm(obj['text'])\n",
" obj['estimated_sqm'] = sqm\n",
" if old != sqm:\n",
" c+=1\n",
" with open(floorplan_path, 'w') as f:\n",
" objs = json.dump(objs, f)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "3f72a3d6-db81-403a-a773-b33ac776f71c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7646"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"c"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b2a8f7f1-beb9-40ab-b2c2-d27fefc310fe",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "0cf00989-b013-4b4e-ac65-bbdec1da5e9a",
"metadata": {},
"source": [
"# testing ocr"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "b9f4a649-e417-4078-a2c2-bd105642ee8e",
"metadata": {},
"outputs": [],
"source": [
"from data_access import Listing\n",
"import json"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "867e1d67-3c22-42f3-a6af-22c3722b6ce4",
"metadata": {},
"outputs": [],
"source": [
"l = Listing(101369066)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "aa618056-fc5b-411b-a5a1-bbf257bc926e",
"metadata": {},
"outputs": [],
"source": [
"l.calculate_sqm_ocr(True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "8f194b0a-1e40-41d6-8539-08b69116f052",
"metadata": {},
"outputs": [],
"source": [
"with open(l.path_floorplan_ocr_json()) as f:\n",
" js = json.load(f)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "5d2e51bb-2d02-46e8-a853-7d385e097b69",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'floorplan_path': 'data/rs/101369066/floorplans/0_57956_LAD180253_FLP_00_0000.gif',\n",
" 'estimated_sqm': None,\n",
" 'text': 'Dalgarno Gardens\\n\\n: Reception/ z E g\\nDining Room 5 © ®\\n27\\'8\" x 19\\'5\" ExXx8\\npossesses One\\n; 8.43 x 5.92m 8 5\\n\\nKitchen|\\n\\n12\\'3\" x 8\\'4 Bedroom\\n3.73 x 2.6 15\\'4\" x 12\\'6\"\\n4.67 x 3.81m\\n\\nBedroom\\n13\\'5\" x 10\\'11\"\\n4.09 x 3.33m\\n\\nBedroom\\n12\\'6\" x 12\\'\\n3.81 x 3.66m\\n\\nGround Floor\\nFor Illustration Purposes Only - Not To Seale\\n\\nThis floor plan should be used as a general outline for guidance only and does not constitute in whole or in part an offer or contract.\\nAny intending purchaser or lessee should satisfy themselves by inspection, searches, enquiries and full survey as to the correctness of each statement.\\nAny areas, measurements or distances quoted are approximate and should not be used to value a property or be the basis of any sale or let.\\n'}]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"js"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "24813a78-9c39-49f4-973a-696261e23c4f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 48,
"id": "54ebc983-e98d-41e8-b0b1-6488f1ba6020",
"metadata": {},
"outputs": [
{
"ename": "error",
"evalue": "OpenCV(4.11.0) :-1: error: (-5:Bad argument) in function 'imread'\n> Overload resolution failed:\n> - Expected 'filename' to be a str or path-like object\n> - Expected 'filename' to be a str or path-like object\n> - Expected 'filename' to be a str or path-like object\n",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31merror\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[48], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mcv2\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mimread\u001b[49m\u001b[43m(\u001b[49m\u001b[43mimg\u001b[49m\u001b[43m)\u001b[49m\n",
"\u001b[0;31merror\u001b[0m: OpenCV(4.11.0) :-1: error: (-5:Bad argument) in function 'imread'\n> Overload resolution failed:\n> - Expected 'filename' to be a str or path-like object\n> - Expected 'filename' to be a str or path-like object\n> - Expected 'filename' to be a str or path-like object\n"
]
}
],
"source": [
"\n"
]
},
{
"cell_type": "markdown",
"id": "c8928641-39b3-44ab-9dd5-9e45b44aefcb",
"metadata": {},
"source": [
"# Improve OCR"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ee30258e-64d9-4d76-ae5b-f43677aaf865",
"metadata": {},
"outputs": [],
"source": [
"import cv2\n",
"from PIL import Image\n",
"import re\n",
"import pytesseract\n",
"import numpy as np\n",
"\n",
"def extract_total_sqm(input_str: str):\n",
" sqmregex = r\"(\\d+\\.?\\d*) ?(sq ?m|sq. ?m)\"\n",
" matches = re.findall(sqmregex, input_str.lower())\n",
" sqms = [float(m[0]) for m in matches]\n",
" filtered = [sqm for sqm in sqms if 30 < sqm < 160]\n",
" if len(filtered) == 0:\n",
" return None\n",
" return max(filtered)\n",
"\n",
"def improve_img_for_ocr(img: Image):\n",
" img2 = np.array(img.convert('L'))\n",
" cv2.resize(img2, None, fx=1.2, fy=1.2, interpolation=cv2.INTER_CUBIC)\n",
" thresh = cv2.adaptiveThreshold(img2,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,2)\n",
" return Image.fromarray(thresh)\n",
"\n",
"def new_ocr(path) -> tuple[float, str]:\n",
" img = Image.open(path)\n",
" img = improve_img_for_ocr(img)\n",
" text = pytesseract.image_to_string(img)\n",
" estimated_sqm = extract_total_sqm(text)\n",
" return estimated_sqm, text\n",
"\n",
"\n",
"def old_ocr(image_path):\n",
" img = Image.open(image_path)\n",
" text = pytesseract.image_to_string(img)\n",
" estimated_sqm = extract_total_sqm(text)\n",
" return estimated_sqm, text"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "80be9ffc-ee71-4a27-b13c-ad1e5f798899",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 27,
"id": "bae6347e-98c3-4cbd-ab97-2118c92d97ad",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(None, '<SeDROOU\\ncz UMASS.\\nASH\\n\\nerie\\nRoce. ae\\n\\n')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"path = \"/Users/kadir/code/realestate/crawler/data/rs/101369066/floorplans/0_57956_LAD180253_FLP_00_0000.gif\"\n",
"path2 = \"/Users/kadir/code/realestate/crawler/data/rs/126212030/floorplans/0_136139_2442224_FLP_00_0000.jpeg\"\n",
"\n",
"text = new_ocr(path2)\n",
"text"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "76867230",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(None,\n",
" 'Dalgarno Gardens\\n\\n: Reception/ z E g\\nDining Room 5 © ®\\n27\\'8\" x 19\\'5\" ExXx8\\npossesses One\\n; 8.43 x 5.92m 8 5\\n\\nKitchen|\\n\\n12\\'3\" x 8\\'4 Bedroom\\n3.73 x 2.6 15\\'4\" x 12\\'6\"\\n4.67 x 3.81m\\n\\nBedroom\\n13\\'5\" x 10\\'11\"\\n4.09 x 3.33m\\n\\nBedroom\\n12\\'6\" x 12\\'\\n3.81 x 3.66m\\n\\nGround Floor\\nFor Illustration Purposes Only - Not To Seale\\n\\nThis floor plan should be used as a general outline for guidance only and does not constitute in whole or in part an offer or contract.\\nAny intending purchaser or lessee should satisfy themselves by inspection, searches, enquiries and full survey as to the correctness of each statement.\\nAny areas, measurements or distances quoted are approximate and should not be used to value a property or be the basis of any sale or let.\\n')"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"new_ocr(\"data/rs/101369066/floorplans/0_57956_LAD180253_FLP_00_0000.gif\")\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "f3308c35-6e28-4307-8686-879e95368a0c",
"metadata": {},
"source": [
"# util"
]
},
{
"cell_type": "markdown",
"id": "97897634",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 29,
"id": "c509521a-7a34-4346-aaf5-d571d01c06ce",
"metadata": {},
"outputs": [],
"source": [
"def showpics(path):\n",
" img = Image.open(path)\n",
" display(img)\n",
" img2 = improve_img_for_ocr(img)\n",
" display(img2)\n",
" "
]
},
{
"cell_type": "markdown",
"id": "e7b7ea6d-1fec-4886-b620-4f3f906e01f6",
"metadata": {},
"source": [
"# Compare against previous results"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "34e71c93-06fc-4ef7-bc70-ed3a42a893bc",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/kadir/code/realestate/crawler/venv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
" from .autonotebook import tqdm as notebook_tqdm\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"total pre filter: 106160\n",
"Only ones with floor plan pictures: 101162\n"
]
}
],
"source": [
"from data_access import Listing\n",
"\n",
"listings = Listing.get_all_listings()\n",
"print(\"total pre filter:\", len(listings))\n",
"\n",
"listings = [l for l in listings if len(l.list_floorplans()) > 0]\n",
"print(\"Only ones with floor plan pictures:\", len(listings))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "160c624a-49d4-4c3f-a757-e6e5a9aad7bc",
"metadata": {},
"outputs": [
{
"data": {
"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>listing</th>\n",
" <th>sqmbefore</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Listing(identifier=100938761, _cached=None)</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Listing(identifier=101149631, _cached=None)</td>\n",
" <td>67.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Listing(identifier=101369066, _cached=None)</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Listing(identifier=101817179, _cached=None)</td>\n",
" <td>53.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Listing(identifier=101939660, _cached=None)</td>\n",
" <td>56.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" listing sqmbefore\n",
"0 Listing(identifier=100938761, _cached=None) NaN\n",
"1 Listing(identifier=101149631, _cached=None) 67.2\n",
"2 Listing(identifier=101369066, _cached=None) NaN\n",
"3 Listing(identifier=101817179, _cached=None) 53.2\n",
"4 Listing(identifier=101939660, _cached=None) 56.5"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.DataFrame(pd.Series(listings), columns=[\"listing\"])\n",
"# now add the column sqm from before\n",
"df.loc[:, \"sqmbefore\"] = df.listing.apply(lambda x: x.sqm_ocr)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "560255e4",
"metadata": {},
"outputs": [],
"source": [
"l = listings[2]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "71539963-2472-444e-b994-c45577577525",
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "'Listing' object is not iterable",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[20], line 15\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 13\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmax\u001b[39m(sqms)\n\u001b[0;32m---> 15\u001b[0m \u001b[43mnew_ocr_from_listing\u001b[49m\u001b[43m(\u001b[49m\u001b[43ml\u001b[49m\u001b[43m)\u001b[49m\n",
"Cell \u001b[0;32mIn[20], line 6\u001b[0m, in \u001b[0;36mnew_ocr_from_listing\u001b[0;34m(paths)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mnew_ocr_from_listing\u001b[39m(paths: List[Path]) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mfloat\u001b[39m, \u001b[38;5;28mstr\u001b[39m]:\n\u001b[1;32m 5\u001b[0m sqms \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m----> 6\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mfloorplan\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mpaths\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43msqm\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtext\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mnew_ocr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfloorplan\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# print(sqm, text)\u001b[39;49;00m\n",
"\u001b[0;31mTypeError\u001b[0m: 'Listing' object is not iterable"
]
}
],
"source": [
"from typing import List\n",
"from pathlib import Path\n",
"\n",
"def new_ocr_from_listing(paths: List[Path]) -> tuple[float, str]:\n",
" sqms = []\n",
" for floorplan in paths:\n",
" sqm, text = new_ocr(floorplan)\n",
" # print(sqm, text)\n",
" sqms.append(sqm)\n",
" sqms = [sqm for sqm in sqms if sqm is not None]\n",
" if len(sqms) == 0:\n",
" return None\n",
" return max(sqms)\n",
" \n",
"new_ocr_from_listing(l)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "d0d419b2-2595-483a-a253-1c662698c91f",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Process SpawnProcess-68:\n",
"Traceback (most recent call last):\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 314, in _bootstrap\n",
" self.run()\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 108, in run\n",
" self._target(*self._args, **self._kwargs)\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py\", line 246, in _process_worker\n",
" call_item = call_queue.get(block=True)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/queues.py\", line 122, in get\n",
" return _ForkingPickler.loads(res)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
"AttributeError: Can't get attribute 'new_ocr_from_listing' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>\n",
"Process SpawnProcess-69:\n",
"Traceback (most recent call last):\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 314, in _bootstrap\n",
" self.run()\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 108, in run\n",
" self._target(*self._args, **self._kwargs)\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py\", line 246, in _process_worker\n",
" call_item = call_queue.get(block=True)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/queues.py\", line 122, in get\n",
" return _ForkingPickler.loads(res)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
"AttributeError: Can't get attribute 'new_ocr_from_listing' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>\n",
"Process SpawnProcess-70:\n",
"Traceback (most recent call last):\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 314, in _bootstrap\n",
" self.run()\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 108, in run\n",
" self._target(*self._args, **self._kwargs)\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py\", line 246, in _process_worker\n",
" call_item = call_queue.get(block=True)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/queues.py\", line 122, in get\n",
" return _ForkingPickler.loads(res)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
"AttributeError: Can't get attribute 'new_ocr_from_listing' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>\n",
"Process SpawnProcess-71:\n",
"Traceback (most recent call last):\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 314, in _bootstrap\n",
" self.run()\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 108, in run\n",
" self._target(*self._args, **self._kwargs)\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py\", line 246, in _process_worker\n",
" call_item = call_queue.get(block=True)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/queues.py\", line 122, in get\n",
" return _ForkingPickler.loads(res)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
"AttributeError: Can't get attribute 'new_ocr_from_listing' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>\n",
"Process SpawnProcess-72:\n",
"Traceback (most recent call last):\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 314, in _bootstrap\n",
" self.run()\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/process.py\", line 108, in run\n",
" self._target(*self._args, **self._kwargs)\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py\", line 246, in _process_worker\n",
" call_item = call_queue.get(block=True)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
" File \"/Users/kadir/.pyenv/versions/3.12.0/lib/python3.12/multiprocessing/queues.py\", line 122, in get\n",
" return _ForkingPickler.loads(res)\n",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
"AttributeError: Can't get attribute 'new_ocr_from_listing' on <module '__main__' (<class '_frozen_importlib.BuiltinImporter'>)>\n"
]
},
{
"ename": "BrokenProcessPool",
"evalue": "A child process terminated abruptly, the process pool is not usable anymore",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mBrokenProcessPool\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[24], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m concurrent\u001b[38;5;241m.\u001b[39mfutures\u001b[38;5;241m.\u001b[39mProcessPoolExecutor() \u001b[38;5;28;01mas\u001b[39;00m executor:\n\u001b[1;32m 4\u001b[0m paths \u001b[38;5;241m=\u001b[39m df\u001b[38;5;241m.\u001b[39mlisting\u001b[38;5;241m.\u001b[39miloc[:\u001b[38;5;241m100\u001b[39m]\u001b[38;5;241m.\u001b[39mapply(\u001b[38;5;28;01mlambda\u001b[39;00m x: new_ocr_from_listing(x\u001b[38;5;241m.\u001b[39mlist_floorplans()))\n\u001b[0;32m----> 5\u001b[0m sqmafter \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\u001b[43mexecutor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnew_ocr_from_listing\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpaths\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 8\u001b[0m \u001b[38;5;66;03m# df['sqmafter'] = sqmafter\u001b[39;00m\n\u001b[1;32m 10\u001b[0m df\u001b[38;5;241m.\u001b[39mhead()\n",
"File \u001b[0;32m~/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py:822\u001b[0m, in \u001b[0;36mProcessPoolExecutor.map\u001b[0;34m(self, fn, timeout, chunksize, *iterables)\u001b[0m\n\u001b[1;32m 819\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 820\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mchunksize must be >= 1.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m--> 822\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpartial\u001b[49m\u001b[43m(\u001b[49m\u001b[43m_process_chunk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfn\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 823\u001b[0m \u001b[43m \u001b[49m\u001b[43m_get_chunks\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43miterables\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mchunksize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchunksize\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 824\u001b[0m \u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 825\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _chain_from_iterable_of_lists(results)\n",
"File \u001b[0;32m~/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/_base.py:608\u001b[0m, in \u001b[0;36mExecutor.map\u001b[0;34m(self, fn, timeout, chunksize, *iterables)\u001b[0m\n\u001b[1;32m 605\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m timeout \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 606\u001b[0m end_time \u001b[38;5;241m=\u001b[39m timeout \u001b[38;5;241m+\u001b[39m time\u001b[38;5;241m.\u001b[39mmonotonic()\n\u001b[0;32m--> 608\u001b[0m fs \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msubmit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfn\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m args \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(\u001b[38;5;241m*\u001b[39miterables)]\n\u001b[1;32m 610\u001b[0m \u001b[38;5;66;03m# Yield must be hidden in closure so that the futures are submitted\u001b[39;00m\n\u001b[1;32m 611\u001b[0m \u001b[38;5;66;03m# before the first iterator value is required.\u001b[39;00m\n\u001b[1;32m 612\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mresult_iterator\u001b[39m():\n",
"File \u001b[0;32m~/.pyenv/versions/3.12.0/lib/python3.12/concurrent/futures/process.py:776\u001b[0m, in \u001b[0;36mProcessPoolExecutor.submit\u001b[0;34m(self, fn, *args, **kwargs)\u001b[0m\n\u001b[1;32m 774\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_shutdown_lock:\n\u001b[1;32m 775\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_broken:\n\u001b[0;32m--> 776\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m BrokenProcessPool(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_broken)\n\u001b[1;32m 777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_shutdown_thread:\n\u001b[1;32m 778\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcannot schedule new futures after shutdown\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
"\u001b[0;31mBrokenProcessPool\u001b[0m: A child process terminated abruptly, the process pool is not usable anymore"
]
}
],
"source": [
"import concurrent.futures\n",
"\n",
"with concurrent.futures.ProcessPoolExecutor() as executor:\n",
" paths = df.listing.iloc[:100].apply(lambda x: new_ocr_from_listing(x.list_floorplans()))\n",
" sqmafter = list(executor.map(new_ocr_from_listing, paths))\n",
"\n",
"\n",
"# df['sqmafter'] = sqmafter\n",
"\n",
"df.head()\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "aab58c46",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"843.0166666666667"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "90653983-1d9c-4e66-a80f-6bf435d7b332",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 40,
"id": "da633fab-de64-4567-a370-6aacf52352e5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data/rs/101149631/floorplans/0_75997_thgrth_FLP_00_0000.jpeg\n"
]
},
{
"data": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAT8BqgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAoopM0ALRSZpaAMOfUL2bVprDTRbL9mjV55rjcQpbO1QoxngZJz3FVbrWNStrCEyR2aXT3aW28MXiKt/H1BH0PoanvNKvU1C4vbD7M/2qNY7i2uAdkm3OGyM44OCMHNZ48JEWux1sQJb2K5mt44dsKqoClVXvnHfr7UAW01u4s9Qkt797OaNLSS6MlqGBQIQCGUk9d3HPY0xtV1uDSv7XltLT7KI/Pe2Vm81Y8Z+90LAdsfjU0fh6C2vrwW0MEWn38Hl3ECLtwwG0MuBjBUnI9gfWoG0nWZtM/saW7tmszF5L3Sq3nNHjGNv3QxHG7PvigDS07UjfajqEACeVbmLy3XqwZA3P51izeKrmCOxna1jeGSa6W425ykcUm3cvrgfMR7HFaDaZqFjqFxc6U9oY7lUDx3G4bCi7QVK9RjHB9OtNs9Bksp9Lbz1lFqJzMzLgyPKdxIH1zxQAzVdflshqJt0hdYLSG4jZskMXdl59sKKnOoalp99aRaitrJb3UnkrNAGUpJgkAqc8HGM5rKk8KXoh1e3guITbzwRw2iuCDEquzbW46DcQPbFag07U9QvbWbU2tY4baTzUhtmZ974IBZmA4Gc4x1oAfq+o3drqGnWto1shuvM3PcAkLtUHsRTDqN9bXemW872s5vLlomaBWUKoiZ+7HnK1LqejR6rqenz3EUE1tbeYXjlXduLKAMAjFV7/RHjfT5NFtbGA2lw05iI8pGzGyfwqefm/SgCzquo3FveWljZRJJd3W9lMpIRETG5jjk9VGPeqc+u3OjyzR6xHEyi2kuYpbbOHCY3KVbo3zDHOPpUlxp+p3Mlrfu9rb6nbM4QIzPE8bAblbgHsDntgUyTQrjV5JZNZkiG62ktkits4jV8bm3NyW4HbA96AG3Gp63p+nNqV5bWZtkAeeCJmMkadzuPDEDtgdKVdV1K5vNQS3uNOhhtZvLXz1YlvkVsk7h/e9O1E2l6zfWZ0y9ubT7IwEcs8SsJZk7jb0UkcZye9Nk8JWV42rG+trd2vJd0UqoDJEvlqowxHBBUmgDU0bUDqmj2t6Y/KMyZKA5A7cHuO49q06paet1HYxR3rRG4RdrtEPlYjuB2+lXaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKM0mRQAtFJkUtABRRRQAGsS41G8g8R2diYIhaXCyYfcS5KqD06Ac4raJrndSs9an1y1vbSOwMNpv2CWZ1Z96gHOFOMUARz63dnVrqxgm0+2eAqEjuywe4yoOV5GBzj+LpT9X1DWbKO2nj+wqs80MPlSIzMjOwU/MGAOCfSpL+y1S5eaIrpt7aSNuVbuM5i46YAIYd+x5om0OX+w9M06OfzDZz27mSX+JY2BP8AKgC3eXN3p2g3d5O0ElzbwSS/IpVCVBIGCSf1qml7qgs2uprnTpEWFpfLijYNwpI53mtLVrV7/Rr2zjKrJcW8kSlugLKQM/nVMeHtPhsHjtrCzhumgaISpCqnJXHUDNAEqassfhqPV7pcL9kFxIqdvl3ECs+41PXNP09tUvLW0+zRr5k1vGzGWNO/zfdYgdsDp1p1npeqS6QukanHZfY/sv2dngmcufl25wVApJ9L1q/sW0u9u7RrN18ua4jVhNKncbfuqSO+T16UASpqOpahd3UWmrapBav5TS3G5i8m0MQFXGANw5/Sqn/CRX0zWttGltbXTXclrP52XRGRN+VIK5BGPzq2NO1LT7u4l0t7V4rqTzXhuQy7H2hSysucg7Rwfz5qsPC2+W0e78i6Iupbq682P5ZGaMqNq88D5evpQBc0zVLqbWLjT7o20rRQrMJrbIUbiRtYEnB4z1rdrE0zRzpN9eC0WFNOnIlWJRgxydGAGMbTgH2Oa2x0oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDL12eS20K/niuFt3SBikrdFOOD3/AJVhWBu31Geyjl1DT1mst6LeyedJv3YLoSzAbQRkZ6kcevUXdpDfWktrcRiSGVSrqc8ist/DVpNDcJcT3czzwm3Msk2XWM9VU9s459aAK+heYdQupbW5uZ9JMSLE88rSb5QW3MhbnbjaPQnpSXus3trq7wSeRbW4lRIjcRPtnDbckSj5VOSRtIPT3rUsNKFgxK3t3Mu3aEmkDKv0GKiu9Ctry4eSWW5McjK0kImPluRjGV/AdKAMmXXdUEEd9FHafZJNQW0WNlbeE87yi+7djPB4xxkcnpU/iWO7mu9Gt4p4445bwhw6MwYiN2GdrLkfL09cenJqXhmOQxvZvICL6K6MLSny1IkDOwX1Pzfia1G0qF5YJXkmkaG4a4j3vnazKy4/3cMeKAKXhSa8uNF868nWaRp5gCEK4AkYY5Y+nHoMDtTr+Q3PiPT9P3MsKxSXbhTjeysqqD7ZYn6gVPZaNBYFPs89wsayvKIjJ8mXzkY9MknHrRfWUzatY39uFLw74ZVY43RPjOPcFVP50AZsFiP+EmSC2u74RWaCW48y8kcOzZCJhmI6Asf+A+9P1ya5n1iy0+JLpo3hlmZbebyixUoBl8ggDcenfFbVvZRW9xdTR7t9zIJJCT3ChRj2woqpPosE8MAa4uhNBu8u4WU+YA3UZ7jp+QoAZp148nhxbm1E9zIkbhUuGAkd1yNrEcZ3DGayR4kvI7WdpGtZbkLEFgMMkDxu7hBuVs5UFvvD0roINNtoNO/s+JGW32FCA5yQepz1ycnmqJ8NWUiSrcvdXJkjEQeaYsyKGDDae3zAHPXgUALp97qH9t3WnXht3EUEUySRIy7tzODkEnH3fU/0FG/1vVbafUpII7RoLO5hhCOrbpA6x/xZwuC/oasW+g
"image/png": "iVBORw0KGgoAAAANSUhEUgAABqgAAAT8CAIAAABwzJZSAAEAAElEQVR4AeydB4AkRdXHJ4fNe5mDIwfJQQRB4YyIgaAComJAkCQgKOacCAZEPgNGUEQMoAgKIkFyEBAEAUkqGS5u3snz/arfTO/s7sze7N3u3s7uvzl6q6srvPp1T79Xr6uqg8ViMTCdtnQ6XSgUotFoJBLJZDIEgsFgPp8Ph8O5XC4UCnGWQ+IJp1Ip4mkChz09Pe3t7QMDA01NTWQkF5GrVq3iMJFIkIUtFotls1lOsR8cHGxtbSUN8RRFvdTItnr16ng8Ti4CnZ2dVMfZZcuWLViwgGJJQAy1NDc3E08hpEQwThGgKIQhDfHJZBLxKMrKtyrs0BqIDNROeuTp7++nQHIRQ3ZO0S6ykJfCyUUyK43EbMgzd+5c0nDpkJzaaQuJSUM5dj0J097u7m5aQYEka2lp8U/BZDpddskiAiIgAiIgAiIgAiIgAo4Adq+BwELGfDVrnEg77Ovrw+rGTjZbHSsX29js58q9mf2cxTamBM+CDvpZiKcQK5k9tj0V0ZsgF0YyZ7HAMebNAieAmY1IZpZ3dXV1dHSQBrudSEuMPGaxUxGR1iXhFCUgFZGESUPYmtbb24v1Tth6ARapvQiIgAiIgAhMBoGgr1kno/S1KBNHFf47pFqxYsX8+fN9XYiyRGWidNGpaEq0MofsfacbdaFicYGhiQn7GQnjAkMx4yYjgGpHzRNpG+kpwWJQ9ihjwiQjwEaAGsmL18x0M4fobKomI7VTCGnMiWYxZkCYsseRZ6fIRS0USIAE5CKeQkhmghHJWdITwJpZuHAhaZ5//nm8jYhNDImxWsBCFgRggwNprCICpEEeNrugSIWNQjwbJg5MKIFISqNGYLK3s9qLgAiIgAiIgAiIgAiIwPQhYNYs8pi1jI2N3WsvvLF1iae/gCmLrUsCDjH7MaTNNiavRWL3EiYSs5kSsH6xpc1cxyC30sxWt/SUg11NPJFYziYDuSiZEqw0M+BJSQnY3gTotrBnQwZkM5OePeVYmFMUS0YKIbxy5UpeyVMjZ6mCwq1k2mKdBVeWNhEQAREQARGYUAJOA02rra2tDVXKmzS8fgiGRkTjEiDSNDraEd8cWhx9b2oeVYruJBnxZLfmoNpfeOEFFC2HKFpT3r62ZsQceS2l6V3sANO4KF3SW0bSUyb14vV79tlnSY8WZxSh1YtDjQBeSCvHAmS0EoikTA5R7QiPKUA5hKmF7cUXXyQBAXPAkQWRCCO2vdjELNhggw2sOuLNyqE0Gk5b2FM1KPyqKYo0QMBHaVWzt1bQBGssGWks8VRnGbUXAREQAREQAREQAREQgelJAFsa+xk3HIYuJi4WLMYt5i7uNuIxsLGfkRz72ZxupCeSd/mkxIwnF1a9jeMjPSkxhrGKzUImngQY58Tj7MOuxk7GxqY0xh8QSSHEmMOOPYk5/M9//sMpTHRz+SEMNT733HMEsNjJjgxkJD3xdBbY20YuNuTkFJVSghntyGnymISWTHsREAEREAERmEACpdHmE1jiOhaFIuQFGq/CKOevf/0r6hwfGU63LbfccquttnrFK15BAtTnr371q6effhqVydk5c+bYe7nDDjuMsXKoWzaSPfDAA//973/JS/oddthht91223rrrVGu6PvrrrtuyZIle+21F9qXlBgBeAkvvvjiT3ziE6jtn/70p0QeccQRZMRrRgwVXXbZZQcddNBGG2109913P/zww9TLqY033pj9dtttt/nmmzP3lvT+dFqMiT/84Q9PPfUUshGmUZgLaPS3vvWt7Dl11FFHzZs3jyxsSMWeeIq9+eabsR44RE6KfeUrX0kDoUGjsCdwCJLA2rXtttvCBJFoFwmeeOKJX/7ylwSsRTgr8UW++tWv3nfffTEssGYQgDKxSEhAMm0iIAIiIAIiIAIiIAIiMG0JYIGz4YZ78MEH77rrrp133nmfffbBHsa833DDDTF077zzTixz3spziNmMrY7BfPnll9MLwL+Gnw6PHnYyljN9BM5us802WMK0F8v8/PPPx/7HSUeBJMakpxAMbxIvX778wAMPxANICXQTSEOXgVwY0o899tif//znf/7zn1tsscXee++92WabLVq0aPHixXb2ySeffPTRRxGJHgGG/ete9zqkYlwCrr1rrrnm73//u7P783lMcQpklMOOO+5Ii+hEkB1RsdUJaBMBERABERCBiSUw7Rx/6FfUJI0899xzUfDoy1e96lUoyFtvvfXKK69ElR577LGWANV76KGH4t4igJZFxZ5zzjknnHACHj3Sf/vb32bY4KabboqjDZ/XFVdccdttt735zW9+wxvegP7GeiANrkB0PKURw5SBv/3tbzj+0P2cxZJAQ3/4wx9GElJSxT333PPa176WQ2bgovJx26GbcT7ecsstZNx1110/+MEP4iJEZ5umR52TCzOCU4Rx7WFn4AHES4iH7r777uMsjj+sGSwPEmBbUDKtpkX48rASSICJcPvtt7/zne/EsMCOQZKTTz4ZE2H33Xffb7/9qB0PJsk+/elPIww+QUp43/veRwnUhcnCdtFFF1H1HnvsYfcNjYUGMXaovQiIgAiIgAiIgAiIgAhMTwLYyRjkWNq8FP/HP/6Btfz6178eexgPHS/LP/OZz/BqH/OeWTIY53QWfvKTnxx++OE474jHNsZ6v+GGG3AX0qHAJse6pqOB4Y2pTHvpVtBNIIxjjrPY8FSHf5A+BXUdcMABpMFDh3lvr8xJ/61vfYsE9CDonuAf/OMf/4hd/dnPfpaU+P7oqvzlL3/BFbj//vtj5FPOD3/4Q2Sj80Iu5KF/wcAChgpSEWb8M888c+mll+JV5D09JZCAvTYREAEREAERmHAC09Hxh1JHxeLLO+WUU3iZZsoY1xXv9PCCof7x06G20fo77bQTAZQxAQYDHnfccTbg7tprr0U3f+5znyM76U3Tkx33H6P8bDowvjaULkApzdQ57wB5YUjtuA7R1ldffTVqGz+dGQcUYoWTmIF+eN9wETLmDpfcTTfdhGC2ZgdS2UXCxUYrcCzi+CMjSt2cbpxl2L9VZFUjCQH8d5gLDM1773vfS7FWCFbFVVdddd555yEGIwexTt72trdhHPCGENcercazeckll1xwwQUf//jHed8IDWSjIhIQQFRaDQ0chciP25G24+KU48/wai8CIiACIiACIiACIjBtCeBWw1zHMseUtYmxiMq7cLPhMdp5K49NTiSD5jD78bUxbYgw9j9GOG/EKQELnxgzxTHUMYmxkDHOOYUxz+t2vHIYzySgCsoknmQ2MJCSSczGeII//elPdBDe//7340AkHuOcWTXMtjnrrLPOPvts/IBMyjn44IOXLl1K4dTyEm9j+CF9Csx7ZMYI32STTXD84XwkgPF/xx13ICQdAXMvIg8laxMBERABERCBiSUw7db4QyniF2PWLe/EXvrSl+LtQrujC3Fa4ftj7BuuK5QxG6fQqZxCdwIFVUrYdCrv93gXh/onHlWKZ42vZPC6j5Iff/xxIkmG84s9njI2YlDzzCNA35OYV4go43e/+90//vGP//e//2EHUB3JCPAy0DyPKGZKo0ZUO3Iy4wClTl2msElM4VgJ7O31Ha2gFmIoijQYEzSEQ2q0lATwHvKKEiMBO8AaRbJddtmFWphc/NBDD2Ft0C4MFOJJQy28z8S8uP/++5EZRBSIPEwNhgxpSMBrRkBRGoUgAJvFW1h7ERABERABERABERABEZieBDCSMVx5I84wOiTECMcAxrTGIMcTx+EjjzzCBBdOYdgzDPAtb3kLNjCH7LG9sYqxjfH6UY7FE8AhaI0lBtOaXHj9sJnZLJ4A/QIycsgpkmG9Uy/zdY455hjz+mFaY7ozOAD3HwsTMXaPtf/oKTC1CAufAB0TLHP8lXgtGbFImHJwSnIWGdgonGLZ0y+g10MHxDoRJoP2IiACIiACIjCBBKbdiD80JUoRFY6OR6Obdw+vFgqeQf5oXwIMc0NTos6ZC4xHj6F2eLWY9MqCd2hTcvGmjjUBUduUhuYmJcqbQXAMwmd
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1704x1276>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/jpeg": "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
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=L size=1704x1276>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(l.list_floorplans()[0])\n",
"showpics(l.list_floorplans()[0])"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "3aa1e2f0-00c4-429b-822a-a266ee5c5263",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PosixPath('data/rs/100938761/floorplans/0_159428_21croydon_FLP_00_0000.png')"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"l.list_floorplans()[0]"
]
},
{
"cell_type": "markdown",
"id": "b214c167-492f-4bfb-b4ec-fb34527c50bc",
"metadata": {},
"source": [
"# increasing percentage rate of ocr detection"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "c3da3539-96dc-41ba-a177-9dd36f01deeb",
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image\n",
"import pandas as pd\n",
"from pathlib import PosixPath\n",
"from data_access import Listing\n",
"pd.set_option('display.float_format', lambda x: '%.0f' % x)\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "deddeafc-d04b-414e-9836-22d22489eca3",
"metadata": {},
"outputs": [],
"source": [
"# find the percentage of floorplans we calculated\n",
"listings = Listing.get_all_listings()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "160957e3-7190-4bb7-be33-f371643c287f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"total pre filter: 106160\n",
"Only ones with floor plan pictures: 101162\n",
"With sqm calculated: 74212\n",
"percentage: 0.7335956189082857\n"
]
}
],
"source": [
"print(\"total pre filter:\", len(listings))\n",
"listings2 = [l for l in listings if len(l.list_floorplans()) > 0]\n",
"print(\"Only ones with floor plan pictures:\", len(listings2))\n",
"\n",
"withsqm = []\n",
"withoutsqm = []\n",
"for l in listings2:\n",
" if l.sqm_ocr is None:\n",
" withoutsqm.append(l)\n",
" else:\n",
" withsqm.append(l)\n",
" \n",
"print(\"With sqm calculated:\", len(withsqm))\n",
"percentage = len(withsqm) / len(listings2)\n",
"print(\"percentage:\", percentage)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "26c57483-51a2-4aae-8da5-90685ff827c3",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "b10b753b-7787-47e8-bc29-27b6d193511c",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 22,
"id": "6690f19b-cd5c-48ee-91d4-27ec351dbe10",
"metadata": {},
"outputs": [],
"source": [
"def analysis(path: PosixPath):\n",
" try:\n",
" filetype = path.suffix.lower()\n",
" img = Image.open(path)\n",
" pixels = img.width * img.height\n",
" x_dpi, y_dpi = img.info.get('dpi', (-1, -1))\n",
" except Exception as e:\n",
" print(path, e)\n",
" return None\n",
" return {\n",
" \"ftype\": filetype,\n",
" \"height\": img.width,\n",
" \"width\": img.width,\n",
" \"pixels\": pixels,\n",
" \"dpix\": x_dpi,\n",
" \"dpiy\": y_dpi,\n",
" }"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "69a469d7-beba-40d2-8c44-b3d55eb3de35",
"metadata": {},
"outputs": [],
"source": [
"analysiswith = [analysis(l.list_floorplans()[0]) for l in withsqm]\n",
"analysiswithout = [analysis(l.list_floorplans()[0]) for l in withoutsqm]\n",
"wth = pd.DataFrame(analysiswith)\n",
"wthout = pd.DataFrame(analysiswithout)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "b71bd8b3-7f25-48d2-ace6-28d79a8fb6ba",
"metadata": {},
"outputs": [
{
"data": {
"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>ftype</th>\n",
" <th>pixels</th>\n",
" <th>dpix</th>\n",
" <th>dpiy</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>74212</td>\n",
" <td>74212</td>\n",
" <td>74212</td>\n",
" <td>74212</td>\n",
" </tr>\n",
" <tr>\n",
" <th>unique</th>\n",
" <td>4</td>\n",
" <td>NaN</td>\n",
" <td>134</td>\n",
" <td>135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>top</th>\n",
" <td>.jpeg</td>\n",
" <td>NaN</td>\n",
" <td>96</td>\n",
" <td>96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>freq</th>\n",
" <td>56516</td>\n",
" <td>NaN</td>\n",
" <td>17230</td>\n",
" <td>17230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>NaN</td>\n",
" <td>2062357</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>NaN</td>\n",
" <td>980308</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>NaN</td>\n",
" <td>55870</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>NaN</td>\n",
" <td>1047552</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>NaN</td>\n",
" <td>2134016</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>NaN</td>\n",
" <td>2961408</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>NaN</td>\n",
" <td>4194304</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" ftype pixels dpix dpiy\n",
"count 74212 74212 74212 74212\n",
"unique 4 NaN 134 135\n",
"top .jpeg NaN 96 96\n",
"freq 56516 NaN 17230 17230\n",
"mean NaN 2062357 NaN NaN\n",
"std NaN 980308 NaN NaN\n",
"min NaN 55870 NaN NaN\n",
"25% NaN 1047552 NaN NaN\n",
"50% NaN 2134016 NaN NaN\n",
"75% NaN 2961408 NaN NaN\n",
"max NaN 4194304 NaN NaN"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wth.describe(include=\"all\")"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "0ee4772e-6fbc-47c6-aa5b-e67e0b1ba69e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"with\n",
"ftype\n",
".jpeg 76\n",
".png 18\n",
".gif 6\n",
".jpg 0\n",
"Name: count, dtype: float64\n",
"\n",
"without\n",
"ftype\n",
".jpeg 80\n",
".png 17\n",
".gif 3\n",
".jpg 0\n",
"Name: count, dtype: float64\n"
]
}
],
"source": [
"print(\"with\")\n",
"print(wth.ftype.value_counts() / wth.shape[0] * 100)\n",
"\n",
"print(\"\")\n",
"\n",
"print(\"without\")\n",
"print(wthout.ftype.value_counts() / wthout.shape[0] * 100)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "b7c2d54f-cc14-4f09-abc0-0f4032bd7f08",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: >"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"wthout.pixels.hist(bins=20)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "5582ffc9-c949-43bd-855b-ee28b7698c65",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: >"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"wth.pixels.hist(bins=20)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8a0499c2-445b-48b6-9558-217ddc3e2afe",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 29,
"id": "c4e46a78-c9a4-48b1-a4d4-24826d3311d3",
"metadata": {},
"outputs": [],
"source": [
"maxsize = 700\n",
"def showpic(imgpath, resize=True):\n",
" img = Image.open(imgpath)\n",
" if resize:\n",
" ratio = min(maxsize/img.width, maxsize/img.height)\n",
" new_size = (int(img.width * ratio), int(img.height * ratio))\n",
" \n",
" # Resize and display\n",
" img = img.resize(new_size, Image.Resampling.LANCZOS)\n",
" display(img)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "867ee3d2-6534-4491-90d2-19429afd9f9c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=1086x1110>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/100938761/floorplans/0_159428_21croydon_FLP_00_0000.png', 'estimated_sqm': None, 'text': 'ee | | TET | |\\n\\no fo}\\nJ\\n° ) | Enfuite\\nBathrobm\\nry\\n<>\\nServices/Store Hall Batcony\\nr\\n© Kitchen/Living/Dining\\n\\nBedroom | | |\\n\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.GifImagePlugin.GifImageFile image mode=P size=1128x1585>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/101369066/floorplans/0_57956_LAD180253_FLP_00_0000.gif', 'estimated_sqm': None, 'text': 'Dalgarno Gardens\\n\\n: Reception/ z E g\\nDining Room 5 © ®\\n27\\'8\" x 19\\'5\" ExXx8\\npossesses One\\n; 8.43 x 5.92m 8 5\\n\\nKitchen|\\n\\n12\\'3\" x 8\\'4 Bedroom\\n3.73 x 2.6 15\\'4\" x 12\\'6\"\\n4.67 x 3.81m\\n\\nBedroom\\n13\\'5\" x 10\\'11\"\\n4.09 x 3.33m\\n\\nBedroom\\n12\\'6\" x 12\\'\\n3.81 x 3.66m\\n\\nGround Floor\\nFor Illustration Purposes Only - Not To Seale\\n\\nThis floor plan should be used as a general outline for guidance only and does not constitute in whole or in part an offer or contract.\\nAny intending purchaser or lessee should satisfy themselves by inspection, searches, enquiries and full survey as to the correctness of each statement.\\nAny areas, measurements or distances quoted are approximate and should not be used to value a property or be the basis of any sale or let.\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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eEtD+JHjMeJ1t901zAbfzrQzcCIbsYU46ivYooYoE2QxLGvXCKAKcYoyclFJPcigDifDni/wJqWsJY+HzbLqEyNtENk0RZQNx+baOOPWsHw/4hsPhvPf+GfEpls7RbuW40++aJmhmhkbdtyAcMCSCK9VEaKchFB9QKbLFHMmyVEdT2ZcigDhdI8Y3fi/xfFH4eBfw5axuby+lgIWeQ/cSInB46k//WrL07WofhprWraZr0c0Gi317Je2OorGzxDzMFo3IHykHpXp6IkaBEVVUdAowBQ6JKhSRVZT1DDINAHlfiDX7b4lS2Xhzw2JryxN1HPqWoCJlhiiRg20EgbmJA6f/q2rf/kvN5x/zLyf+jzXdRxRwoEiRUUdFUYFO2jduwN3TOKAPCviVpN54TjurezhL6Drd7BPsXpZ3SyKzYH91wD+IrpfFWv6b4a+Mel6jq1wYLb+xZY/MEbP8xl4GFBPY16gVDDDAEe4pGRGOWVSfcUAeVeJ/G9n420Wfwz4SS5vrvUgIJJ/s7pDbxE/O7swHbPHvXpthaJYafbWcZJjt4liUn0UAD+VWQoUYUAD2FOoA828O6bYah8TfHX26xtrnZJZ7PPhV9uYjnGRXay2Fnp+l3iWVrBbI0TsyxRhATt6nArRCgEkAAnqcdafQB438O/iV4T0PwFpGmajqbQ3dvEVkj+zyNtJZj1C46EVs+JL06mPDvj7w5FJqUGmySiWGJCJJbd/kkKqQCSpXOK9H8mL/nmn/fIpwUKMKAB6AUAef3Hxg8KfY99jcz318wxHp8Ns/ns/ZSCOOayU8D6xcfC27ilVY/EF1fHWRETwk+8OIyfoMfU16ktvCsplWGMSN1cKMn8amoA88tvi34XWz/4nE82l6lGMT2FxbyearjqAAPm56Gqvh63vdXu/FHjG9tJbOK/tPs1jbzrtk8hFPzsO24nOK9Ge3gkkWR4Y2kX7rMoJH41PQB5V4F8E+G9f+FekLfaNZvNcWpElwIVWbOSNwfGcitfwLqt5Y3d54N1hlOo6WA1tMFCi7tT91wBxuHQ+/wCNd4AFGAAB6Ck2ru3bRuHfHNAD6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
"image/png": "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
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=640x1048>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/102360773/floorplans/0_104911_30366605_FLP_00_0000.jpeg', 'estimated_sqm': None, 'text': 'SECOND FLOOR\\n\\nBALCONY\\n\\nLOUNGE/KITCHEN Be\\n\\n7.81m x 3.42m\\n25\\'7\" x 11\\'3\"\\n\\nS\\nPig BATHROOM\\n\\nBEDROOM Ee\\n3.80m x 4.10m x\\n126\" x 13\\'5\\' RY\\nHALLWAY < CUPBOARI\\n\\n\\\\\\n\\n/ARDROBI 5 \\\\._ CUPBOAR\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/png": "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7sVCAiRAAiRAAiRgbgJBIYi2bdsG+ZFSWVmJqupqzJmbP+nMOBwOnDpxGsUlRWPqdnf1oKO9HQtLF445Pv5JW2vb+EN8TgIkQAIkQAIkYEICQSGIpsM9LCwMcXFjt10OO4bR2UnLz3S48loSIAESIAESMBMBUwsicYiWn7Onz42ZM5vN5nG5bExlPiEBEiABEiABEjA9AVMLIrEOyc/4JbOenh40NzabfnI5QBIgARIgARIgAWMETC2IdATjnacHBwahlJJ+mr9JgARIgARIgARCnAC33Yf4C4DDJwESIAESIAESACiI+CogARIgARIgARIIeQIURCH/EiAAEiABEiABEiABCiK+BkiABEiABEiABEKeAAVRyL8ECIAESIAESIAESICCiK8BEiABEiABEiCBkCdAQRTyLwECIAESIAESIAESoCDia4AESIAESIAESCDkCVAQhfxLgABIgARIgARIgAQoiPgaIAESIAESIAESCHkCFEQh/xIgABIgARIgARIgAQoivgZIgARIgARIgARCngAFUci/BAiABEiABEiABEiAgoivARIgARIgARIggZAnQEEU8i8BAiABEiABEiABEqAg4muABEiABEiABEgg5AlQEIX8S4AASIAESIAESIAEKIj4GiABEiABEiABEgh5AhREIf8SIAASIAESIAESIAEKIr4GSIAESIAESIAEQp4ABVHIvwQIgARIgARIgARIgIKIrwESIAESIAESIIGQJ0BBFPIvAQIgARIgARIgARKgIOJrgARIgARIgARIIOQJUBCF/EuAAEiABEiABEiABCiI+BogARIgARIgARIIeQIURCH/EiAAEiABEiABEiABCiK+BkiABEiABEiABEKeAAVRyL8ECIAESIAESIAESCCcCEiABEiABEiABCYhYLuIt9/tx90PrkCEoweXPtiNypIdmHfmMxTelIcPDtXANmxDXXk9khbMQSysyFi5DZsWOFB1YA++vjYES9gwhgZtsGavwbaNw/hsdye2P7gaUfqtHc34/K3TWLxzHg7++jMMZaRBrBZhcQuwaWsM9v7vQyh4+ptYlXzDljF04R3s7tuB+1dF6K3w9xQJUBBNERwvIwESIAESCCUCQxgYsMGBflR8+iZOZ92NBwtjcPHoAKy5a7HzwbWAow2fv7wPC+7fhblWYWND5Yev4EjGTjz4cKqSSFLs6GhoRRha0a/aG1scGBwYVDXsGEpZip0Prb8hlmznMRQPXHnrEyQ/vh0F0SNXDtsHMGBzjG2Gz6ZE4IbMnNLlvIgESIAESIAEQoXAEK59/joOx2/DA2tSNeuNx5F3H8NXzUtwz2pdDEltK5KyMhA3hU/fsLgS7NweiwOvH0ITNZBH9FM5SQvRVKjxGhIgARIggZAj4Kj7DO8OP4DvfyPzurXHMwJ7Uz0c6Rtx3ZgzobKj/jh2v17nJKz6UNmSjGWqpr3+xOi5sORFuG3TyOXWnM1KjO3Ga+9exEO7ShA5oVUemCoBCqKpkuN1JEACJGAyAsPDwygvq5jWqBwOByorqhBmCZtWO9O9eKB/AA67fbrNjLnekrMFOzJOYvfhdNy/LgOTfYCGJSZguKtdLbNlOImeG01asleNXRZzNOKjl49rFazZK8eeU0tmeoktuRt3t7+KN79MwEPp+lH+ni6ByeZ
"text/plain": [
"<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=580x746>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/106419218/floorplans/0_159428_206QH_FLP_00_0000.png', 'estimated_sqm': None, 'text': 'UVING AREA, ey\\n\\nAREA,\\n>\\nBEDROOM\\nmenu BATHROOM\\nApartment Eis S0bsam\\nKicheniLvngDinng 10x27\" 335x840\\n\\nBedroom | 1010\" 1re 331x350\\n\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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
"image/png": "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
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1182x1631>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/109211666/floorplans/0_568_LEY210167_FLP_00_0001.jpeg', 'estimated_sqm': None, 'text': 'es)\\nes)\\nDining/Kitchen\\n3.78 m x 29.41m\\n125\" x 966\"\\n\\nLiving Room\\n5.08 m x 419m\\n168\" x 139\"\\n\\nGround Floor\\n\\nThis plan is illustrative only,\\nits details cannot be relied upon and no liability is taken for any errors.\\n\\nFirst Floor\\n\\nTotal approx floor area: 609.6 ft? (56.6 m?)\\nGround Floor: 31.5 ft? (29 m?)\\nFirst Floor: 578.0 ft? (53.7 m?)\\n\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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
"image/png": "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
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=856x613>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/109399676/floorplans/0_74302_LATYM_000716_FLP_00_0000.jpeg', 'estimated_sqm': None, 'text': 'TOTAL APPROX FLOOR AREA 888 SQ.FT. (830 SQ.M)\\n\\nKITCHEN / LIVING ROOM\\n\\nBEDROOM\\n197 x 122 219% 139\\n6.0m x3.7m 6.6m x4.2m\\n\\n7x6\\n2.1m x 1.8m,\\n\\nBEDROOM\\n1411 x94\\n4.5m x2.8m\\n\\n191475\\n3.4m x 2.3m\\n\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApgAAALQCAIAAAC7WJefAAEAAElEQVR4AezdB6BcRdUH8IQQIIXQm9J7lSK9SEd6B2kWpCgoICIqyEe1AxYQARUQpIMoTXqX3qUjvQakJZBA+vfbd2B9JruP7Mv2Pdd4mZ07d+bMf+ad/5wz5fadMGFCn7wSgUQgEUgEEoFEoDURmKo1xU6pE4FEIBFIBBKBRKCAQBJ59oNEIBFIBBKBRKCFEUgib+HGS9ETgUQgEUgEEoEk8uwDiUAikAgkAolACyOQRN7CjZeiJwKJQCKQCCQCSeTZBxKBRCARSAQSgRZGIIm8hRsvRU8EEoFEIBFIBJLIsw/UCoEPPvhg/Pjxch82bJi7EwvGdF1R3ujRo0eMGDFu3Lj4GecZFE81iBfjUU3vxRLfeeedKPT999+vaYmZeSJQUwTGjh0r/+Jf1siRI6M43Tse+fnRRx/VVIbMvM4I9C0qsjoXnMW1NwJUhq419dRT9+3bt3tNRX744YciBwwYEPGjRo3C79N0XWK8SAdJ0L9/fwE5dH+9FuE333xz9tlnj5yHDx8+ePBgQrpqUVbmmQjUGgF/O/369fNnNe200yorhqfGqbPOOquxtfiZZ545/ir91NtrLU/mXwcEksjrAHJHF4G2cfYzzzzj/tnPfhYWNAtzHENPNdVUqNqd3gmM/BSWQOTQoUNpHPxea/iGDBnCQDGYUBDdR8733nuvKFKtS8/8E4EqIhAsbhjqT8xQWK+O+zzzzPOvf/1rxhlnVJa/MsNlPbwOo+QqVi2z6gGBmps7PZSdj9obAcqCpsDE1MrTTz/N8N1ll10YAeh5uummU3cKBWcHZdI7UmJ9JoIXWcZnnHHGBhtssNJKK9UUJY5HIr377rszzDBDyBBmSlrkNYU9M68RAogcefvL8tdkNGz2atCgQcoSj8X1agGXAas0NZIhs60/Aknk9ce8U0rEytNPP31Y2J/5zGfuv//+5557bvHFF0fe5qFZveiToqFcwjiYbbbZsLiLDmLB4/L55puv1mANHDiQAFhcQUhd0dQcqcTXuujMPxGoEQLB4jJnjkcRQec6tr+1cLmHyZ5GeY2aoM7ZJpHXGfBOKQ5bF3UEalxuueXuvPPOW265hTn+yCOPPPbYY3gag7o8pXewPh5daKGF3FdbbbW77rpriSWWKE5d1w41dgn3ACOG+cJkMcIw+KhdcZlzIlBrBPxNhUf9pZdemn/++eMnCleuaSNELobTy+VnrYXJ/OuDQM6R1wfnjisl5rlV2/RzONJx8+WXX85EwOW0idU3yNtPRI6855prLvdll12WEx6nemunnXaae+65i6OBGiGoUMMFwsRgYqONNnr77beZLH7WqMTMNhGoHQLo2UjUn4+Bsj8uQ+eYF+foMkg1bPXnhsj9WbkL106SzLmeCKRFXk+0O6gsZKy2LINQFjTI8ssvf/fdd4vcddddZ5lllmuvvfbGG2/0lN6hfVgMK6+8Mh41RX3ssccusMACjIk6TONxoSs6aFtxRhtizjzzzHStd1BnbaOqxp/M1Vdf/cc//tFAOTq2AEe6XaBI3QgbzYddjsvj77SNAOjQqiSRd2jD16fa9EUUJMBEwNPnnntuxKBtVsIVV1xBlVA3X/ziF61ro4aeffZZSmettdaKpWe1lpNeC6VmzEEeQwqCGWoYYSB4dG67TihHfgWJJai1SJl/IvCpCOiKHOMYWkr0bMWJQEwSRXf90pe+dMEFF8R4VLx+W5wzivly6dMiB0J7XEnk7dGOTVcL2gRBImmjfheVgSY5sWkT5L3zzjvTPquvvrqJ8JlmmomWCZUk2T//+c8FF1zQZLmlcPXxb9OJISQQ6TgiuV966aV+YncV4T8gHm+ksUjTAZ0CdSoCJoB0S1QdLM6RztQOMBZddNGtt976yiuv9JfFo+5PrFNB6pR6J5F3SkvXuZ5B5ArFzcJYMGbH11xzzcsuu+w///lP7CkPFeNpmAvPP/+8le1f+cpXvCiyDjIbapAwLnTO/ratnB40CllhhRVuuOEGglk0RFoK0eCjDiJlEYnApyKgo4ZR3j2liaF11lmHK0t3tb7ELJU/Iua4P8DuyTLcfgjUQ1e2H2pZo09FADVGGuxI4xR5famllrr99tufeuopZm74tCOZMOvhpptuWmyxxZZZZhlr0DBo8a1PLW5KEoTDwDiDnGTgUcfuil5llVUchvXiiy/OO++88sfiIiWekrLy3USgKgjEFjImOKr2t6bT6qjrr7/+l7/85T//+c8s9TDTlcUDj9qrUmhm0rQIJJE3bdO0tmDhVA86R9J+Bp1TK1a9PfDAAwsvvHAQZNQTRzLHn3zyyb333ltiqofPsA5ETirc7CIqOQkT0lpaf9RRR+F1h9Jcf/31xDawiASt3TApfbsg4G+EtR21ee211z7/+c9vu+22P/3pT88666yYCYqV6vptfaao2gXXlqxHEnlLNlvzC40XcSQ5sXLQuTu+xIVc1ibC7SZ3SoynLnPPHNrYfc4557RY3VvMX9ZGHRSQ0hUXogZPh0vfhjQz5SeffPL2229v5d19990XelMVpM8rEWgsAoaY0WnN+LzwwgsGxzvuuOM555zjr8zw1yBYRw1jnZzZaRvbWHUoPYm8DiB3YhEIMhRNsHhAEEzpGDXWg/3i7pjbI6YDx6Br4403jhfdaZ9g2VrDRyoXng59Rw/SkgrlvTSYOP/887krrcuzJZcB1L06tRYs808EyiFgJsilr1rAseKKKzp0gUdd52SLizQCtk6Td91flhyKi+DK5ZbxrY5AEnmrt2Dzyh9kjB0xugtZRgwVw8Y1U/7yyy+zvEXSO/feey8qZVhQOviSPuLNrkPdYtGQgohHDxJGAJEHtYckZ599NkXpvDmH05nar4NUWUQi0DMC/oj81eiQW2655e67737KKadIX/yr8UcUpw6L9GdVnz+lngXOpzVFIIm8pvB2euZhvyJFVxELYfxt1/g111yz9NJL00cWseP1PffcUxpU6k714P7iz+K7VQ8oPfJULmmjULaOsEfUZVD773//++OOO84xNY8//rgPSVGOnkosmYsN1L2CVRcyM+xkBIr0HL0OFBG47rrrdthhhyOOOOLAAw+ML/0UCVvP9JY+aUgaHbWTAeyEuieRd0IrN1cd0ST9Yqbc2S+PPvooB7sT3+wdtyonBGXEY0f3BrIjCUOBEsMSeh902W+//YTNRP7hD3+wrj6UKQWK6TnhcXlzoZzStAUC/hDQs46nN5r5VqdwWTkYcYsttvjTn/6kQ4rkQne0cLqL2qLNe1OJJPLeoJbvTCECyI916zLx7JR1HkInu010bAXlNYWlTMnrJORXlwNGDwVqb+4PfvADE/mbbbbZgw8+SGmag+RakMbmn+JpWVNSaL6bCEyEQLiIDBN1SP4hg2Dd0rLQvfbai5fI6o1IH9s1J3o3f3YOAknkndPWTVFT9Ewrxcpwtvgdd9zhFAuSOYMluJDCCnO8seKGGOE8JwkziBpF3o69ZP3YXy6SmW5SQKAZBG4sXFl67RDA3LqfDmnUaDOFgMs2sz322MMoUxflPDfWNJoUqJ0YmXMzI5BE3syt04ayFe1srkI7zXyeHJGvt956qJF68jTc6ajR1dj6x7wjqRwWy1sQC99ISGMGwVOjRiRhLTVc2sZilaXXDgFdLnqXnWYx/eTnwQcfbHLH4LLoCsoeWLsmaP6cCwuL8koE6oYAdYP8KCDWA450FpWYL3zhCyKxY1FnkSd4vW6CTVQQeYoz9Pa4x1Nz4aSlOllIYqRB6pJZ+j7R6/kzEagKAv4ojBSjgzG7DS5N6Ni06e4vSFeMRyx1T6WsSqGZScshkBZ5yzVZawuMnlUgLG93Rrm947HbNSI9bRIbN0xw6hJVm4OkQ330xcoj4bhTnZ6+8cYbc8wxR+rQ1u6XzSp9DBPjQFYyYm5DyaFDh3Kz271pA4UeqO/F+hI2enHherNWKOWqCQJJ5DWBNTPtAYHi0jAqiephlDNwi6rKi0HkPeRQh0dEKq4T5tLE2S4x9KYBBwlDYIuPsHisYK+DVFl
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=664x720>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/109595123/floorplans/0_74302_LATYM_000722_FLP_00_0000.jpeg', 'estimated_sqm': None, 'text': 'omnes\\ne--\\n\\note 2 iieene\\n= =\\n© enon? _\\no ° @\\nco\\n\\npartment) 250 (a\\nFoor o: [ae\\nLiving Room\\nKotchen\\n\\nMaster Bedroom\\n\\nfirm x 0\\n25m x 279m\\n\\nsexe?\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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
"image/png": "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
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=664x720>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/109599476/floorplans/0_74302_LATYM_000725_FLP_00_0000.jpeg', 'estimated_sqm': None, 'text': 'omnes\\ne--\\n\\note 2 iieene\\n= =\\n© enon? _\\no ° @\\nco\\n\\npartment) 250 (a\\nFoor o: [ae\\nLiving Room\\nKotchen\\n\\nMaster Bedroom\\n\\nfirm x 0\\n25m x 279m\\n\\nsexe?\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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
"image/png": "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
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=853x613>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/109612856/floorplans/0_74302_LATYM_000727_FLP_00_0000.jpeg', 'estimated_sqm': None, 'text': 'BEDROOM 91x75\\n1411 x94 3.4m x 2.3m\\n4.5m x2.8m\\n\\nED) 7x6\\n2.1m x 1.8m\\n\\n=\\n\\nKITCHEN / LIVING ROOM\\n29x 139\\n6.6m x4.2m\\n\\nBEDROOM\\n197 x 122\\n6.0m x3.7m\\n\\nBALCONY\\n120% 414\\n3.9m x 1.3m\\n\\nTOTAL APPROX. FLOOR AREA 888 SQ.FT. (830SQ.M.)\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"data": {
"image/jpeg": "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
"image/png": "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
"text/plain": [
"<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=893x1201>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'floorplan_path': 'data/rs/109648052/floorplans/0_74302_LATYM_000728_FLP_00_0000.jpeg', 'estimated_sqm': None, 'text': 'TYPE 2D\\n\\n2 BEDROOM APARTMENT\\n\\nAPARTMENT E= |\\n\\nPLooR 2\\nLivinid id Git SES7MM x S27 SM IF A= K 14? O*\\nKT KEM 7OMM x 319MM ie ae x 7! OF\\nBEDROOM 1 S6220M x 27SaMM Wwen= «a2\\nBEDROOM > TIOSMM x Fe GeM lor a= x Nr ae\\nBALCONY WOIMM xX 44Q0mm xa\\nTOTAL ANEA me som a2760 FT\\nBALCONY aan io 26 oF\\n\\nREDROOM I\\n\\n{I\\n\\ninewne\\n\\nENTRANCE\\n\\n¥\\n'}]\n",
"#######################################\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
}
],
"source": [
"\n",
"for l in withoutsqm[:10]:\n",
" imgpath = l.list_floorplans()[0]\n",
" showpic(imgpath, False)\n",
" with open(l.path_floorplan_ocr_json()) as f:\n",
" js = json.load(f)\n",
" print(js)\n",
" print(\"#######################################\\n\\n\\n\\n\\n\")\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a6c7c047-616f-4930-bda9-7c9285b1affa",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}