...

NLP Best Practices for Analyzable Data: The Complete Guide

NLP Best Practices for Analyzable Data: The Complete Guide

​Natural Language Processing or NLP is how computers understand us. It is the tech behind your phone’s auto-correct and smart speakers. But raw text is usually a total mess for these systems. It is filled with typos and slang that trip up AI models. This is why we need nlp best practices for analyzable data. If you want your AI to work well, you must clean your data first.

​The big rule in data science is garbage in, garbage out. If your raw text is not clean, even the smartest AI will fail. About 80% of NLP projects fail because of messy text data. This guide will show you how to fix that step by step. We will cover everything from removing noise to smart tokenization. By the end, you will know how to turn messy text into clear insights.

​The goal of this process is simple and clear. We want to turn noisy and unstructured text into clean datasets. Without these steps, your model might miss patterns or give wrong answers. It is like washing veggies before you cook them. Dirty inputs always lead to bad results in the end. Let’s dive into how to do it right for your next project.

Table of Contents

​The Critical Importance of Cleaning Text Data

​Imagine training an AI to find customer complaints. If your data has typos and emojis, the AI gets confused. This leads to inaccurate predictions and a lot of wasted time. Models actually train much slower when they have to process noise. Skipping the cleaning step is a major risk for any project. It can even cause bias in your final results.

​Clean data is the backbone of sentiment analysis and chatbots. A single unprocessed emoji can change a model’s verdict. It might flip a “positive” rating to a “negative” one instantly. This is why nlp best practices for analyzable data are so vital. You need a clear workflow to handle these small but big details. It ensures your AI understands the true meaning of the words.

​In some fields, clean data can even save lives. Healthcare AI needs to understand patient notes perfectly. Stripping out a comma or a “not” can change a diagnosis. This is why we don’t just delete everything that looks like noise. We have to be smart about what we keep and what we cut. Proper cleaning makes your AI both fast and reliable.

​Core Text Normalization Strategies

​Standardizing Case and Whitespace

​Lowercasing is one of the most common steps in NLP. It stops the computer from seeing “Apple” and “apple” as different. This prevents duplication in your data and keeps things simple. Most developers do this right at the start of the project. It is a quick way to make your text consistent. Just remember to do it uniformly across your whole dataset.

  • Lowercasing helps the model recognize words regardless of their position in a sentence.
  • Whitespace trimming removes extra spaces that can mess up word counts.
  • Consistency is key because mixed formatting always confuses machine learning models.

​However, you should not always lowercase everything you see. If you are doing Named Entity Recognition, case matters a lot. “Bush” the person is different from a “bush” in a garden. In these cases, keeping the original case helps the AI. Always think about your specific goal before you hit the lowercase button. Balancing simplicity and meaning is part of the best practices.

​Punctuation and Special Character Management

​Removing punctuation helps strip away noise from your raw text. Symbols like brackets and slashes often don’t add much meaning. You can use simple code to wipe these out quickly. This leaves you with a cleaner list of words to analyze. It is a standard part of the nlp best practices for analyzable data. Most people do this right after they fix the casing.

