{"id":180,"date":"2014-10-05T21:13:52","date_gmt":"2014-10-05T21:13:52","guid":{"rendered":"http:\/\/www.marekrei.com\/blog\/?p=180"},"modified":"2019-09-27T23:37:58","modified_gmt":"2019-09-27T23:37:58","slug":"political-ideology-detection","status":"publish","type":"post","link":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/","title":{"rendered":"Political ideology detection"},"content":{"rendered":"<p>Neural networks have a range of interesting applications, and here I will discuss\u00a0on one them: recursive neural networks and the detection of political ideology. This post is a summary and analysis of a recent publication by Mohit Iyyer, Peter Anns, Jordan Boyd-Graber and Philip Resnik: &#8220;<a href=\"http:\/\/www.aclweb.org\/anthology\/P\/P14\/P14-1105.pdf\">Political Ideology Detection Using Recursive Neural Networks<\/a>&#8220;.<\/p>\n<h2>The Task<\/h2>\n<p>Given a sentence, we want the model\u00a0to detect the political ideology expressed in that sentence. In this research, the authors deal with US politics, so the possible options are liberal (democrats) or conservative (republicans). As a practical application we might consider a system that processes a large amount of news articles or public speeches to detect and measure\u00a0explicit\u00a0or hidden political bias of the authors.<\/p>\n<p><a href=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-299 size-medium\" src=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg\" alt=\"democrat-republican\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg 300w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-150x112.jpg 150w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican.jpg 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>A traditional approach to this problem is a simple bag-of-words\u00a0model, where each word is treated as a separate feature, but this ignores any syntactic structure and even word order. As shown below, political ideology can be\u00a0compositionally complicated &#8211; while certain sections of the sentence are locally conservative, the way they are used in context makes the overall sentence liberal.<a href=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_sample_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-182 size-large\" src=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_sample_1-1024x408.png\" alt=\"political_sample_1\" width=\"1024\" height=\"408\" srcset=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_sample_1-1024x408.png 1024w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_sample_1-150x59.png 150w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_sample_1-300x119.png 300w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_sample_1.png 1451w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Figure 1: Sample sentence from Iyyer et al. (2014). Blue nodes are liberal, red nodes are conservative, grey nodes are neutral.<br \/>\n<!--more--><\/p>\n<h2>Recursive Neural Network<\/h2>\n<p>The recursive neural network in this work is based on Socher et al. (2011), where it was used\u00a0for sentiment detection. The idea of semantic composition is that the meaning of a sentence or text is composed of its smaller subparts, and recursive neural networks aim\u00a0to model this by recursively combining vector representations of words and phrases.<\/p>\n<p>We represent each word as a vector of length <em>d<\/em>. We can then construct a network that takes two\u00a0word vectors, concatenated into a vector of length <em>2d<\/em>, as input and outputs a new vector of length <em>d<\/em>. We can then stack these networks together and use the output of one network as one of the inputs to another network. This way we can combine multiple words to phrases and phrases to sentences. We don&#8217;t need to have a separate network for each of these levels, and can just reuse the same network each time\u00a0&#8211;\u00a0which is why these are called <em>recursive neural networks<\/em>.<\/p>\n<p>Mathematically, the composition happens as follows:<\/p>\n<p style=\"text-align: center;\">\\(<br \/>\nx_c = f(W_L\\times x_a + W_R\\times x_b + b)<br \/>\n\\)<\/p>\n<p style=\"text-align: left;\">\\(x_a\\) and\u00a0\\(x_b\\) are the vectors for the two input words\/phrases;\u00a0\\(x_c\\) is the output vector;\u00a0\\(W_L\\) and\u00a0\\(W_R\\) are the weight matrices for the left and right input;\u00a0\\(b\\) is the bias vector. If we think of the input as a concatenation of the vectors, this formula actually becomes the traditional single-layer neural network:<\/p>\n<p style=\"text-align: center;\">\\(<br \/>\nx_c = f(W\\times x_{ab} + b)<br \/>\n\\)<\/p>\n<p style=\"text-align: left;\">An example of this recurrent neural network in action is shown below:<\/p>\n<p style=\"text-align: left;\"><a href=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_tree.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-199\" src=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_tree.png\" alt=\"political_tree\" width=\"1191\" height=\"600\" srcset=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_tree.png 1191w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_tree-150x75.png 150w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_tree-300x151.png 300w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_tree-1024x515.png 1024w\" sizes=\"auto, (max-width: 1191px) 100vw, 1191px\" \/><\/a><\/p>\n<p>During training, an additional\u00a0softmax layer is added on top, which calculates the probability for both classes (liberal or conservative). The model is then trained to minimize the negative log-probability of the correct class, with L2-regularization.\u00a0\u00a0The error is backpropagated through the whole tree, so the information on the sentence level will be used to modify the individual word vectors, along with all the weights used in the composition.<\/p>\n<p>Also, if I understand the paper correctly, the final prediction from the model at test time is actually generated by averaging vectors for all the nodes in the sentence tree, concatenating this\u00a0with the root vector, and training a separate logistic regression model over that. Which seems a bit odd, because the recurrent network is quite capable of predicting the class label on the root node, and has been optimised to do so. I wonder what the performance difference would be, if the root-level predictions from the RNN were used directly for evaluation.<\/p>\n<h2>Evaluation<\/h2>\n<p>The authors use two datasets for evaluation:<\/p>\n<ol>\n<li>The <strong>Convote<\/strong> dataset (Thomas et al., 2006) contains transcripts of spoken text from the US Congressional floor debate. The experiments here use 7,816 sentences from the corpus.<\/li>\n<li>The <strong>Ideological Books Corpus<\/strong> (IBC) (Gross et al., 2013) is a collection of books and articles by authors whose political bias\u00a0is well-known.\u00a0Iyyer et al. (2014)\u00a0extend the dataset by providing <a href=\"http:\/\/cs.umd.edu\/~miyyer\/ibc\/\">sentence-level and partial phrase-level annotation for 4,062\u00a0sentences<\/a>, crowd-sourced through <a href=\"http:\/\/www.crowdflower.com\/\">Crowdflower<\/a>.<\/li>\n<\/ol>\n<p>Both of these datasets are originally annotated on the level of the author and their political views, but this information can be used to also label each sentence with its most likely political class.<\/p>\n<p>On both datasets, the authors apply heuristic filters to only keep sentences containing explicit bias in either direction,\u00a0and remove neutral sentences which take up majority of the corpora. However, as this filtering is based on\u00a0surface forms (essentially bag-of-words or bag-of phrases), it is unknown how this affects the final dataset. It would be interesting to also see results where the test set contains all of the original sentences.<\/p>\n<h2>Results<\/h2>\n<p>The authors compare a number of different models.<\/p>\n<ul>\n<li>Baselines\n<ul>\n<li><strong>Random<\/strong>: The label (conservative\/liberal) is chosen randomly.<\/li>\n<li><strong>LR1<\/strong>: Basic logistic regression using bag-of-words (BoW) features.<\/li>\n<li><strong>LR2<\/strong>: As previous, but adding phrase annotations as more training data.<\/li>\n<li><strong>LR3<\/strong>: Logistic regression with BoW and dependency-based features.<\/li>\n<li><strong>LR-w2v<\/strong>: Logistic regression over averaged word vectors from <a href=\"https:\/\/code.google.com\/p\/word2vec\/\">word2vec<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>RNN Models\n<ul>\n<li><strong>RNN1<\/strong>: The basic RNN model, trained on sentence-level annotations, using random initialization.<\/li>\n<li><strong>RNN1-w2v<\/strong>: As previous, but initialized with vectors from word2vec.<\/li>\n<li><strong>RNN2-w2v<\/strong>: The RNN model, trained on sentence-level and phrase-level annotations, initialized with vectors from word2vec.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The results (accuracy) can be seen in the graph.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_results.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-209\" src=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_results.png\" alt=\"political_results\" width=\"1371\" height=\"578\" srcset=\"https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_results.png 1371w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_results-150x63.png 150w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_results-300x126.png 300w, https:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/09\/political_results-1024x431.png 1024w\" sizes=\"auto, (max-width: 1371px) 100vw, 1371px\" \/><\/a><\/p>\n<p style=\"text-align: left;\">Some\u00a0conclusions we can draw from the results:<\/p>\n<ul>\n<li style=\"text-align: left;\">All the models outperform the random baseline by quite a margin.<\/li>\n<li style=\"text-align: left;\">All the recurrent neural network models outperform all the logistic regression models.<\/li>\n<li style=\"text-align: left;\">Adding the phrase-level annotations as extra training data for the logistic regression decreases performance (LR2), but adding them to the RNN model improves performance (RNN2-w2v).<\/li>\n<li style=\"text-align: left;\">Logistic regression trained on averaged word2vec vectors (LR-w2v) outperforms logistic regression\u00a0with BoW features (LR1), and even dependency-based features (LR3, on the IBC dataset).<\/li>\n<li style=\"text-align: left;\">Initializing the RNN with word2vec vectors gives a little boost to the overall accuracy.<\/li>\n<\/ul>\n<h2>References<\/h2>\n<p style=\"margin-left: 24pt; text-indent: -24.0pt;\">Gross, J., Acree, B., Sim, Y., &amp; Smith, N. A. (2013). Testing the Etch-a-Sketch Hypothesis\u202f: Measuring Ideological Signaling via Candidates\u2019 Use of Key Phrases. In <i>APSA 2013<\/i>.<\/p>\n<p style=\"margin-left: 24pt; text-indent: -24.0pt;\">Iyyer, M., Enns, P., Boyd-Graber, J., &amp; Resnik, P. (2014). Political Ideology Detection Using Recursive Neural Networks. In <i>Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics<\/i> (pp. 1113\u20131122).<\/p>\n<p style=\"margin-left: 24pt; text-indent: -24.0pt;\">Socher, R., Pennington, J., Huang, E. H., Ng, A. Y., &amp; Manning, C. D. (2011). Semi-supervised recursive autoencoders for predicting sentiment distributions. <i>Proceedings of EMNLP<\/i>. Retrieved from http:\/\/dl.acm.org\/citation.cfm?id=2145450<\/p>\n<p style=\"margin-left: 24pt; text-indent: -24.0pt;\">Thomas, M., Pang, B., &amp; Lee, L. (2006). Get out the vote: Determining support or opposition from Congressional floor-debate transcripts. In <i>Proceedings of the 2006 Conference on Empirical Methods in Natural Language Processing &#8211; EMNLP \u201906<\/i> (pp. 327\u2013335).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neural networks have a range of interesting applications, and here I will discuss\u00a0on one them: recursive neural networks and the detection of political ideology. This&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Political ideology detection - Marek Rei<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Political ideology detection - Marek Rei\" \/>\n<meta property=\"og:description\" content=\"Neural networks have a range of interesting applications, and here I will discuss\u00a0on one them: recursive neural networks and the detection of political ideology. This&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/\" \/>\n<meta property=\"og:site_name\" content=\"Marek Rei\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-05T21:13:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-27T23:37:58+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg\" \/>\n<meta name=\"author\" content=\"Marek\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/\",\"url\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/\",\"name\":\"Political ideology detection - Marek Rei\",\"isPartOf\":{\"@id\":\"https:\/\/www.marekrei.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg\",\"datePublished\":\"2014-10-05T21:13:52+00:00\",\"dateModified\":\"2019-09-27T23:37:58+00:00\",\"author\":{\"@id\":\"https:\/\/www.marekrei.com\/blog\/#\/schema\/person\/a145eb0a06ed4acf5b0f84a24b7a1191\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#primaryimage\",\"url\":\"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg\",\"contentUrl\":\"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.marekrei.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Political ideology detection\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.marekrei.com\/blog\/#website\",\"url\":\"https:\/\/www.marekrei.com\/blog\/\",\"name\":\"Marek Rei\",\"description\":\"Thoughts on Machine Learning and Natural Language Processing\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.marekrei.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.marekrei.com\/blog\/#\/schema\/person\/a145eb0a06ed4acf5b0f84a24b7a1191\",\"name\":\"Marek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.marekrei.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/48a65414bfda6485aaa0703e548de0ed25292b5fe0d979ed8c28ad83cf5a82c0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/48a65414bfda6485aaa0703e548de0ed25292b5fe0d979ed8c28ad83cf5a82c0?s=96&d=mm&r=g\",\"caption\":\"Marek\"},\"url\":\"https:\/\/www.marekrei.com\/blog\/author\/marek\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Political ideology detection - Marek Rei","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/","og_locale":"en_US","og_type":"article","og_title":"Political ideology detection - Marek Rei","og_description":"Neural networks have a range of interesting applications, and here I will discuss\u00a0on one them: recursive neural networks and the detection of political ideology. This&hellip;","og_url":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/","og_site_name":"Marek Rei","article_published_time":"2014-10-05T21:13:52+00:00","article_modified_time":"2019-09-27T23:37:58+00:00","og_image":[{"url":"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg"}],"author":"Marek","twitter_misc":{"Written by":"Marek","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/","url":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/","name":"Political ideology detection - Marek Rei","isPartOf":{"@id":"https:\/\/www.marekrei.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#primaryimage"},"image":{"@id":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#primaryimage"},"thumbnailUrl":"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg","datePublished":"2014-10-05T21:13:52+00:00","dateModified":"2019-09-27T23:37:58+00:00","author":{"@id":"https:\/\/www.marekrei.com\/blog\/#\/schema\/person\/a145eb0a06ed4acf5b0f84a24b7a1191"},"breadcrumb":{"@id":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#primaryimage","url":"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg","contentUrl":"http:\/\/www.marekrei.com\/blog\/wp-content\/uploads\/2014\/10\/democrat-republican-300x225.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.marekrei.com\/blog\/political-ideology-detection\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.marekrei.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Political ideology detection"}]},{"@type":"WebSite","@id":"https:\/\/www.marekrei.com\/blog\/#website","url":"https:\/\/www.marekrei.com\/blog\/","name":"Marek Rei","description":"Thoughts on Machine Learning and Natural Language Processing","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.marekrei.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.marekrei.com\/blog\/#\/schema\/person\/a145eb0a06ed4acf5b0f84a24b7a1191","name":"Marek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.marekrei.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/48a65414bfda6485aaa0703e548de0ed25292b5fe0d979ed8c28ad83cf5a82c0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/48a65414bfda6485aaa0703e548de0ed25292b5fe0d979ed8c28ad83cf5a82c0?s=96&d=mm&r=g","caption":"Marek"},"url":"https:\/\/www.marekrei.com\/blog\/author\/marek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/posts\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":34,"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":1307,"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/posts\/180\/revisions\/1307"}],"wp:attachment":[{"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marekrei.com\/blog\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}