{"id":3119,"date":"2021-02-17T11:00:35","date_gmt":"2021-02-17T11:00:35","guid":{"rendered":"https:\/\/thenextweb.com\/?p=1338837"},"modified":"2021-02-17T11:00:35","modified_gmt":"2021-02-17T11:00:35","slug":"how-data-science-can-help-you-find-your-ideal-house-at-an-affordable-price","status":"publish","type":"post","link":"https:\/\/www.londonchiropracter.com\/?p=3119","title":{"rendered":"How data science can help you find your ideal house at an affordable price"},"content":{"rendered":"<br \/>\n<h2 id=\"4466\" class=\"lw lf gg ba lx ly lz jv ma mb mc jy md me mf mg mh mi mj mk ml mm mn mo mp mq hd\">Some implementation details (before the fun stuff)<\/h2>\n<p id=\"f1be\" class=\"jr js gg jt b hf mr jv jw hi ms jy jz ka mt kc kd ke mu kg kh ki mv kk kl km fz hd\" data-selectable-paragraph>To be honest,&nbsp;the implementation has been quite easy, and there is really nothing new or special: just a bunch of scripts to collect the data and some basic Pandas transformations. The only parts that might be worth highlighting, are the&nbsp;interaction with the Google APIs&nbsp;and the&nbsp;estimation of the time the property spent on the market.<\/p>\n<blockquote class=\"ll lm ln\" readability=\"5.2142857142857\">\n<p id=\"3c5a\" class=\"jr js lo jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>Data below are not coming from scraping, and have been generated using&nbsp;<a class=\"ei lk\" href=\"https:\/\/gist.github.com\/aialenti\/1575319259aecf36c7ca9c4f42115062\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">this script<\/a>.<\/p>\n<\/blockquote>\n<p id=\"1e22\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>Let\u2019s have a look at the raw data:<\/p>\n<figure class=\"kw kx ky kz la iz\">\n<div class=\"jk s am\">\n<div class=\"ahn jn s\">\n<figure class=\"post-image post-mediaBleed alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1339181 lazy\" src=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02.png\" alt width=\"1958\" height=\"688\" sizes=\"(max-width: 1958px) 100vw, 1958px\" data-lazy=\"true\" data-srcset=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02.png 1958w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02-280x98.png 280w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02-540x190.png 540w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02-270x95.png 270w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02-796x280.png 796w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.16.02-1592x559.png 1592w\"><\/figure>\n<\/div>\n<\/div>\n<\/figure>\n<p id=\"5851\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>As I anticipated, the file contains the following columns:<\/p>\n<ul class>\n<li id=\"3044\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">id<\/strong><\/code>: An identifier for the listing<\/li>\n<li id=\"fde5\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_address<\/strong><\/code>: The address of the property<\/li>\n<li id=\"b657\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_d_code<\/strong><\/code>: The Dublin Area Code. Each Dublin area is identified by a code in the format&nbsp;<code class=\"jl oc od oe lg b\">D&lt;number&gt;<\/code>.<span>&nbsp;<\/span>When the<code class=\"jl oc od oe lg b\">&lt;number&gt;<\/code>&nbsp;is even, the address is located on the south of the Liffey&nbsp;(the river that cuts the city),&nbsp;while if the number is odd, the address is located on the north side of the river.<\/li>\n<li id=\"3168\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_link<\/strong><\/code>: The link to the original page where the listing has been retrieved.<\/li>\n<li id=\"eedd\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_price<\/strong><\/code>: The property asking price in Euro.<\/li>\n<li id=\"fd98\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">type<\/strong><\/code>: The property type (<code class=\"jl oc od oe lg b\">HOUSES<\/code>,<span>&nbsp;<\/span><code class=\"jl oc od oe lg b\">APARTMENTS<\/code>,<span>&nbsp;<\/span><code class=\"jl oc od oe lg b\">NEW HOUSES<\/code>).<\/li>\n<li id=\"33c8\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_bedrooms<\/strong><\/code>: Number of bedrooms.<\/li>\n<li id=\"1fa0\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_bathrooms<\/strong><\/code>: Number of bathrooms.<\/li>\n<li id=\"be0f\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_ber_code<\/strong><\/code>: A code that identifies the energy rating, the closer to the letter A, the better the energy rating.<\/li>\n<li id=\"c0e0\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_views<\/strong><\/code>: The views obtained by the listing (if available).<\/li>\n<li id=\"2bb6\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">_latest_update<\/strong><\/code>: When the listing has been updated or created (if available).<\/li>\n<li id=\"676d\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km ng mz na hd\" data-selectable-paragraph>\n<code class=\"jl oc od oe lg b\"><strong class=\"jt gh\">days_listed<\/strong><\/code>: This is a calculated field and it\u2019s the difference between the date I collected the data and the<span>&nbsp;<\/span><code class=\"jl oc od oe lg b\">_last_update<\/code><span>&nbsp;<\/span>column.<\/li>\n<\/ul>\n<h2 id=\"465a\" class=\"le lf gg ba lx nh ni hh ma nj nk hk md hl nl hn mh ho nm hq ml hr nn ht mp no hd\" data-selectable-paragraph>Address geocoding<\/h2>\n<p id=\"532d\" class=\"jr js gg jt b hf mr jv jw hi ms jy jz ka mt kc kd ke mu kg kh ki mv kk kl km fz hd\" data-selectable-paragraph>The idea is to&nbsp;put this stuff on a map and enable the power of geolocalized data. To do so, let\u2019s see how to get&nbsp;latitude and longitude&nbsp;using Google API.<\/p>\n<p id=\"cbd8\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>If you want to try this, you\u2019ll need a Google Cloud Platform account and you may want to<span>&nbsp;<\/span><a class=\"ei lk\" href=\"https:\/\/developers.google.com\/maps\/documentation\/geolocation\/overview\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">follow the guide to get an API key and to enable the appropriate API<\/a>. As I wrote earlier, for this project I used the<span>&nbsp;<\/span><a class=\"ei lk\" href=\"https:\/\/gist.github.com\/aialenti\/18b30eecdc8cbc333d6e3e43693f1b78\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">Geocoding API<\/a>s, the<span>&nbsp;<\/span><a class=\"ei lk\" href=\"https:\/\/cloud.google.com\/maps-platform\/routes\/?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=FY18-Q2-global-demandgen-paidsearchonnetworkhouseads-cs-maps_contactsal_saf&amp;utm_content=text-ad-none-none-DEV_c-CRE_397052992685-ADGP_Hybrid%20%7C%20AW%20SEM%20%7C%20SKWS%20~%20Routes%20%7C%20EXA%20%7C%20Directions%20API-KWID_43700049595992223-kwd-445998650766-userloc_1007850&amp;utm_term=KW_directions%20api-ST_directions%20api&amp;gclid=CjwKCAiAxeX_BRASEiwAc1QdkdVb470bRzIM_td7NiwqolJjURJ-gT0OTWD-Olu3O2HkNjM8SpYeZRoCaoQQAvD_BwE\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">Directions API<\/a>, and the<span>&nbsp;<\/span><a class=\"ei lk\" href=\"https:\/\/developers.google.com\/places\/web-service\/overview?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=FY18-Q2-global-demandgen-paidsearchonnetworkhouseads-cs-maps_contactsal_saf&amp;utm_content=text-ad-none-none-DEV_c-CRE_397052992532-ADGP_Hybrid%20%7C%20AW%20SEM%20%7C%20SKWS%20~%20Places%20%7C%20EXA%20%7C%20Places%20API-KWID_43700049595992202-kwd-332054283724-userloc_1007850&amp;utm_term=KW_places%20api-ST_places%20api&amp;gclid=CjwKCAiAxeX_BRASEiwAc1Qdka6FD6ric2izod5DyqmIpewr8-vNsGA_2kTG4bGl_i7oYK0fL58HBxoCI2MQAvD_BwE\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">Places API<\/a>&nbsp;(so you will need to enable these specific API when you create the API key). Below the snippet to interact with the Cloud platform.<\/p>\n<figure class=\"kw kx ky kz la iz\">\n<\/figure>\n<h2 id=\"0873\" class=\"le lf gg ba lx nh ni hh ma nj nk hk md hl nl hn mh ho nm hq ml hr nn ht mp no hd\" data-selectable-paragraph>Estimating the time-on-market<\/h2>\n<p id=\"9351\" class=\"jr js gg jt b hf mr jv jw hi ms jy jz ka mt kc kd ke mu kg kh ki mv kk kl km fz hd\" data-selectable-paragraph>Let\u2019s focus on the data below:<\/p>\n<figure class=\"kw kx ky kz la iz\">\n<div class=\"jk s am\">\n<div class=\"aho jn s\">\n<figure class=\"post-image post-mediaBleed alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1339187 lazy\" src=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.23.36.png\" alt width=\"1428\" height=\"676\" sizes=\"(max-width: 1428px) 100vw, 1428px\" data-lazy=\"true\" data-srcset=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.23.36.png 1428w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.23.36-280x133.png 280w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.23.36-540x256.png 540w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.23.36-270x128.png 270w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.23.36-796x377.png 796w\"><\/figure>\n<\/div>\n<\/div>\n<\/figure>\n<p id=\"7fa2\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>As you can see in this sample, the number of views associated with the properties are not reflected in the number of days the listing has been live:&nbsp;for example the house with&nbsp;<code class=\"jl oc od oe lg b\">id=47<\/code>&nbsp;has ~25k views, but apparently has been listed the exact date I downloaded the data.<\/p>\n<p id=\"8f99\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>This issue is not present for all the properties, though; in the sample below, the number of views is more consistent with the days listed:<\/p>\n<figure class=\"kw kx ky kz la iz\">\n<div class=\"jk s am\">\n<div class=\"ahq jn s\">\n<figure class=\"post-image post-mediaBleed alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1339195 lazy\" src=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.25.48.png\" alt width=\"1444\" height=\"716\" sizes=\"(max-width: 1444px) 100vw, 1444px\" data-lazy=\"true\" data-srcset=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.25.48.png 1444w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.25.48-280x139.png 280w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.25.48-540x268.png 540w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.25.48-270x135.png 270w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.25.48-796x395.png 796w\"><\/figure>\n<\/div>\n<\/div>\n<\/figure>\n<p id=\"aaab\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>How can we exploit the knowledge above? Easy:&nbsp;we can use the second dataset as the training set for a model, that then we can apply to the first dataset!<\/p>\n<p id=\"f7ef\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>I tried two approaches:<\/p>\n<ol class>\n<li id=\"71fe\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km my mz na hd\" data-selectable-paragraph>Take the \u201cconsistent\u201d dataset and calculate the average views per day, I then applied that average to the \u201cunknown\u201d dataset. This solution is not completely unreasonable, but it has the problem that all the houses are placed in the same bucket:&nbsp;it is likely that a house worth 10M Euro could have fewer views per day, as that budget is reserved for a small niche of people.<\/li>\n<li id=\"6607\" class=\"jr js gg jt b hf nb jv jw hi nc jy jz ka nd kc kd ke ne kg kh ki nf kk kl km my mz na hd\" data-selectable-paragraph>Training a Random Forest model on the second dataset and apply it to the first.<\/li>\n<\/ol>\n<figure class=\"kw kx ky kz la iz fs ft paragraph-image\">\n<div class=\"jb jc am jd v je\" tabindex=\"0\" role=\"button\">\n<div class=\"fs ft of\">\n<div class=\"jk s am jl\">\n<div class=\"og jn s\">\n<p><img decoding=\"async\" loading=\"lazy\" class=\"abx aby eq fe fa jg v c lazy\" src=\"https:\/\/miro.medium.com\/max\/1876\/1*JjuwBRU4Kj8oSeqyqH1jHA.png\" sizes=\"700px\" alt=\"Image for post\" width=\"938\" height=\"572\" data-lazy=\"true\" data-srcset=\"https:\/\/miro.medium.com\/max\/552\/1*JjuwBRU4Kj8oSeqyqH1jHA.png 276w, https:\/\/miro.medium.com\/max\/1104\/1*JjuwBRU4Kj8oSeqyqH1jHA.png 552w, https:\/\/miro.medium.com\/max\/1280\/1*JjuwBRU4Kj8oSeqyqH1jHA.png 640w, https:\/\/miro.medium.com\/max\/1400\/1*JjuwBRU4Kj8oSeqyqH1jHA.png 700w\"><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/figure>\n<p id=\"3917\" class=\"jr js gg jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>The results need to be read very carefully, knowing that&nbsp;the new column will be a rough approximation of the real values:&nbsp;I used them as a starting point for digging a bit more on properties where something seemed odd.<\/p>\n<figure class=\"kw kx ky kz la iz\">\n<div class=\"jk s am\">\n<div class=\"ahr jn s\">\n<figure class=\"post-image post-mediaBleed alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1339196 lazy\" src=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.48.13.png\" alt width=\"1544\" height=\"892\" sizes=\"(max-width: 1544px) 100vw, 1544px\" data-lazy=\"true\" data-srcset=\"https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.48.13.png 1544w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.48.13-280x162.png 280w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.48.13-467x270.png 467w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.48.13-234x135.png 234w, https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2021\/02\/Screenshot-2021-02-16-at-14.48.13-796x460.png 796w\"><\/figure>\n<\/div>\n<\/div>\n<\/figure>\n<h2 id=\"ec9f\" class=\"lw lf gg ba lx ly oh jv ma mb oi jy md me oj mg mh mi ok mk ml mm ol mo mp mq hd\">The analysis<\/h2>\n<p id=\"5e4f\" class=\"jr js gg jt b hf mr jv jw hi ms jy jz ka mt kc kd ke mu kg kh ki mv kk kl km fz hd\" data-selectable-paragraph>Ladies and Gentlemen: the<span>&nbsp;<\/span><strong class=\"jt gh\">final dashboard<\/strong>. If you want to play around with it<span>&nbsp;<\/span><a class=\"ei lk\" href=\"https:\/\/datastudio.google.com\/s\/qKDxt8i2ezE\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><strong class=\"jt gh\">just follow this link<\/strong><\/a>.<\/p>\n<blockquote class=\"ll lm ln\" readability=\"7.0252100840336\">\n<p id=\"caff\" class=\"jr js lo jt b hf ju jv jw hi jx jy jz ka kb kc kd ke kf kg kh ki kj kk kl km fz hd\" data-selectable-paragraph>Note: Google Data Studio would allow embedding reports on Medium (as you can see<span>&nbsp;<\/span><a class=\"ei lk\" href=\"https:\/\/towardsdatascience.com\/how-to-train-your-unicorn-b6b4f4d50aa2\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">in this other article I wrote<\/a>). Unfortunately the Google Maps module does not work when embedding&nbsp;in&nbsp;an&nbsp;article, so I needed to fall back to screenshots.<\/p>\n<\/blockquote>\n<p> <a href=\"https:\/\/thenextweb.com\/neural\/2021\/02\/17\/how-data-science-help-you-find-house-at-affordable-price-syndication\/\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some implementation details (before the fun stuff) To be honest,&nbsp;the implementation has been quite easy, and there is really nothing new or special: just a bunch of scripts to collect the data&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3120,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/posts\/3119"}],"collection":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3119"}],"version-history":[{"count":0,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/posts\/3119\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/media\/3120"}],"wp:attachment":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}