Total Pageviews

Tuesday, December 31, 2024

विश्व ब्रेल दिवस

 04 जनवरी को विश्व ब्रेल दिवस मनाया जाता है। सबको हार्दिक शुभकामनाएँ।





Thursday, December 26, 2024

संरचनात्मक संदिग्धार्थकता (structural ambiguity)

 जब वाक्य या पदबंध की रचना के कारण वाक्य के अर्थ को समझने में कठिनाई उत्पन्न होती है तो ऐसी स्थिति को संरचनात्मक संदिग्धार्थकता कहते हैं। नीचे दिए गए चुटकुलों में इसका सुंदर प्रयोग देखा जा सकता है-





Monday, December 16, 2024

पाइथन में प्राकृतिक भाषा संसाधन संबंधी प्रमुख कार्य

इनके बारे में जानने के लिए लिंक को क्लिक करके खोलें- 

(1) पाइथन में प्राकृतिक भाषा संसाधन, भाग : 1. टोकनीकरण (Tokenization)

(2) पाइथन में प्राकृतिक भाषा संसाधन, भाग : 2. रूप विश्लेषण/कोशीमीकरण (Morphological Analysis/Lemmatization)

(3) पाइथन में प्राकृतिक भाषा संसाधन, भाग : 3. टैगिंग (Tagging)

(4) पाइथन में प्राकृतिक भाषा संसाधन, भाग : 4. पदबंध चिह्नन (Phrase Marking) और चंकिंग (Chunking)

(5) पाइथन में प्राकृतिक भाषा संसाधन, भाग : 5. पद-विच्छेदन/पार्सिंग (Parsing)

पाइथन में प्राकृतिक भाषा संसाधन, भाग : 1. टोकनीकरण (Tokenization)

 पाइथन में प्राकृतिक भाषा संसाधन, भाग : 1. टोकनीकरण (Tokenization)

§  इनपुट पाठ को छोटे खंडों, जैसे- वाक्यों, शब्दों, वर्णों आदि में तोड़ने की प्रक्रिया टोकनीकरण कहलाती है।

§  प्राकृतिक भाषा संसाधन प्रणालियों में यह कार्य स्वचालित रूप से किया जाता है।

§  इसे खंदीकरण भी कहते हैं, अर्थात- पाठ का खंड-खंड करना।

§  जिस स्तर पर खंड बनाए जाते हैं, उनमें से प्रत्येक को एक टोकन कहते हैं, जैसे- पाठ को वाक्यों में तोड़ने पर प्रत्येक वाक्य एक टोकन होगा, जबकि वाक्य को शब्दों में तोड़ने पर प्रत्येक शब्द एक टोकन होगा।

पाइथन में टोकनीकरण

इसके लिए निम्नलिखित कोड करें-

# prompt: tokenizer in python for hindi

 

!pip install indic-nlp-library

 

from indicnlp.tokenize import indic_tokenize

 

text = " हिंदी भारत की राजभाषा है। मैं एक एक भारतीय हूँ। हमें अपनी हिंदी पर बहुत गर्व होना चाहिए।"

tokens = indic_tokenize.trivial_tokenize(text)

tokens

इसमें ‘text’ की जगह पर कोई भी पाठ दिया जा सकता है।

आउटपुट : 

Installing collected packages: morfessor, 
sphinxcontrib-jquery, 
sphinx-argparse, sphinx-rtd-theme,
 indic-nlp-library
Successfully installed indic-
nlp-library-0.92 morfessor-2.0.6 
sphinx-argparse-0.5.2 sphinx-rtd-
theme-3.0.2 sphinxcontrib-jquery-4.1

['हिंदी',
 'भारत',
 'की',
 'राजभाषा',
 'है',
 '।',
 'मैं',
 'एक',
 'एक',
 'भारतीय',
 'हूँ',
 '।',
 'हमें',
 'अपनी',
 'हिंदी',
 'पर',
 'बहुत',
 'गर्व',
 'होना',
 'चाहिए',
 '।']

