{"id":36075,"date":"2024-11-01T09:45:34","date_gmt":"2024-11-01T09:45:34","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=36075"},"modified":"2024-11-01T09:45:34","modified_gmt":"2024-11-01T09:45:34","slug":"using-hugging-face-transformers-course-preparing-bert-ensemble-dataset","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/36075\/","title":{"rendered":"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset"},"content":{"rendered":"<p><body><\/p>\n<p>With the advancement of deep learning and natural language processing (NLP), various models have emerged, among which BERT (Bidirectional Encoder Representations from Transformers) has established itself as one of the most influential models in today&#8217;s NLP. In this course, we will cover how to prepare datasets to implement BERT as an ensemble model using the Hugging Face Transformers library.<\/p>\n<h2>1. Concept of Ensemble Learning<\/h2>\n<p>Ensemble learning is a technique that combines multiple models to improve performance. By combining the prediction results of multiple models, we can complement the shortcomings of each model. Ensemble learning is generally carried out in two ways:<\/p>\n<ul>\n<li><strong>Bagging<\/strong>: This involves training multiple models through repeated sampling and generating the final prediction by averaging each model&#8217;s prediction results or through a majority vote.<\/li>\n<li><strong>Boosting<\/strong>: This method sequentially trains new models by learning the errors of previous models. Representative methods include XGBoost and AdaBoost.<\/li>\n<\/ul>\n<p>In this course, we will focus on implementing ensemble learning by combining multiple models using the BERT model.<\/p>\n<h2>2. Introduction to the Hugging Face Transformers Library<\/h2>\n<p>The Hugging Face Transformers library is a Python library that helps users easily utilize a variety of pre-trained language models. It includes not only the BERT model but also various models such as GPT and T5, making it useful for performing NLP tasks. The main features of this library include:<\/p>\n<ul>\n<li>Easy downloading and utilization of pre-trained models<\/li>\n<li>Integrated use of models and tokenizers<\/li>\n<li>Capability to perform various NLP tasks (classification, generation, etc.) with a simple API<\/li>\n<\/ul>\n<p>Now, let&#8217;s prepare the dataset needed to utilize the BERT model.<\/p>\n<h2>3. Preparing the Dataset<\/h2>\n<p>First, we need to prepare the dataset that will be used to train the ensemble model. Generally, a dataset with text and labels is needed to train the BERT model. For example, if we assume we are training a sentiment analysis model, we need data in the following format:<\/p>\n<pre><code>\n    | Text                 | Label |\n    |------------------|------|\n    | \"I like it!\"     | 1    |\n    | \"I am disappointed\" | 0    |\n    | \"The best experience!\" | 1    |\n    | \"I won't do it again\"   | 0    |\n    <\/code><\/pre>\n<p>After preparing the data, let&#8217;s save it as a CSV file. In this example, we will use Python&#8217;s pandas library to save the data in CSV format.<\/p>\n<pre><code>\n    import pandas as pd\n\n    # Generate example data\n    data = {\n        'text': [\n            'I like it!', \n            'I am disappointed', \n            'The best experience!', \n            'I won\\'t do it again'\n        ],\n        'label': [1, 0, 1, 0]\n    }\n    \n    # Convert to DataFrame\n    df = pd.DataFrame(data)\n\n    # Save to CSV file\n    df.to_csv('sentiment_data.csv', index=False, encoding='utf-8-sig')\n    <\/code><\/pre>\n<h2>4. Loading and Preprocessing the Dataset<\/h2>\n<p>We need to load the dataset saved as a CSV file and preprocess it to fit the BERT model. Here, we will use the tokenizer provided by Hugging Face&#8217;s &#8216;transformers&#8217; library to preprocess the data. First, we will install and import the necessary libraries.<\/p>\n<pre><code>\n    !pip install transformers\n    !pip install torch\n    <\/code><\/pre>\n<p>Now, we can load and preprocess the dataset with Python code.<\/p>\n<pre><code>\n    from transformers import BertTokenizer\n\n    # Load the tokenizer\n    tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')\n\n    # Load the dataset\n    df = pd.read_csv('sentiment_data.csv')\n\n    # Preprocess the text\n    encodings = tokenizer(df['text'].tolist(), truncation=True, padding=True, max_length=128)\n\n    # Check text and labels\n    print(encodings['input_ids'])\n    print(df['label'].tolist())\n    <\/code><\/pre>\n<p>In the code above, &#8216;input_ids&#8217; refers to the index values mapped for each word to be input into the BERT model, and the labels are the targets we want to predict. We will need to convert the data into a format for training the model.<\/p>\n<h2>5. Creating a Data Loader<\/h2>\n<p>To pass data to the model, we need to create a class that returns data in batches using PyTorch&#8217;s DataLoader.<\/p>\n<pre><code>\n    import torch\n    from torch.utils.data import Dataset, DataLoader\n\n    class SentimentDataset(Dataset):\n        def __init__(self, encodings, labels):\n            self.encodings = encodings\n            self.labels = labels\n\n        def __getitem__(self, idx):\n            item = {key: torch.tensor(val[idx]) for key, val 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\n    # Create dataset object\n    dataset = SentimentDataset(encodings, df['label'].tolist())\n\n    # Create DataLoader\n    train_loader = DataLoader(dataset, batch_size=2, shuffle=True)\n    <\/code><\/pre>\n<h2>6. Training the Model<\/h2>\n<p>To train the model, we will load the BERT model and set up the optimizer and loss function. The BERT model will be used during the training and evaluation process.<\/p>\n<pre><code>\n    from transformers import BertForSequenceClassification, AdamW\n\n    # Load the model\n    model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)\n\n    # Set up the optimizer\n    optimizer = AdamW(model.parameters(), lr=5e-5)\n\n    # Move model to GPU if available\n    if torch.cuda.is_available():\n        model = model.cuda()\n\n    # Train the model\n    model.train()\n    for epoch in range(3):  # Number of epochs\n        for batch in train_loader:\n            optimizer.zero_grad()\n            \n            # Move batch to GPU if available\n            if torch.cuda.is_available():\n                batch = {k: v.cuda() for k, v in batch.items()}\n\n            outputs = model(**batch)\n            loss = outputs.loss\n            loss.backward()\n            optimizer.step()\n            print(f'Epoch {epoch}, Loss: {loss.item()}')\n    <\/code><\/pre>\n<p>The loss values printed during model training indicate how well the model is learning. A lower loss value suggests improved predictive performance of the model.<\/p>\n<h2>7. Building the Ensemble Model<\/h2>\n<p>There are various ways to ensemble multiple trained BERT models. Here, we will use a simple method of averaging the prediction results of the models.<\/p>\n<pre><code>\n    predictions = []\n\n    # Set number of models to ensemble\n    model_count = 3\n    for i in range(model_count):\n        model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)\n        # Model training skipped (use training code above)\n        # ...\n        \n        # Predictions on test data\n        model.eval()\n        with torch.no_grad():\n            outputs = model(**batch)\n            logits = outputs.logits\n            predictions.append(logits.softmax(dim=-1))\n\n    # Average predictions\n    final_predictions = torch.mean(torch.stack(predictions), dim=0)\n    predicted_labels = final_predictions.argmax(dim=-1).tolist()\n    <\/code><\/pre>\n<h2>8. Validating Results<\/h2>\n<p>To evaluate the model&#8217;s predictive capability, we can calculate accuracy by comparing it with the actual labels. Here is how to calculate and print accuracy.<\/p>\n<pre><code>\n    from sklearn.metrics import accuracy_score\n\n    # Actual labels\n    true_labels = df['label'].tolist()\n\n    # Calculate accuracy\n    accuracy = accuracy_score(true_labels, predicted_labels)\n    print(f'Accuracy: {accuracy * 100:.2f}%')\n    <\/code><\/pre>\n<h2>9. Final Summary<\/h2>\n<p>In this course, we learned how to configure the BERT model as an ensemble using the Hugging Face Transformers library. We prepared the dataset, trained the BERT model through preprocessing and DataLoader creation, and ultimately obtained the final results by ensembling the prediction results of multiple models.<\/p>\n<p>Applying ensemble techniques to improve the performance of deep learning models is highly effective. We encourage you to experiment with various models and datasets based on the content learned in this course.<\/p>\n<h2>10. References<\/h2>\n<ul>\n<li><a href=\"https:\/\/huggingface.co\/transformers\/\">Hugging Face Transformers Official Documentation<\/a><\/li>\n<li><a href=\"https:\/\/arxiv.org\/abs\/1810.04805\">BERT Paper<\/a><\/li>\n<li><a href=\"https:\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.metrics.accuracy_score.html\">Scikit-learn&#8217;s accuracy_score<\/a><\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the advancement of deep learning and natural language processing (NLP), various models have emerged, among which BERT (Bidirectional Encoder Representations from Transformers) has established itself as one of the most influential models in today&#8217;s NLP. In this course, we will cover how to prepare datasets to implement BERT as an ensemble model using the &hellip; <a href=\"https:\/\/atmokpo.com\/w\/36075\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset&#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-36075","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>Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset - \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\/36075\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"With the advancement of deep learning and natural language processing (NLP), various models have emerged, among which BERT (Bidirectional Encoder Representations from Transformers) has established itself as one of the most influential models in today&#8217;s NLP. In this course, we will cover how to prepare datasets to implement BERT as an ensemble model using the &hellip; \ub354 \ubcf4\uae30 &quot;Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/36075\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:45:34+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\/36075\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36075\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset\",\"datePublished\":\"2024-11-01T09:45:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36075\/\"},\"wordCount\":690,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Using Hugging Face\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/36075\/\",\"url\":\"https:\/\/atmokpo.com\/w\/36075\/\",\"name\":\"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:45:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/36075\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/36075\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/36075\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset\"}]},{\"@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":"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset - \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\/36075\/","og_locale":"ko_KR","og_type":"article","og_title":"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"With the advancement of deep learning and natural language processing (NLP), various models have emerged, among which BERT (Bidirectional Encoder Representations from Transformers) has established itself as one of the most influential models in today&#8217;s NLP. In this course, we will cover how to prepare datasets to implement BERT as an ensemble model using the &hellip; \ub354 \ubcf4\uae30 \"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset\"","og_url":"https:\/\/atmokpo.com\/w\/36075\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:45:34+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\/36075\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/36075\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset","datePublished":"2024-11-01T09:45:34+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/36075\/"},"wordCount":690,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Using Hugging Face"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/36075\/","url":"https:\/\/atmokpo.com\/w\/36075\/","name":"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:45:34+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/36075\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/36075\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/36075\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Using Hugging Face Transformers Course, Preparing BERT Ensemble Dataset"}]},{"@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\/36075","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=36075"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36075\/revisions"}],"predecessor-version":[{"id":36076,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/36075\/revisions\/36076"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=36075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=36075"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=36075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}