​Sometimes you need to keep certain marks to understand the tone. Sarcasm detection relies heavily on things like exclamation points. A “Great…” with three dots feels very different from a “Great!”. If you strip those away, the AI might miss the joke. Financial data also needs symbols like dollar signs to make sense. Only remove what you are sure is useless noise.

  • Targeted removal means you only delete symbols that do not help your specific task.
  • Regex patterns like re.sub(r'[^\w\s]’, ”, text) are the best way to handle complex symbol stripping.
  • Compound words like “state-of-the-art” should keep their hyphens to stay as one unit.

​Expanding Contractions and Standardizing Abbreviations

​Contractions like “can’t” or “it’s” can be tricky for computers. It is often better to turn them into “cannot” or “it is”. This makes your text more uniform and easier to count. There are libraries that can do this for you automatically. It is a small step that makes a big difference in quality. This ensures every word is in its full, standard form.

​Abbreviations are another area where you need to be careful. Someone might write “U.S.A” while another person writes “USA”. To the computer, these look like two completely different things. You should pick one format and stick to it everywhere. This helps the model see that they are the same entity. Standardizing these early saves a lot of headache later on.

​Advanced Tokenization Techniques

​Word-Level Tokenization

​Tokenization is just splitting text into smaller pieces called tokens. Word-level tokenization is the most basic form of this. It takes a sentence and breaks it into individual words. This allows the computer to look at each word one by one. It is the foundation for almost every NLP task today. Libraries like NLTK make this very easy to do.

  • Word splitting usually happens at spaces but must handle punctuation too.
  • Token lists are what you feed into your machine learning algorithms.
  • Complexity arises in languages that do not use spaces between words.

​While it sounds easy, word splitting has some hidden traps. For example, should “New York” be one token or two?. If you split it, you lose the specific location meaning. This is why some people use multi-word tokens for names. Your choice here depends on how deep you need to go. Good tokenization is a huge part of nlp best practices for analyzable data.

​Subword and Character Tokenization

Subword and Character Tokenization

​Modern models like GPT and BERT use subword tokenization. This breaks rare words into smaller, more common chunks. For example, “HuggingFace” might become “Hugging” and “##Face”. This helps the model understand words it has never seen before. It is a very clever way to handle a huge vocabulary. It prevents the “unknown word” error that used to be common.

  • BPE (Byte Pair Encoding) is a popular way to find common subword patterns.
  • Out-of-vocabulary problems are solved by breaking words into known pieces.
  • Efficiency is higher because the model needs a smaller total vocabulary.

​Character tokenization is even more granular than subwords. It looks at every single letter as its own token. This is useful for things like spelling correction or poetry. But it makes the sequences very long for the computer to process. Most people find subword tokenization to be the sweet spot. It gives you the best balance of speed and understanding.

​Sentence-Boundary Detection

​Sometimes you need to look at whole sentences, not just words. Sentence tokenization helps you split a big block of text. This is vital for tasks like summarizing a long story. It tells the AI where one thought ends and another begins. Computers look for periods and capital letters to find these edges. It is a key step in the nlp text processing pipeline.

  • Period detection is tricky because of abbreviations like “Dr.” or “St.”.
  • Logical units allow the model to process ideas one at a time.
  • Translation models rely on sentence splitting to work correctly.

​Without good sentence boundaries, a chatbot might get very confused. It might try to reply to two different questions as if they were one. This is why we use advanced tools like spaCy for this. These tools are smart enough to ignore periods in “Mr. Smith”. They focus on the real end of the sentence instead. This keeps your data clean and easy to analyze.

​Strategic Stop Word Removal

​The Role of Stop Words in NLP

​Stop words are common words like “the,” “is,” and “and”. They appear everywhere but don’t hold much unique meaning. Deleting them can make your dataset much smaller and faster. It helps the AI focus on the “meat” of the sentence. For example, “The cat is on the mat” becomes “cat mat”. This is a classic way to streamline nlp best practices for analyzable data.

  • Dataset reduction speeds up the training of your AI models.
  • Keyword focus allows the computer to find the most important terms.
  • Standard lists are available in most NLP libraries like NLTK.

​While removing them is common, it is not a law. You have to decide if those words matter for your specific goal. In some cases, stop words are the most important part. If you are doing search, you might want to keep them. If you are doing summary, you might want to cut them. Always test your model both ways to see what works best.

​Risks of Aggressive Removal

​Over-cleaning your data can actually be a very bad thing. If you remove the word “not,” you change the whole meaning. “This is not good” becomes “This good” after aggressive cleaning. This would make a sentiment analysis model think a hater is a fan. This is a massive mistake that many beginners make often. You must be very careful with negations like “no” or “never”.

  • Sentiment flipping occurs when critical words like “not” are deleted.
  • Intent loss happens in chatbots when question words like “how” disappear.
  • Context destruction can make a sentence completely unreadable for the AI.

​Chatbots also need stop words to understand what you are asking. If you ask “What is the time?”, the AI needs “What” to know it’s a question. If you strip it down to just “time,” the AI might get confused. Legal and medical texts also rely on small words for precision. In those fields, a single preposition can change a whole rule. Clean your text, but do not destroy the message.

​Customizing Stop Word Lists

​You don’t have to use the default list from a library. In fact, it is often better to make your own. If you are working in a specific field, some words are noise just for you. In a medical paper, the word “patient” might appear on every page. If it doesn’t help you sort the data, you can add it to your list. This is how you tailor nlp best practices for analyzable data.

  • Domain-specific lists add jargon that is too common in your industry.
  • Task-specific tweaks involve keeping words like “not” for sentiment tasks.
  • Expert validation ensures you aren’t deleting words that experts think are vital.

​Creating a custom list is a simple but powerful optimization. You start with a standard list and then add or remove words. This gives you total control over what the AI sees. It is one of the best ways to improve your model’s performance. Always keep a record of what you removed so you can change it later. Good data prep is an iterative process that takes time.

​Word Normalization: Lemmatization vs. Stemming

Lemmatization vs. Stemming: Normalizing Words

​Stemming: The Speed-First Approach

​Stemming is a fast way to cut words down to their root. It uses simple rules to chop off the ends of words. For example, “running” and “runner” both become “run”. It is very quick because it doesn’t look at a dictionary. This makes it great for huge datasets where speed is a big deal. Search engines often use this to match your queries fast.

  • High speed is the main reason developers choose stemming.
  • Rule-based means it just follows patterns without knowing the word.
  • Choppy results can happen, like turning “better” into “bet”.

​The downside of stemming is that it can be a bit sloppy. Since it doesn’t know the word, it might cut too much. “University” might become “univers,” which isn’t a real word. This can make the data hard for humans to read later. If you need perfect accuracy, stemming might not be for you. But for quick and dirty sorting, it is a great tool.

​Lemmatization: The Accuracy-First Approach

​Lemmatization is the smarter, more precise cousin of stemming. Instead of just chopping words, it looks them up in a dictionary. It finds the “lemma” or the real base form of the word. For example, it knows that “was” and “is” both come from “be”. This keeps the meaning intact even after the text is simplified. It is a pillar of nlp best practices for analyzable data.

  • Dictionary-based means it always gives you a real, meaningful word.
  • POS tagging helps it know if “saw” is a tool or the past of “see”.
  • Higher precision makes it perfect for legal or medical documents.

​The catch is that lemmatization is much slower than stemming. The computer has to do more work for every single word. It also needs to know the context of the word to do its job well. This makes the whole pipeline a bit more complex to build. But if you want the best results, it is usually worth the extra time. Most modern AI projects prefer this method today.

​Choosing the Right Technique

​How do you pick between these two word-simplifying methods?. It all comes down to what your specific project needs most. If you are building a massive search engine, use stemming. You need to process millions of words in a split second. The small errors won’t matter as much as the overall speed. It is a classic trade-off in the world of computer science.

  • Use Stemming for large-scale, low-latency tasks like simple web search.
  • Use Lemmatization for high-accuracy tasks like legal contract analysis.
  • Balance is important; sometimes you can use both in different stages.

​If you are working on something where meaning is king, go with lemmatization. This includes things like chatbots or analyzing medical records. You can’t afford to have the computer misread a word’s base form. It might be slower, but your model will be much more reliable. Always consider your hardware and your goals before you decide. Testing both is the only way to be 100% sure.

​Noise Removal and Data Scrubbing

​Dealing with Emojis and Emoticons

​Emojis are everywhere in social media data these days. For some tasks, they are just noise and should be removed. If you are doing topic modeling, an emoji doesn’t help much. You can use regex to strip them out in one quick step. This keeps your word lists clean and focused on text. It is a simple part of cleaning raw text data.

​However, for sentiment analysis, emojis are absolute gold. A “😊” tells you more than a whole sentence sometimes. You can convert these into words like “happy” or “smile”. This allows the AI to “read” the emotion as if it were text. It is a great way to keep that valuable context alive. Don’t just delete them without thinking about their value first.

  • Keep/Convert emojis if you need to understand the user’s mood or tone.
  • Remove emojis if they are just clutter in a formal document.
  • Mapping tools like demoji.replace(text, “”) can automatically handle these icons.

​Web Data Sanitization

​If you scrape data from the web, it will be full of code. You will see things like <p> and <div> tags everywhere. This is “garbage” that your NLP model does not need at all. Tools like BeautifulSoup are perfect for stripping this out. They leave you with just the clean, readable text from the page. This is a must-do step for any web-based project.

  • HTML/XML stripping ensures the AI isn’t trying to learn coding tags.
  • URL removal stops long web links from cluttering up your word counts.
  • Script cleaning removes hidden JavaScript that can pop up in text.

​Metadata and headers can also sneak into your scraped text. These often repeat on every page and can bias your results. You should write rules to find and delete this boilerplate text. This ensures your AI is looking at unique content only. Cleaning web data is often the messiest part of the whole job. But doing it right is a core part of nlp best practices for analyzable data.

​Handling Slang and Domain Jargon

​Slang can be a real headache for standard NLP tools. A word like “bet” can mean a wager or a simple “okay”. If your data is from social media, you need to handle this. You can create a slang dictionary to normalize these terms. This turns “omg” into “oh my god” so the AI understands. It makes your data much more consistent and clear.

  • Custom dictionaries are the best way to handle industry-specific jargon.
  • Normalizing slang ensures the AI doesn’t see “LMAO” as a new, unknown word.
  • Expert input is vital when dealing with very technical medical or legal terms.

​In fields like medicine, jargon is actually the most important part. Terms like “STAT” or “PRN” have very specific meanings. If you treat them as noise, you lose the whole point of the text. You should build a custom list of these words to keep them safe. This “domain adaptation” is what separates good AI from great AI. Always respect the specialized language of your field.

​From Words to Numbers: Text Vectorization Overview

​Frequency-Based Methods

​Once your text is clean, you have to turn it into numbers. Computers can’t “read” words; they only understand math. TF-IDF is a classic way to do this with frequency. it looks at how often a word appears in one doc vs. many. This helps the computer find the most unique and important words. it is a simple and very effective way to start.

  • TF-IDF is calculated using the formula: W(d, t) = TF(d, t) * log(N / DF(t)).
  • Bag of Words just counts every word but loses the order of sentences.
  • Simplicity makes these methods great for basic sorting and searching.

​The problem with these methods is that they don’t know meaning. To a frequency counter, “cat” and “kitten” are totally different. It doesn’t know they are both small, furry animals. This is a big limit if you want a smart, conversational AI. But for simple tasks, these methods are still incredibly powerful. They are the foundation of nlp best practices for analyzable data.

​Semantic-Based Methods

Semantic-Based Methods

​To get smarter, we use things like Word2Vec and embeddings. These methods turn words into long lists of numbers called vectors. Words with similar meanings end up with similar numbers. This allows the computer to “see” that “king” and “queen” are related. It captures the deep relationships between words in a clever way. This is how modern AI gets its “common sense”.

  • Word2Vec looks at the words surrounding a term to figure out its meaning.
  • Semantic mapping allows the computer to understand synonyms automatically.
  • Contextual embeddings like BERT go even further by looking at the whole sentence.

​The newest tech uses Transformers like GPT and BERT for this. They are amazing because they understand the same word can mean two things. They know “bank” in a river is different from a money “bank”. This is the cutting edge of nlp best practices for analyzable data. It requires a lot of computer power but gives the best results. This is the secret sauce behind the best chatbots today.

​Industry-Specific Best Practices and DOs and DON’Ts

​Best Practices for High-Performance Models

​To get the best results, you must be very consistent. Apply your cleaning rules to every single piece of data you have. If you lowercase some docs but not others, the AI will fail. Use automated pipelines to make sure no mistakes happen. This “rigor” is what makes a project professional and reliable. It is the first rule of high-performance NLP.

  • Uniform formatting ensures the model sees the same patterns every time.
  • Language-specific tools should be used for non-English text like Spanish or Chinese.
  • Documentation is vital so you know exactly how the data was changed.

​You also need to check for “data imbalance” in your sets. If you have 90% positive reviews, your AI will be biased. It will think almost everything is positive because that’s all it saw. You might need to add more negative examples to fix this. Keeping your data balanced is just as important as keeping it clean. It is a key step in nlp best practices for analyzable data.

​Critical “Don’ts” in Preprocessing

​Don’t just delete all punctuation without a second thought. As we saw, some marks are very important for meaning. Financial data needs dollar signs, and legal text needs sections. Blindly cleaning your text can actually “break” the data. Always ask yourself: “Will the AI still understand this after I cut this?”. This simple question can save your whole project from failure.

  • Don’t over-stem because it can turn real words into confusing gibberish.
  • Don’t ignore jargon that is critical to your specific industry or field.
  • Don’t hardcode rules that are too stiff to handle new, weird inputs.

​Another big “don’t” is using generic stop word lists for everything. Every task is different and needs its own specific list. If you are doing sentiment analysis, generic lists will delete “not”. This is a recipe for disaster that you can easily avoid. Take the time to customize your tools for your specific goal. It is the best way to ensure your data stays analyzable.

​Common Pitfalls and Troubleshooting

​One of the biggest traps is “over-cleaning” your raw data. It is easy to get carried away and delete too much. If you strip all numbers, you might lose vital dates or prices. If you delete all hyphens, you break words like “pre-ordered”. This makes the text look like “pre ordered,” which is different. Finding the right balance is the hardest part of the job.

  • Check for lost context by reading some of your cleaned data samples.
  • Use regex carefully to avoid deleting things you actually wanted to keep.
  • Test edge cases like names with symbols or words with multiple meanings.

​Another pitfall is using English rules for other languages. Spanish has different stop words and different ways to split sentences. Chinese doesn’t even use spaces between words at all!. If you try to use an English tokenizer on it, it won’t work. Always make sure your tools match the language of your data. This is a core part of nlp best practices for analyzable data.

​Real-World Impact: Case Studies in Proper Preprocessing

Real-World Impact: Case Studies in Proper Preprocessing

​E-Commerce Sentiment Analysis

​An e-commerce team once built a model to track reviews. It was doing a bad job at finding negative feedback. It kept calling “Not great, could be better” a positive review. The reason was simple: they were deleting the word “not”. Once they stopped doing that, their accuracy shot up. It went from a weak 72% to a very strong 89% instantly.

  • Preserving negations allowed the model to see the true user sentiment.
  • Accuracy gains meant the company could fix product issues much faster.
  • Time savings were huge because staff didn’t have to fix errors manually.

​Healthcare AI and Patient Triage

​A hospital tried using a chatbot to talk to patients. It made a scary mistake by ignoring “I can’t breathe”. The cleaning step stripped out the “‘t” and made it “I can breathe”. This meant the bot told a sick person to just stay home. They fixed it by expanding contractions into full words. This small change dropped their error rate by a massive 65%.

  • Contraction expansion made sure the bot never missed a “not” again.
  • Sentence detection helped the bot understand urgent vs. casual talk.
  • Lives were saved because the bot could now find critical symptoms fast.

​Financial News and Stock Prediction

​A hedge fund used AI to read news and predict stocks. Their model struggled with abbreviations like “Fed” and “$AAPL”. The basic tools were splitting these into meaningless bits. They built a custom tokenizer that knew these were special terms. Their model’s precision jumped by 40% after this change. It shows that domain-specific cleaning is a huge win.

  • Custom rules for stock symbols kept the most important data safe.
  • Precision jumps led to better trade decisions and more profit.
  • Industry jargon must be a priority in any specialized NLP project.

​The Future of Analyzable Data

​Language is always changing, and your AI needs to keep up. New slang and emojis pop up on social media every week. This means your cleaning rules from last year might be old. You should review your preprocessing pipeline every few months. This ensures your data stays clean as the world changes. It is the only way to stay ahead in the fast world of AI.

  • Regular audits of your data help you find new types of noise.
  • Expert validation ensures you aren’t losing new, important meanings.
  • Iterative updates keep your model accurate over long periods of time.

​In the end, nlp best practices for analyzable data are about care. You have to look at your text as a person, not just a machine. Understand what matters to your users and your specific field. Use the tools we talked about to scrub away the real garbage. But always protect the “soul” and the meaning of the message. Clean data is the key to building AI that truly understands us.

FAQs on NLP Best Practices for Analyzable Data

​What is the role of Data Augmentation in NLP preprocessing?

​Data augmentation involves creating new training samples by slightly changing existing ones. You can swap words with synonyms or use back-translation. This helps when you have a small dataset. It makes your model more robust and less likely to overfit.

​How does N-gram modeling help in analyzing text?

​N-grams are sequences of N words that appear together in a text. For example, bi-grams are pairs like “Machine Learning.” They help the model understand the relationship between neighboring words. This adds context that simple word-level analysis might miss.

​What is the difference between Discrete and Continuous word representations?

​Discrete representations like One-Hot Encoding treat words as isolated units with no relationship. Continuous representations like embeddings place words in a multi-dimensional space. In a continuous space, the distance between words represents how similar they are. This is a core part of nlp best practices for analyzable data.

​How do you handle Out-of-Vocabulary (OOV) words during inference?

​OOV words are terms the model did not see during its training phase. You can handle them by using a special “UNK” token for unknown words. Subword tokenization also helps by breaking the new word into known pieces. This ensures the model doesn’t crash when it sees something new.

​What is Part-of-Speech (POS) Tagging?

​POS tagging is the process of labeling each word as a noun, verb, or adjective. It helps the computer understand the grammatical structure of a sentence. This is very useful for lemmatization and disambiguation. It provides a deeper layer of meaning to the raw text.

​How does Named Entity Recognition (NER) improve data analysis?

​NER identifies and categorizes key entities like names, locations, and dates. It helps in extracting structured information from unstructured text. This is vital for news analysis and automated document filing. It turns a block of text into a list of searchable facts.

​What is Dependency Parsing in NLP?

​Dependency parsing analyzes the grammatical relationships between words in a sentence. It shows how one word depends on another to create meaning. This helps the model understand complex sentences with many clauses. It is a more advanced step than simple tokenization.

​How do you handle multi-language datasets in a single pipeline?

​You should use language identification tools like LangID at the start of your pipeline. Once the language is known, apply the specific nlp best practices for analyzable data for that tongue. Each language needs its own stop word list and tokenizer. Never assume one set of rules fits all.

​What is the impact of text length on model performance?

​Very long texts can be hard for some models to process due to memory limits. You may need to truncate the text or summarize it first. Conversely, very short texts might lack enough context for accurate prediction. Finding a consistent length for your inputs helps the model stay stable.

​How does spell checking affect NLP results?

​Automated spell checking can fix typos that would otherwise be seen as OOV words. However, it might also “fix” jargon or names incorrectly. It is best to use a domain-specific dictionary for spell checking. This keeps the data clean without losing specialized terms.

​What are Word Embeddings and why are they used?

​Word embeddings are dense vectors that represent words in a numerical space. They are used because they capture semantic meanings that simple counts cannot. Formulas like Cosine Similarity = (A · B) / (||A|| ||B||) are used to measure how close two word vectors are.

​How do you deal with rare words in a large corpus?

​Rare words can be replaced with a generic token or removed if they appear too infrequently. If a word only appears once in a million sentences, it won’t help the model learn patterns. This process is called “frequency filtering” and it reduces noise.

​What is the purpose of a Confusion Matrix in NLP?

​A confusion matrix is a table used to evaluate the performance of a classification model. It shows exactly which categories the model is getting mixed up. This helps you see if your nlp best practices for analyzable data need adjustment. It is a great way to debug a biased model.

​How does Topic Modeling differ from Text Classification?

​Text classification is a supervised task where you give the AI specific labels. Topic modeling is unsupervised, meaning the AI finds the categories on its own. It clusters similar documents together based on word patterns. This is useful when you don’t have pre-labeled data.

​What is the significance of the Attention Mechanism?

​The attention mechanism allows a model to focus on specific words in a sentence when making a prediction. It mimics how humans pay more attention to certain keywords while reading. This is the core technology behind the Transformer models we use today.

​How do you manage text data that contains sensitive PII?

​Personally Identifiable Information (PII) like names or social security numbers must be masked. You can use regex or NER to find these and replace them with generic tags like “[NAME]”. This is a critical ethical part of preparing analyzable data.

​What is Text Summarization in the context of preprocessing?

​Summarization shrinks a long document into a few key sentences. This can be used as a preprocessing step to feed large documents into models with small input limits. It keeps the main idea while getting rid of the fluff.

​How do you handle case-sensitive tasks like sentiment in slang?

​In some slang, ALL CAPS can mean someone is shouting or angry. In these specific cases, you should not lowercase the text. You might even create a feature that counts how many uppercase letters are used. This preserves the emotional intensity of the message.

​What is the role of Word Senses Disambiguation?

​This process helps the computer figure out which meaning of a word is being used. For example, “lead” can be a metal or a verb meaning to guide. POS tagging and context windows help the AI make the right choice.

​How do you evaluate the quality of cleaned data?

​The best way is to have a human expert review a random sample of the processed text. If the expert can still understand the message, the cleaning was successful. If the text looks like gibberish, you have over-cleaned your data.

Leave a Comment

Your email address will not be published. Required fields are marked *