पाइथन में प्राकृतिक भाषा संसाधन, भाग : 2. रूप विश्लेषण/कोशीमीकरण (Morphological Analysis/Lemmatization)

 पाइथन में प्राकृतिक भाषा संसाधन, भाग : 2. रूप विश्लेषण/कोशीमीकरण (Morphological Analysis/Lemmatization)

§  किसी पाठ में आए हुए शब्दों के सभी रूपसाधित रूपों का विश्लेषण करके उनके मूल रूप को प्राप्त करने की प्रक्रिया रूप-विश्लेषण कहलाती है।

§  तकनीकी रूप से इसे कोशीमीकरण नाम दिया गया है, जिसका अर्थ है- कोशीय इकाई को प्राप्त करना। कोशीय इकाई शब्द का वह रूप है, जो शब्दकोश में पाया जाता है।

§  पाठ में जब शब्दों के रूपसाधित रूप आते हैं, तो इस प्रक्रिया द्वारा उनका मूल रूप/कोशीय रूप प्रस्तुत किया जाता है।

§  उदाहरण के लिए- उसने, उसको, उससे, उसमें, उसपर, उसेआदि आने पर वहप्रस्तुत किया जाएगा। जाता, जाती, जाते, गया, गई, गए, जाऊंगा, जाऊंगीआदि आने पर जानाप्रस्तुत किया जाएगा।

§  इसी प्रकार लड़का, लड़के, लड़कोआने पर लड़काप्रस्तुत किया जाएगा।लड़की, लड़कियाँ, लड़कियों आने पर लड़की प्रस्तुत किया जाएगा।

पाइथन में रूप विश्लेषण/ कोशीमीकरण

इसके लिए निम्नलिखित कोड करें-

# prompt: lemmatizer

 

import nltk

nltk.download('wordnet')

nltk.download('omw-1.4')

from nltk.stem import WordNetLemmatizer

 

lemmatizer = WordNetLemmatizer()

 

# Example usage

word = "running"

lemmatized_word = lemmatizer.lemmatize(word, pos='v')  # pos='v' specifies verb lemmatization

print(f"Lemmatized form of '{word}': {lemmatized_word}")

 

आउटपुट :

Lemmatized form of 'running': run

[nltk_data] Downloading package wordnet to /root/nltk_data...

[nltk_data]   Package wordnet is already up-to-date!

[nltk_data] Downloading package omw-1.4 to /root/nltk_data...

[nltk_data]   Package omw-1.4 is already up-to-date!

 

पाइथन में प्राकृतिक भाषा संसाधन, भाग : 3. टैगिंग (Tagging)

 पाइथन में प्राकृतिक भाषा संसाधन, भाग : 3. टैगिंग (Tagging)

§  किसी पाठ में आए हुए शब्दों के साथ उनके शब्दवर्ग या रूप-वाक्यीय सूचनाएँ जोड़ना टैगिंग है।

§  टैगिंग करने के लिए सर्वप्रथम प्रत्येक अलग प्रकार के वर्ग/उपवर्ग के लिए चिह्न निर्मित किया जाता है, जिसे टैग (Tag) कहते हैं, जैसे- जातिवाचक संज्ञा के लिए ‘NN’

§  टैगों के समुच्चय को टैगसेट (Tagset) कहते हैं।

§  किसी पाठ की टैगिंग के लिए टैगसेट होना आवश्यक है।

§  हम अपना टैगसेट बना सकते हैं या पूर्व में बने हुए टैगसेट का प्रयोग कर सकते हैं।

पाइथन में टैगिंग

इसके लिए निम्नलिखित कोड करें-

!pip install nltk

 

import nltk

from nltk.tag import tnt

 

nltk.download('indian')

 

# Load the pre-trained Hindi POS tagger

