{"id":32393,"date":"2024-11-01T09:08:37","date_gmt":"2024-11-01T09:08:37","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=32393"},"modified":"2024-11-01T11:18:56","modified_gmt":"2024-11-01T11:18:56","slug":"deep-learning-for-natural-language-processing-named-entity-recognition-using-kobert","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/32393\/","title":{"rendered":"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT"},"content":{"rendered":"<p><body><\/p>\n<p>In this course, we will explore Named Entity Recognition (NER), one of the fields of Natural Language Processing (NLP) that utilizes deep learning. In particular, we will thoroughly explain the basic concepts and implementation methods of NER using the <strong>KoBERT<\/strong> model, which is suitable for Korean processing.<\/p>\n<h2>1. What is Natural Language Processing (NLP)?<\/h2>\n<p>Natural language processing refers to the technology that allows computers to understand and generate human language. This is the process of analyzing the meaning, grammar, and functions of language so that computers can comprehend it. Major applications of natural language processing include machine translation, sentiment analysis, question-answering systems, and named entity recognition.<\/p>\n<h3>1.1 What is Named Entity Recognition (NER)?<\/h3>\n<p>Named Entity Recognition (NER) is a technology that identifies and classifies proper nouns such as people, places, organizations, and dates in text. For example, in the sentence &#8220;Lee Soon-shin won a great victory at the Battle of Hansando,&#8221; &#8220;Lee Soon-shin&#8221; is recognized as a person, while &#8220;Hansando&#8221; is recognized as a location. NER plays a key role in various fields such as information extraction, search engines, and document summarization.<\/p>\n<h2>2. Introduction to KoBERT<\/h2>\n<p>KoBERT is a model that has been retrained for Korean based on Google&#8217;s BERT model. BERT (Bidirectional Encoder Representations from Transformers) is one of the most popular models in natural language processing, known for its strong ability to understand context. KoBERT has been trained on a Korean dataset to reflect the characteristics of the Korean language and can better grasp the meanings of words.<\/p>\n<h3>2.1 Basic Structure of BERT<\/h3>\n<p>BERT is based on the Transformer architecture and understands context bidirectionally. This allows the model to better understand context by simultaneously considering the front and back of the input sentence. BERT is trained through two tasks:<\/p>\n<ul>\n<li><strong>Masked Language Model (MLM):<\/strong> Some words are hidden, and the model predicts those hidden words.<\/li>\n<li><strong>Next Sentence Prediction (NSP):<\/strong> The model predicts whether two sentences are consecutive.<\/li>\n<\/ul>\n<h2>3. Implementing NER using KoBERT<\/h2>\n<p>Now, we will explain the process of implementing named entity recognition using KoBERT step by step. For this practical work, we will be using Python and Hugging Face&#8217;s Transformers library.<\/p>\n<h3>3.1 Setting Up the Environment<\/h3>\n<pre><code>!pip install transformers\n!pip install torch\n!pip install numpy\n!pip install pandas\n!pip install sklearn<\/code><\/pre>\n<h3>3.2 Preparing the Data<\/h3>\n<p>We need to prepare a dataset for training named entity recognition. We will use the publicly available &#8216;Korean NER Dataset.&#8217; This dataset includes sentences and entity tags for each word.<\/p>\n<p>For example:<\/p>\n<pre><code>Lee Soon-shin B-PER\nwon O\nthe B-LOC\nBattle O\nof O\nHansando O\nwith O\na O\ngreat O\nvictory O<\/code><\/pre>\n<h3>3.3 Loading the KoBERT Model<\/h3>\n<p>Next, we load the KoBERT model. It can be easily accessed through Hugging Face&#8217;s Transformers library.<\/p>\n<pre><code>from transformers import BertTokenizer, BertForTokenClassification\nimport torch\n\n# Load KoBERT model and tokenizer\ntokenizer = BertTokenizer.from_pretrained('monologg\/kobert')\nmodel = BertForTokenClassification.from_pretrained('monologg\/kobert', num_labels=len(tag2id))<\/code><\/pre>\n<h3>3.4 Data Preprocessing<\/h3>\n<p>We need to preprocess the data for input into the model. This includes tokenizing the text and encoding the tags.<\/p>\n<pre><code>def encode_tags(tags, max_len):\n    return [tag2id[tag] for tag in tags] + [tag2id['O']] * (max_len - len(tags))\n\n# Example data\nsentences = [\"Lee Soon-shin won a great victory at the Battle of Hansando\"]\ntags = [[\"B-PER\", \"O\", \"B-LOC\", \"O\", \"O\", \"O\", \"O\", \"O\", \"O\"]]\n\n# Initialization\ninput_ids = []\nattention_masks = []\nlabels = []\n\nfor sentence, tag in zip(sentences, tags):\n    encoded = tokenizer.encode_plus(\n        sentence,\n        add_special_tokens=True,\n        max_length=128,\n        pad_to_max_length=True,\n        return_attention_mask=True,\n    )\n    input_ids.append(encoded['input_ids'])\n    attention_masks.append(encoded['attention_mask'])\n    labels.append(encode_tags(tag, 128))<\/code><\/pre>\n<h3>3.5 Model Training<\/h3>\n<p>We will train the model using the preprocessed data. You can define the loss function and optimizer using PyTorch and train the model.<\/p>\n<pre><code>from sklearn.model_selection import train_test_split\n\n# Split into training and validation data\ntrain_inputs, validation_inputs, train_labels, validation_labels = train_test_split(input_ids, labels, test_size=0.1)\n\n# Model training and evaluation code...<\/code><\/pre>\n<h3>3.6 Model Evaluation<\/h3>\n<p>After training, we evaluate the model&#8217;s performance using validation data. Metrics such as Accuracy, Precision, and Recall can be used for evaluation.<\/p>\n<pre><code>from sklearn.metrics import classification_report\n\n# Model prediction code...\npredictions = model(validation_inputs)\npredicted_labels = ...\n\n# Output evaluation metrics\nprint(classification_report(validation_labels, predicted_labels))<\/code><\/pre>\n<h3>3.7 Using the Model<\/h3>\n<p>Using the trained model, we can recognize entities in new sentences. This includes the process of predicting entity tags for each word when inputting text.<\/p>\n<pre><code>def predict_entities(sentence):\n    encoded = tokenizer.encode_plus(sentence, return_tensors='pt')\n    with torch.no_grad():\n        output = model(**encoded)\n    logits = output[0]\n    predictions = torch.argmax(logits, dim=2)\n    return predictions<\/code><\/pre>\n<h2>4. Conclusion<\/h2>\n<p>In this course, we learned the basic concepts and implementation methods of named entity recognition using KoBERT. Thanks to the powerful performance of KoBERT, we can efficiently perform NER tasks in the field of natural language processing. These technologies can be widely utilized in various business and research areas, demonstrating excellent performance even with Korean data.<\/p>\n<h2>5. References<\/h2>\n<ul>\n<li>BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding<\/li>\n<li>Hugging Face Transformers Documentation<\/li>\n<li>KoBERT GitHub Repository<\/li>\n<li>Introduction to Natural Language Processing with Deep Learning<\/li>\n<\/ul>\n<h2>6. Additional Learning Resources<\/h2>\n<p>There are various materials related to natural language processing, and many resources available for training models suited for different domains. Here are some recommended materials:<\/p>\n<ul>\n<li>Stanford CS224n: Natural Language Processing with Deep Learning<\/li>\n<li>fast.ai: Practical Deep Learning for Coders<\/li>\n<li>CS50\u2019s Introduction to Artificial Intelligence with Python<\/li>\n<\/ul>\n<h2>7. Future Research Directions<\/h2>\n<p>Developing more advanced systems based on KoBERT and named entity recognition technology will be an important research direction. Additionally, training and developing multilingual models that can be directly applied to more languages is also an interesting research topic.<\/p>\n<h2>8. Q&amp;A<\/h2>\n<p>If you have any questions regarding this course, please let me know in the comments. I will actively respond!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this course, we will explore Named Entity Recognition (NER), one of the fields of Natural Language Processing (NLP) that utilizes deep learning. In particular, we will thoroughly explain the basic concepts and implementation methods of NER using the KoBERT model, which is suitable for Korean processing. 1. What is Natural Language Processing (NLP)? Natural &hellip; <a href=\"https:\/\/atmokpo.com\/w\/32393\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT&#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":[104],"tags":[],"class_list":["post-32393","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>Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT - \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\/32393\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In this course, we will explore Named Entity Recognition (NER), one of the fields of Natural Language Processing (NLP) that utilizes deep learning. In particular, we will thoroughly explain the basic concepts and implementation methods of NER using the KoBERT model, which is suitable for Korean processing. 1. What is Natural Language Processing (NLP)? Natural &hellip; \ub354 \ubcf4\uae30 &quot;Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/32393\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:08:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:18:56+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\/32393\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32393\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT\",\"datePublished\":\"2024-11-01T09:08:37+00:00\",\"dateModified\":\"2024-11-01T11:18:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32393\/\"},\"wordCount\":718,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Deep learning natural language processing\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/32393\/\",\"url\":\"https:\/\/atmokpo.com\/w\/32393\/\",\"name\":\"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:08:37+00:00\",\"dateModified\":\"2024-11-01T11:18:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32393\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/32393\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/32393\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT\"}]},{\"@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":"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT - \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\/32393\/","og_locale":"ko_KR","og_type":"article","og_title":"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In this course, we will explore Named Entity Recognition (NER), one of the fields of Natural Language Processing (NLP) that utilizes deep learning. In particular, we will thoroughly explain the basic concepts and implementation methods of NER using the KoBERT model, which is suitable for Korean processing. 1. What is Natural Language Processing (NLP)? Natural &hellip; \ub354 \ubcf4\uae30 \"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT\"","og_url":"https:\/\/atmokpo.com\/w\/32393\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:08:37+00:00","article_modified_time":"2024-11-01T11:18:56+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\/32393\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/32393\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT","datePublished":"2024-11-01T09:08:37+00:00","dateModified":"2024-11-01T11:18:56+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/32393\/"},"wordCount":718,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Deep learning natural language processing"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/32393\/","url":"https:\/\/atmokpo.com\/w\/32393\/","name":"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:08:37+00:00","dateModified":"2024-11-01T11:18:56+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/32393\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/32393\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/32393\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Deep Learning for Natural Language Processing: Named Entity Recognition using KoBERT"}]},{"@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\/32393","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=32393"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32393\/revisions"}],"predecessor-version":[{"id":32394,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32393\/revisions\/32394"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=32393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=32393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=32393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}