{"id":36083,"date":"2024-11-01T09:45:37","date_gmt":"2024-11-01T09:45:37","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36083"},"modified":"2024-11-01T09:45:37","modified_gmt":"2024-11-01T09:45:37","slug":"leveraging-hugging-face-transformers-bert-ensemble-learning-data-augmentation","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36083\/","title":{"rendered":"Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation"},"content":{"rendered":"<p><body><\/p>\n<h2>1. Introduction<\/h2>\n<p>In modern natural language processing (NLP), BERT has established itself as an innovative model. BERT stands for Bidirectional Encoder Representations from Transformers and possesses a powerful ability to understand bidirectional context. Utilizing BERT is essential in developing deep learning-based NLP models, particularly enhancing model performance through ensemble learning and data augmentation techniques. This course will cover how to maximize the performance of the BERT model using Hugging Face&#8217;s Transformers library through ensemble learning methods and data augmentation techniques.<\/p>\n<h2>2. BERT: Overview<\/h2>\n<p>BERT uses an architecture called Transformer to understand the context of words. The most significant feature of BERT is its bidirectionality in understanding the relationships between tokens. While traditional RNN-based models process words sequentially, BERT can consider the context of all words in a sentence simultaneously.<\/p>\n<h2>3. Introduction to Hugging Face Transformers Library<\/h2>\n<p>The Hugging Face Transformers library is a Python library designed to make various Transformer models easily accessible. It supports not only BERT but also other state-of-the-art models like GPT and T5. Through this library, we can easily load pre-trained models and fine-tune them to fit our data.<\/p>\n<h2>4. Importance of Data Augmentation<\/h2>\n<p>Data augmentation is a critical technique for enhancing machine learning performance. Especially in NLP, when data is scarce, generating new data or transforming existing data can enhance the model&#8217;s generalization performance. Various techniques exist for data augmentation, and this course will focus specifically on methods for augmenting text data.<\/p>\n<h2>5. BERT Ensemble Learning<\/h2>\n<p>Ensemble learning is a technique that improves performance by combining multiple models. Generally, the final result is derived by combining the predictions of several models. In BERT ensemble learning, we can improve performance by combining the outputs of multiple BERT models trained with different hyperparameters.<\/p>\n<h2>6. Environment Setup<\/h2>\n<pre><code>!pip install transformers torch<\/code><\/pre>\n<p>The above command installs the Hugging Face Transformers library and PyTorch. These libraries help load the BERT model and assist in data preprocessing.<\/p>\n<h2>7. Data Preparation and Preprocessing<\/h2>\n<p>In this course, we will deal with a simple text classification problem. We will assume that the data is as follows.<\/p>\n<pre><code>\ndata = {\n    'text': ['This movie is really good.', 'It was the worst movie.', 'It is a really interesting movie.', 'This movie is boring.'],\n    'label': [1, 0, 1, 0]  # 1: Positive, 0: Negative\n}\n    <\/code><\/pre>\n<h2>8. Data Augmentation Techniques<\/h2>\n<p>Among various data augmentation techniques, we will use the following methods:<\/p>\n<ul>\n<li><strong>Key Word Replacement:<\/strong> Replaces specific words with synonyms to generate new sentences.<\/li>\n<li><strong>Random Insertion:<\/strong> Inserts a randomly selected word into the existing sentence to create a new sentence.<\/li>\n<li><strong>Random Deletion:<\/strong> Randomly removes specific words to modify the sentence.<\/li>\n<\/ul>\n<h3>8.1 Key Word Replacement Example<\/h3>\n<pre><code>\nimport random\nfrom nltk.corpus import wordnet\n\ndef synonym_replacement(text):\n    words = text.split()\n    new_words = words.copy()\n    random_word_idx = random.randint(0, len(words)-1)\n    word = words[random_word_idx]\n    \n    synonyms = wordnet.synsets(word)\n    if synonyms:\n        synonym = synonyms[0].lemmas()[0].name()\n        new_words[random_word_idx] = synonym.replace('_', ' ')\n        \n    return ' '.join(new_words)\n    <\/code><\/pre>\n<h3>8.2 Random Insertion Example<\/h3>\n<pre><code>\ndef random_insertion(text):\n    words = text.split()\n    new_words = words.copy()\n    random_word = random.choice(words)\n    new_words.insert(random.randint(0, len(new_words)-1), random_word)\n    return ' '.join(new_words)\n    <\/code><\/pre>\n<h3>8.3 Random Deletion Example<\/h3>\n<pre><code>\ndef random_deletion(text, p=0.5):\n    words = text.split()\n    if len(words) == 1:  # only one word, it's better not to drop it\n        return text\n    \n    remaining = list(filter(lambda x: random.random() > p, words))\n    return ' '.join(remaining) if len(remaining) > 0 else ' '.join(random.sample(words, 1))\n    <\/code><\/pre>\n<h2>9. Applying Data Augmentation<\/h2>\n<p>Now let&#8217;s apply data augmentation to the collected data.<\/p>\n<pre><code>\naugmented_texts = []\naugmented_labels = []\n\nfor index, row in enumerate(data['text']):\n    augmented_texts.append(row)  # Add original data\n    augmented_labels.append(data['label'][index])  # Add corresponding label\n    \n    # Data augmentation\n    augmented_texts.append(synonym_replacement(row))\n    augmented_labels.append(data['label'][index])\n    \n    augmented_texts.append(random_insertion(row))\n    augmented_labels.append(data['label'][index])\n    \n    augmented_texts.append(random_deletion(row))\n    augmented_labels.append(data['label'][index])\n\nprint(\"Number of augmented data:\", len(augmented_texts))\n    <\/code><\/pre>\n<h2>10. Training the BERT Model<\/h2>\n<p>Once data augmentation is complete, we need to train the BERT model. The following code demonstrates how to load the BERT model and begin training.<\/p>\n<pre><code>\nfrom transformers import BertTokenizer, BertForSequenceClassification\nfrom transformers import Trainer, TrainingArguments\nimport torch\n\n# Load tokenizer and model\ntokenizer = BertTokenizer.from_pretrained('bert-base-uncased')\nmodel = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)\n\n# Tokenize data\ntrain_encodings = tokenizer(augmented_texts, truncation=True, padding=True)\ntrain_labels = augmented_labels\n\n# Define dataset\nclass AugmentedDataset(torch.utils.data.Dataset):\n    def __init__(self, encodings, labels):\n        self.encodings = encodings\n        self.labels = labels\n        \n    def __getitem__(self, idx):\n        item = {k: torch.tensor(v[idx]) for k, v in self.encodings.items()}\n        item['labels'] = torch.tensor(self.labels[idx])\n        return item\n    \n    def __len__(self):\n        return len(self.labels)\n\ntrain_dataset = AugmentedDataset(train_encodings, train_labels)\n\n# Set training parameters\ntraining_args = TrainingArguments(\n    per_device_train_batch_size=4,\n    num_train_epochs=3,\n    logging_dir='.\/logs',\n    logging_steps=10,\n)\n\n# Initialize Trainer and start training\ntrainer = Trainer(\n    model=model,\n    args=training_args,\n    train_dataset=train_dataset,\n)\n\ntrainer.train()\n    <\/code><\/pre>\n<h2>11. Ensemble Learning<\/h2>\n<p>Now we will train the BERT model with various hyperparameters and apply ensemble learning.<\/p>\n<pre><code>\ndef create_and_train_model(learning_rate, epochs):\n    model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)\n    training_args = TrainingArguments(\n        per_device_train_batch_size=4,\n        num_train_epochs=epochs,\n        learning_rate=learning_rate,\n        logging_dir='.\/logs',\n        logging_steps=10,\n    )\n\n    trainer = Trainer(\n        model=model,\n        args=training_args,\n        train_dataset=train_dataset,\n    )\n    \n    trainer.train()\n    return model\n\nmodels = []\nfor lr in [5e-5, 2e-5]:\n    for epoch in [3, 4]:\n        models.append(create_and_train_model(lr, epoch))\n    <\/code><\/pre>\n<h2>12. Ensemble Prediction<\/h2>\n<p>The final predictions of the ensemble model are typically generated by averaging the predictions of several models. The following code can be used to perform ensemble predictions.<\/p>\n<pre><code>\ndef ensemble_predict(models, texts):\n    predictions = []\n    \n    for model in models:\n        model_predictions = trainer.predict(texts)\n        predictions.append(model_predictions.predictions)\n    \n    predictions = sum(predictions) \/ len(predictions)\n    return predictions\n\nensemble_results = ensemble_predict(models, test_data)  # test_data is a separate test dataset\n    <\/code><\/pre>\n<h2>13. Conclusion<\/h2>\n<p>In this course, we explored how to apply ensemble learning to the BERT model using the Hugging Face Transformers library and how to implement data augmentation techniques. BERT provides powerful performance; however, its performance may degrade when data is insufficient or biased. Data augmentation and ensemble techniques are useful methods to address these issues.<\/p>\n<h2>14. References<\/h2>\n<ul>\n<li>Hugging Face Transformers Documentation: <a href=\"https:\/\/transformers.huggingface.co\/\">https:\/\/transformers.huggingface.co\/<\/a><\/li>\n<li>Paper: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding<\/li>\n<li>Natural Language Processing with Transformers (Book)<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction In modern natural language processing (NLP), BERT has established itself as an innovative model. BERT stands for Bidirectional Encoder Representations from Transformers and possesses a powerful ability to understand bidirectional context. Utilizing BERT is essential in developing deep learning-based NLP models, particularly enhancing model performance through ensemble learning and data augmentation techniques. This &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36083\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[108],"tags":[],"class_list":["post-36083","post","type-post","status-publish","format-standard","hentry","category---en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Leveraging Hugging Face Transformers, BERT Ensemble Learning - Data Augmentation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/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:\/\/atmokpo.com\/w\/36083\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Leveraging Hugging Face Transformers, BERT Ensemble Learning - Data Augmentation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction In modern natural language processing (NLP), BERT has established itself as an innovative model. BERT stands for Bidirectional Encoder Representations from Transformers and possesses a powerful ability to understand bidirectional context. Utilizing BERT is essential in developing deep learning-based NLP models, particularly enhancing model performance through ensemble learning and data augmentation techniques. This &hellip; \ub354 \ubcf4\uae30 &quot;Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36083\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:45:37+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/36083\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36083\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation\",\"datePublished\":\"2024-11-01T09:45:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36083\/\"},\"wordCount\":572,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Using Hugging Face\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36083\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36083\/\",\"name\":\"Leveraging Hugging Face Transformers, BERT Ensemble Learning - Data Augmentation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:45:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36083\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36083\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36083\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Leveraging Hugging Face Transformers, BERT Ensemble Learning - Data Augmentation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","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:\/\/atmokpo.com\/w\/36083\/","og_locale":"ko_KR","og_type":"article","og_title":"Leveraging Hugging Face Transformers, BERT Ensemble Learning - Data Augmentation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction In modern natural language processing (NLP), BERT has established itself as an innovative model. BERT stands for Bidirectional Encoder Representations from Transformers and possesses a powerful ability to understand bidirectional context. Utilizing BERT is essential in developing deep learning-based NLP models, particularly enhancing model performance through ensemble learning and data augmentation techniques. This &hellip; \ub354 \ubcf4\uae30 \"Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation\"","og_url":"https:\/\/atmokpo.com\/w\/36083\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:45:37+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/36083\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36083\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation","datePublished":"2024-11-01T09:45:37+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36083\/"},"wordCount":572,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Using Hugging Face"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36083\/","url":"https:\/\/atmokpo.com\/w\/36083\/","name":"Leveraging Hugging Face Transformers, BERT Ensemble Learning - Data Augmentation - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:45:37+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36083\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36083\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36083\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Leveraging Hugging Face Transformers, BERT Ensemble Learning &#8211; Data Augmentation"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=36083"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36083\/revisions"}],"predecessor-version":[{"id":36084,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36083\/revisions\/36084"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}