{"id":215649,"date":"2025-12-29T02:48:13","date_gmt":"2025-12-29T02:48:13","guid":{"rendered":"https:\/\/www.newsbeep.com\/ie\/215649\/"},"modified":"2025-12-29T02:48:13","modified_gmt":"2025-12-29T02:48:13","slug":"hugging-face-transformers-in-action-learning-how-to-leverage-ai-for-nlp","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/ie\/215649\/","title":{"rendered":"Hugging Face Transformers in Action: Learning How To Leverage AI for NLP"},"content":{"rendered":"<p class=\"wp-block-paragraph\"> (NLP) revolutionized how we interact with technology.<\/p>\n<p class=\"wp-block-paragraph\">Do you remember when chatbots first appeared and sounded like robots? Thankfully, that\u2019s in the past! <\/p>\n<p class=\"wp-block-paragraph\">Transformer models have waved their magic wand and reshaped NLP tasks. But before you drop this post thinking \u201cGeez, transformers are way too dense to learn\u201d, bear with me. We will not go into another technical article trying to teach you the math behind this amazing technology, but instead, we\u2019re learning in practice what it can do for us.<\/p>\n<p class=\"wp-block-paragraph\">With the Transformers Pipeline from Hugging Face, NLP tasks are easier than ever. <\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s explore!<\/p>\n<p>The Only Explanation About What a Transformer Is<\/p>\n<p class=\"wp-block-paragraph\">Think of transformer models as the elite of the NLP world.<\/p>\n<p class=\"wp-block-paragraph\">Transformers excel because of their ability to focus on various parts of an input sequence through a mechanism called \u201cself-attention.\u201d<\/p>\n<p>Transformers are powerful due to \u201cself-attention,\u201d a feature that allows them to decide which specific parts of a sentence are the most important to focus on at any given time.<\/p>\n<p class=\"wp-block-paragraph\">Ever heard of BERT, GPT, or RoBERTa? That\u2019s them! BERT (Bidirectional Encoder Representations from Transformers) is a revolutionary Google AI language model from 2018 that understands text context by reading words from both left-to-right and right-to-left simultaneously.<\/p>\n<p class=\"wp-block-paragraph\">Enough talk, let\u2019s start diving into the transformers package <a href=\"https:\/\/huggingface.co\/docs\/transformers\/index\" rel=\"nofollow noopener\" target=\"_blank\">[1]<\/a>.<\/p>\n<p>Introduction to the Transformers Pipeline<\/p>\n<p class=\"wp-block-paragraph\">The Transformers library offers a complete toolkit for training and running state-of-the-art pretrained models. The Pipeline class, which is our main subject, provides an easy-to-use interface for diverse tasks, e.g.:<\/p>\n<p>Text generation<\/p>\n<p>Image segmentation<\/p>\n<p>Speech recognition<\/p>\n<p>Document QA.<\/p>\n<p>Preparation<\/p>\n<p class=\"wp-block-paragraph\">Before starting, let\u2019s run the basics and gather our tools. We\u2019ll need Python, the transformers library, and maybe either PyTorch or TensorFlow. Installation is business-as-usual:\u00a0pip install transformers. <\/p>\n<p class=\"wp-block-paragraph\">IDEs like Anaconda or platforms like Google Colab already bring those as a standard installation. No trouble.<\/p>\n<p class=\"wp-block-paragraph\">The Pipeline class allows you to execute many machine learning tasks using any model available on the Hugging Face Hub. It is as simple as plugging and playing.<\/p>\n<p class=\"wp-block-paragraph\">While every task comes with a pre-configured default model and preprocessor, you can easily customize this by using the model parameter to swap in a different model of your choice.<\/p>\n<p>Code<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s begin with the transformers 101 and see how it works before we get any deeper. The first task we will perform is a simple sentiment analysis on any given news headline.<\/p>\n<p>from transformers import pipeline<\/p>\n<p>classifier = pipeline(&#8220;sentiment-analysis&#8221;)<br \/>\nclassifier(&#8220;Instagram wants to limit hashtag spam.&#8221;)<\/p>\n<p class=\"wp-block-paragraph\">The response is the following.<\/p>\n<p>No model was supplied, defaulted to distilbert\/distilbert-base-uncased-finetuned-sst-2-english and revision 714eb0f (https:\/\/huggingface.co\/distilbert\/distilbert-base-uncased-finetuned-sst-2-english).<br \/>\nUsing a pipeline without specifying a model name and revision in production is not recommended.<\/p>\n<p>Device set to use cpu<br \/>\n[{&#8216;label&#8217;: &#8216;NEGATIVE&#8217;, &#8216;score&#8217;: 0.988932728767395}]<\/p>\n<p class=\"wp-block-paragraph\">Since we did not supply a model parameter, it went with the default option. As a classification, we got that the sentiment over this headline is 98% NEGATIVE. Additionally, we could have a list of sentences to classify, not just one.<\/p>\n<p class=\"wp-block-paragraph\">Super easy, right? But that\u2019s not just it. We can keep exploring other cool functionalities.<\/p>\n<p>Zero-Shot Classification<\/p>\n<p class=\"wp-block-paragraph\">A zero-shot classification means labelling a text that hasn\u2019t been labelled yet. So we don\u2019t have a clear pattern for that. All we need to do then is pass a few classes for the model to choose one. This can be very useful when creating training datasets for machine learning.<\/p>\n<p class=\"wp-block-paragraph\">This time, we are feeding the method with the model argument and a list of sentences to classify.<\/p>\n<p>classifier = pipeline(&#8220;zero-shot-classification&#8221;, model = &#8216;facebook\/bart-large-mnli&#8217;)<br \/>\nclassifier(<br \/>\n    [&#8220;Inter Miami wins the MLS&#8221;, &#8220;Match tonight betwee Chiefs vs. Patriots&#8221;, &#8220;Michael Jordan plans to sell Charlotte Hornets&#8221;],<br \/>\n    candidate_labels=[&#8220;soccer&#8221;, &#8220;football&#8221;, &#8220;basketball&#8221;]<br \/>\n    )<\/p>\n<p>[{&#8216;sequence&#8217;: &#8216;Inter Miami wins the MLS&#8217;,<br \/>\n  &#8216;labels&#8217;: [&#8216;soccer&#8217;, &#8216;football&#8217;, &#8216;basketball&#8217;],<br \/>\n  &#8216;scores&#8217;: [0.9162040948867798, 0.07244189083576202, 0.011354007758200169]},<br \/>\n {&#8216;sequence&#8217;: &#8216;Match tonight betwee Chiefs vs. Patriots&#8217;,<br \/>\n  &#8216;labels&#8217;: [&#8216;football&#8217;, &#8216;basketball&#8217;, &#8216;soccer&#8217;],<br \/>\n  &#8216;scores&#8217;: [0.9281435608863831, 0.0391676239669323, 0.032688744366168976]},<br \/>\n {&#8216;sequence&#8217;: &#8216;Michael Jordan plans to sell Charlotte Hornets&#8217;,<br \/>\n  &#8216;labels&#8217;: [&#8216;basketball&#8217;, &#8216;football&#8217;, &#8216;soccer&#8217;],<br \/>\n  &#8216;scores&#8217;: [0.9859175682067871, 0.009983371943235397, 0.004099058918654919]}]<\/p>\n<p class=\"wp-block-paragraph\">It looks like the model did a great job labelling these sentences!<\/p>\n<p>Text Generarion<\/p>\n<p class=\"wp-block-paragraph\">The package can also generate text. This is a good way of creating a nice little story generator to tell our kids before bedtime. We are increasing the temperature parameter to make the model more creative.<\/p>\n<p>generator = pipeline(&#8220;text-generation&#8221;, temperature=0.8)<br \/>\ngenerator(&#8220;Once upon a time, in a land where the King Pineapple was&#8221;)<\/p>\n<p>[{&#8216;generated_text&#8217;:<br \/>\n&#8220;Once upon a time, in a land where the King Pineapple was a common<br \/>\n crop, the Queen of the North had lived in a small village. The Queen had always<br \/>\nlived in a small village, and her daughter, who was also the daughter of the Queen,<br \/>\n had lived in a larger village. The royal family would come to the Queen&#8217;s village,<br \/>\n and then the Queen would return to her castle and live there with her daughters.<br \/>\nIn the middle of the night, she would lay down on the royal bed and kiss the princess<br \/>\n at least once, and then she would return to her castle to live there with her men.<br \/>\nIn the daytime, however, the Queen would be gone forever, and her mother would be alone.<br \/>\nThe reason for this disappearance, in the form of the Great Northern Passage<br \/>\nand the Great Northern Passage, was the royal family had always wanted to take<br \/>\nthe place of the Queen. In the end, they took the place of the Queen, and went<br \/>\nwith their daughter to meet the King. At that time, the King was the only person<br \/>\non the island who had ever heard of the Great Northern Passage, and his return was<br \/>\n in the past.<br \/>\nAfter Queen Elizabeth&#8217;s death, the royal family went to the<br \/>\nGreat Northern Passage, to seek out the Princess of England and put her there.<br \/>\nThe Princess of England had been in&#8221;}]<\/p>\n<p>Name and Entity Recognition<\/p>\n<p class=\"wp-block-paragraph\">This task can recognize person (PER), location (LOC), or entity (ORG) in a given text. That is great for creating quick marketing lists of lead names , for example.<\/p>\n<p>ner = pipeline(&#8220;ner&#8221;, grouped_entities=True)<br \/>\nner(&#8220;The man landed on the moon in 1969. Neil Armstrong was the first man to step on the Moon&#8217;s surface. He was a NASA Astronaut.&#8221;)<\/p>\n<p>[{&#8216;entity_group&#8217;: &#8216;PER&#8217;, &#8216;score&#8217;: np.float32(0.99960065),&#8217;word&#8217;: &#8216;Neil Armstrong&#8217;,<br \/>\n  &#8216;start&#8217;: 36,  &#8216;end&#8217;: 50},<\/p>\n<p> {&#8216;entity_group&#8217;: &#8216;LOC&#8217;,  &#8216;score&#8217;: np.float32(0.82190216),  &#8216;word&#8217;: &#8216;Moon&#8217;,<br \/>\n  &#8216;start&#8217;: 84,  &#8216;end&#8217;: 88},<\/p>\n<p> {&#8216;entity_group&#8217;: &#8216;ORG&#8217;,  &#8216;score&#8217;: np.float32(0.9842771),  &#8216;word&#8217;: &#8216;NASA&#8217;,<br \/>\n  &#8216;start&#8217;: 109,  &#8216;end&#8217;: 113},<\/p>\n<p> {&#8216;entity_group&#8217;: &#8216;MISC&#8217;,  &#8216;score&#8217;: np.float32(0.8394754),  &#8216;word&#8217;: &#8216;As&#8217;,<br \/>\n  &#8216;start&#8217;: 114,  &#8216;end&#8217;: 116}]<\/p>\n<p>Summarization<\/p>\n<p class=\"wp-block-paragraph\">Possibly one of the most used tasks, the summarization let\u2019s us reduce a text, keeping its essence and important pieces. Let\u2019s summarize this <a href=\"https:\/\/en.wikipedia.org\/wiki\/Transformer_(deep_learning)\" rel=\"nofollow noopener\" target=\"_blank\">Wikipedia page about Transformers<\/a>.<\/p>\n<p>summarizer = pipeline(&#8220;summarization&#8221;)<br \/>\nsummarizer(&#8220;&#8221;&#8221;<br \/>\nIn deep learning, the transformer is an artificial neural network architecture based<br \/>\non the multi-head attention mechanism, in which text is converted to numerical<br \/>\n representations called tokens, and each token is converted into a vector via lookup<br \/>\n from a word embedding table.[1] At each layer, each token is then contextualized within the scope of the context window with other (unmasked) tokens via a parallel multi-head attention mechanism, allowing the signal for key tokens to be amplified and less important tokens to be diminished.<\/p>\n<p>Transformers have the advantage of having no recurrent units, therefore requiring<br \/>\nless training time than earlier recurrent neural architectures (RNNs) such as long<br \/>\nshort-term memory (LSTM).[2] Later variations have been widely adopted for training<br \/>\n large language models (LLMs) on large (language) datasets.[3]<br \/>\n&#8220;&#8221;&#8221;)<\/p>\n<p>[{&#8216;summary_text&#8217;:<br \/>\n&#8216; In deep learning, the transformer is an artificial neural network architecture<br \/>\nbased on the multi-head attention mechanism . Transformerers have the advantage of<br \/>\n having no recurrent units, therefore requiring less training time than earlier<br \/>\nrecurrent neural architectures (RNNs) such as long short-term memory (LSTM)&#8217;}]<\/p>\n<p class=\"wp-block-paragraph\">Excellent!<\/p>\n<p>Image Recognition<\/p>\n<p class=\"wp-block-paragraph\">There are other, more complex tasks, such as image recognition. And just as easy to use as the other ones.<\/p>\n<p>image_classifier = pipeline(<br \/>\n    task=&#8221;image-classification&#8221;, model=&#8221;google\/vit-base-patch16-224&#8243;<br \/>\n)<br \/>\nresult = image_classifier(<br \/>\n    &#8220;https:\/\/images.unsplash.com\/photo-1689009480504-6420452a7e8e?q=80&amp;w=687&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.1.0&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&#8221;<br \/>\n)<br \/>\nprint(result)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2025\/12\/vitalii-khodzinskyi-WkmSheuqV6s-unsplash-953x1024.jpg\" alt=\"\" class=\"wp-image-637955\"\/>Photo by <a href=\"https:\/\/unsplash.com\/@khodzinskyi?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" rel=\"nofollow noopener\" target=\"_blank\">Vitalii Khodzinskyi<\/a> on <a href=\"https:\/\/unsplash.com\/photos\/a-small-dog-sitting-on-top-of-a-bed-WkmSheuqV6s?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" rel=\"nofollow noopener\" target=\"_blank\">Unsplash<\/a><\/p>\n<p>[{&#8216;label&#8217;: &#8216;Yorkshire terrier&#8217;, &#8216;score&#8217;: 0.9792122840881348},<br \/>\n{&#8216;label&#8217;: &#8216;Australian terrier&#8217;, &#8216;score&#8217;: 0.00648861238732934},<br \/>\n{&#8216;label&#8217;: &#8216;silky terrier, Sydney silky&#8217;, &#8216;score&#8217;: 0.00571345305070281},<br \/>\n{&#8216;label&#8217;: &#8216;Norfolk terrier&#8217;, &#8216;score&#8217;: 0.0013639888493344188},<br \/>\n{&#8216;label&#8217;: &#8216;Norwich terrier&#8217;, &#8216;score&#8217;: 0.0010306559270247817}]<\/p>\n<p class=\"wp-block-paragraph\">So, with these couple of examples, it is easy to see how simple it is to use the Transformers library to perform different tasks with very little code.<\/p>\n<p>Wrapping Up<\/p>\n<p class=\"wp-block-paragraph\">What if we wrap up our knowledge by applying it in a practical, small project?<\/p>\n<p class=\"wp-block-paragraph\">Let us create a simple Streamlit app that can read a resum\u00e9 and return the sentiment analysis and classify the tone of the text as [&#8220;Senior&#8221;, &#8220;Junior&#8221;, &#8220;Trainee&#8221;, &#8220;Blue-collar&#8221;, &#8220;White-collar&#8221;, &#8220;Self-employed&#8221;]<\/p>\n<p class=\"wp-block-paragraph\">In the next code:<\/p>\n<p>Import the packages<\/p>\n<p>Create Title and subtitle of the page<\/p>\n<p>Add a text input area<\/p>\n<p>Tokenize the text and split it in chunks for the transformer task. See the list of models <a href=\"http:\/\/huggingface.co\/models\" rel=\"nofollow noopener\" target=\"_blank\">[4]<\/a>.<\/p>\n<p>import streamlit as st<br \/>\nimport torch<br \/>\nfrom transformers import pipeline<br \/>\nfrom transformers import AutoTokenizer<br \/>\nfrom langchain_community.document_loaders import PyPDFLoader<br \/>\nfrom langchain.text_splitter import RecursiveCharacterTextSplitter<\/p>\n<p>st.title(&#8220;Resum\u00e9 Sentiment Analysis&#8221;)<br \/>\nst.caption(&#8220;Checking the sentiment and language tone of your resume&#8221;)<\/p>\n<p># Add input text area<br \/>\ntext = st.text_area(&#8220;Enter your resume text here&#8221;)<\/p>\n<p># 1. Load your desired tokenizer<br \/>\nmodel_checkpoint = &#8220;bert-base-uncased&#8221;<br \/>\ntokenizer = AutoTokenizer.from_pretrained(model_checkpoint)<\/p>\n<p># 2. Tokenize the text without padding or truncation<br \/>\n# We return tensors or lists to slice them manually<br \/>\ntokens = tokenizer(text, add_special_tokens=False, return_tensors=&#8221;pt&#8221;)[&#8220;input_ids&#8221;][0]<\/p>\n<p># 3. Instantiate Text Splitter with Chunk Size of 500 words and Overlap of 100 words so that context is not lost<br \/>\ntext_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100)<\/p>\n<p># 4. Split into chunks for efficient retrieval<br \/>\nchunks = text_splitter.split_documents(text)<\/p>\n<p># 5. Convert back to strings or add special tokens for model input<br \/>\ndecoded_chunks = []<br \/>\nfor chunk in chunks:<br \/>\n    # This adds [CLS] and [SEP] and converts back to a format the model likes<br \/>\n    final_input = tokenizer.prepare_for_model(chunk.tolist(), add_special_tokens=True)<br \/>\n    decoded_chunks.append(tokenizer.decode(final_input[&#8216;input_ids&#8217;]))<\/p>\n<p>st.write(f&#8221;Created {len(decoded_chunks)} chunks.&#8221;)<\/p>\n<p class=\"wp-block-paragraph\">Next, we will initiate the transformer\u2019s pipeline to:<\/p>\n<p>Perform the sentiment analysis and return the confidence %.<\/p>\n<p>Classify the text tone and return the confidence %.<\/p>\n<p># Initialize sentiment analysis pipeline<br \/>\nsentiment_pipeline = pipeline(&#8220;sentiment-analysis&#8221;)<\/p>\n<p># Perform sentiment analysis<br \/>\nif st.button(&#8220;Analyze&#8221;):<br \/>\n    col1, col2 = st.columns(2)<\/p>\n<p>    with col1:<br \/>\n        # Sentiment analysis<br \/>\n        sentiment = sentiment_pipeline(decoded_chunks)[0]<br \/>\n        st.write(f&#8221;Sentiment: {sentiment[&#8216;label&#8217;]}&#8221;)<br \/>\n        st.write(f&#8221;Confidence: {100*sentiment[&#8216;score&#8217;]:.1f}%&#8221;)<\/p>\n<p>    with col2:<br \/>\n        # Categorize tone<br \/>\n        tone_pipeline = pipeline(&#8220;zero-shot-classification&#8221;, model = &#8216;facebook\/bart-large-mnli&#8217;,<br \/>\n                                candidate_labels=[&#8220;Senior&#8221;, &#8220;Junior&#8221;, &#8220;Trainee&#8221;, &#8220;Blue-collar&#8221;, &#8220;White-collar&#8221;, &#8220;Self-employed&#8221;])<br \/>\n        tone = tone_pipeline(decoded_chunks)[0]<\/p>\n<p>        st.write(f&#8221;Tone: {tone[&#8216;labels&#8217;][0]}&#8221;)<br \/>\n        st.write(f&#8221;Confidence: {100*tone[&#8216;scores&#8217;][0]:.1f}%&#8221;)<\/p>\n<p class=\"wp-block-paragraph\">Here\u2019s the screenshot.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.newsbeep.com\/ie\/wp-content\/uploads\/2025\/12\/image-354.png\" alt=\"\" class=\"wp-image-637959\"\/>Sentiment and Language Tone Analysis. Image by the author.<\/p>\n<p>Before You Go<\/p>\n<p class=\"wp-block-paragraph\">Hugging Face (HF) Transformers Pipelines are truly a game-changer for data practitioners. They provide an incredibly streamlined way to tackle complex machine learning tasks, like text generation or image segmentation, using just a few lines of code.<\/p>\n<p class=\"wp-block-paragraph\">HF has already done the heavy lifting by wrapping sophisticated model logic into simple, intuitive methods. <\/p>\n<p class=\"wp-block-paragraph\">This shifts the focus away from low-level coding and allows us to focus on what really matters: using our creativity to build impactful, real-world applications.<\/p>\n<p class=\"wp-block-paragraph\">If you liked this content, find more about me in my website.<\/p>\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gustavorsantos.me\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/gustavorsantos.me<\/a><\/p>\n<p>GitHub Repository<\/p>\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/gurezende\/Resume-Sentiment-Analysis\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/github.com\/gurezende\/Resume-Sentiment-Analysis<\/a><\/p>\n<p>References<\/p>\n<p class=\"wp-block-paragraph\">[1. Transformers package] <a href=\"https:\/\/huggingface.co\/docs\/transformers\/index\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/huggingface.co\/docs\/transformers\/index<\/a><\/p>\n<p class=\"wp-block-paragraph\">[2. Transformers Pipelines] <a href=\"https:\/\/huggingface.co\/docs\/transformers\/pipeline_tutorial\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/huggingface.co\/docs\/transformers\/pipeline_tutorial<\/a><\/p>\n<p class=\"wp-block-paragraph\">[3. Pipelines Examples] <a href=\"https:\/\/huggingface.co\/learn\/llm-course\/chapter1\/3#summarization\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/huggingface.co\/learn\/llm-course\/chapter1\/3#summarization<\/a><\/p>\n<p class=\"wp-block-paragraph\">[3. HF Models] <a href=\"http:\/\/huggingface.co\/models\" rel=\"nofollow noopener\" target=\"_blank\">huggingface.co\/models<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"(NLP) revolutionized how we interact with technology. Do you remember when chatbots first appeared and sounded like robots?&hellip;\n","protected":false},"author":2,"featured_media":215650,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[220,218,219,8062,61,60,112030,36398,80,61118],"class_list":["post-215649","post","type-post","status-publish","format-standard","has-post-thumbnail","category-artificial-intelligence","tag-ai","tag-artificial-intelligence","tag-artificialintelligence","tag-hugging-face","tag-ie","tag-ireland","tag-nlp","tag-python","tag-technology","tag-transformers"],"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts\/215649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/comments?post=215649"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/posts\/215649\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/media\/215650"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/media?parent=215649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/categories?post=215649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/ie\/wp-json\/wp\/v2\/tags?post=215649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}