tnt_tagger = tnt.TnT()

tnt_tagger.train(nltk.corpus.indian.tagged_sents('hindi.pos'))

 

# Text to tag

text = " हिंदी भारत की राजभाषा है। मैं एक एक भारतीय हूँ। हमें अपनी हिंदी पर बहुत गर्व होना चाहिए।"

 

# Tokenize the text

words = nltk.word_tokenize(text)

 

# Tag the words

tagged_words = tnt_tagger.tag(words)

 

print(tagged_words)

पाइथन में प्राकृतिक भाषा संसाधन, भाग : 4. पदबंध चिह्नन (Phrase Marking) और चंकिंग (Chunking)

पाइथन में प्राकृतिक भाषा संसाधन, भाग : 4. पदबंध चिह्नन (Phrase Marking) और चंकिंग (Chunking)

§  पदबंध चिह्नन (Phrase Marking) या चंकिंग (Chunking) वाक्य में एक प्रकार्य को संपन्न करने वाले पद-समूहों को एक साथ चिह्नित करने की प्रक्रिया है।

§  उस पद-समूह को चंक कहते हैं। कंप्यूटर की दृष्टि से परिभाषित करते हुए कहा गया है कि ‘चंक वह सबसे छोटी इकाई हैजिसे संसाधित किया जा सकता है।’ 

§  वाक्य में पदबंध ही चंक का कार्य करते हैं। इसलिए कहा जा सकता है कि चंकिंग के अंतर्गत ‘पदबंध चिह्नन’ का कार्य किया जाता है।

§  इसके लिए पदबंध स्तर के टैगों (Tags) की आवश्यकता पड़ती हैचंक टैग (chunk tags) कहते हैंजैसे-

o   संज्ञा पदबंध               = NP

o   क्रिया पदबंध             = VP

o   परसर्गीय पदबंध         = PP

o   विशेषण पदबंध          = JJP

§  पदबंध चिह्नन (Phrase Marking) या चंकिंग (Chunking) का कार्य टैगिंग के बाद किया जाता हैक्योंकि जब वाक्य के सभी शब्द टैग कर लिए जाते हैं तो उनके संयोजन के आधार पर ही पदबंध या चंक निर्धारित किए जाते हैं। उदाहरण के लिए निम्नलिखित हिंदी वाक्य को देखें-

इनपुट वाक्य-

बड़ा लड़का मीठे आम खाता है।

टैगिंग -

बड़ा<JJ> लड़का<NN> मीठे<JJ> आम<NN> खाता<VM> है<AUX> <PM>

पदबंध चिह्नन (Phrase Marking) या चंकिंग (Chunking)-

(NP बड़ा<JJ> लड़का<NN>)

(NP मीठे<JJ> आम<NN>)

(VP खाता<VM> है<AUX>)

(. <PM>)

पाइथन में चंकिंग (Chunking)

इसके लिए निम्नलिखित कोड करें-

!pip install indic-nlp-library

 

from indicnlp.tokenize import sentence_tokenize

 

def chunk_hindi_text(text, chunk_size):

  """

  Chunks Hindi text into smaller pieces.

 

  Args:

    text: The Hindi text to chunk.

    chunk_size: The desired size of each chunk (in sentences).

 

  Returns:

    A list of text chunks.

  """

 

  sentences = sentence_tokenize.sentence_split(text, lang='hi')

  chunks = []

  for i in range(0, len(sentences), chunk_size):

    chunks.append(' '.join(sentences[i:i + chunk_size]))

  return chunks

 

# Example usage:

text = """यह एक उदाहरण है। इसमें कई वाक्य हैं। हम इसे छोटे-छोटे टुकड़ों में विभाजित करेंगे।"""

chunks = chunk_hindi_text(text, 1)

for chunk in chunks:

  print(chunk)

यह अभी वाक्य स्तर पर ही चंक बना रहा है।