Text normalization techniques

Python में Natural Language Processing (NLP)

Fouad Trad

Machine Learning Engineer

Text normalization

  • Normalization शब्दों को मानक फ़ॉर्मेट में लाता है
  • टेक्स्ट क्लासिफिकेशन, सर्च, सेंटिमेंट एनालिसिस में उपयोगी
  • जिन तकनीकों को देखेंगे:
    • Lowercasing
    • Stemming
    • Lemmatization

छवि जिसमें तीन लोग अलग-अलग तरीके से कहते हैं कि उन्हें बेहतरीन निर्देशन वाली फ़िल्में देखना पसंद है: "I enjoy watching movies with great direction!", "I enjoyed watching movies that are well-directed.", "Movies with excellent direction are something I enjoy."

Python में Natural Language Processing (NLP)

Lowercasing

  • अगर हम normalize नहीं करेंगे, तो ये शब्द अलग टोकन माने जाएँगे
  • इससे मॉडल गुमराह होंगे और vocabulary का आकार बढ़ेगा
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

छवि: एक व्यक्ति 'data', 'Data', और 'DATA' के बीच उलझन में।

Python में Natural Language Processing (NLP)

Lowercasing applicability

उपयोगी कब

कीवर्ड-आधारित कार्यों के लिए

छवि: कोई व्यक्ति टेक्स्ट में कीवर्ड खोज रहा है.

Python में Natural Language Processing (NLP)

Lowercasing applicability

उपयोगी कब

कीवर्ड-आधारित कार्यों के लिए

छवि: कोई व्यक्ति टेक्स्ट में कीवर्ड खोज रहा है.

कब उपयोगी नहीं

जहाँ मीनिंग के लिए case का अंतर ज़रूरी हो

छवि: "us" दिखाने के लिए लोगों का समूह और "US" दिखाने के लिए अमेरिकी झंडा.

Python में Natural Language Processing (NLP)

Stemming

  • शब्दों को suffix हटाकर root रूप में लाता है
    • running → run
    • reading → read
  • समान वेरिएशन को साथ ग्रुप करने में मददगार
  • कभी-कभी गैर-मान्य शब्द बनते हैं
    • organization → organizat

Stem_logo.png

Python में Natural Language Processing (NLP)

Stemming in code

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
tokens = ['running', 'bats', 'organizations', 'reading']
stemmed = [stemmer.stem(word) for word in tokens]
print(stemmed)
['run', 'bat', 'organizat', 'read']
Python में Natural Language Processing (NLP)

Lemmatization

  • शब्दों को base रूप में लाता है
  • परिणाम एक वैध शब्द होना सुनिश्चित करता है
    • organizations → organization
  • जब व्याकरणिक शुद्धता ज़रूरी हो तब उपयोगी
  • stemming से धीमा, पर अधिक सटीक

lemmalogo.png

Python में Natural Language Processing (NLP)

Lemmatization in code

from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')
lemmatizer = WordNetLemmatizer()
tokens = ['running', 'bats', 'organizations', 'reading']
lemmatized = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized)
['running', 'bat', 'organization', 'reading']
Python में Natural Language Processing (NLP)

Stemming

  • तेज़
  • non-dictionary शब्द दे सकता है
  • स्पीड चाहिए तो उपयोग करें

छवि: एक व्यक्ति चेनसॉ से पेड़ काट रहा है.

Lemmatization

  • धीमा
  • ज़्यादा सटीक
  • व्याकरणिक शुद्धता चाहिए तो उपयोग करें

छवि: कोई व्यक्ति पेड़ की संरचना बचाते हुए सावधानी से ट्रिम कर रहा है.

Python में Natural Language Processing (NLP)

अभ्यास करते हैं!

Python में Natural Language Processing (NLP)

Preparing Video For Download...