मशीन लर्निंग वापरून मराठी भाषेचा अभ्यास

Submitted by shantanuo on 10 June, 2018 - 04:47

फक्त चार / पाच ओळींचा कोड लिहून आपण मराठी भाषेतील संबंधित तसेच विरुद्धार्थी शब्द शोधू शकतो. उदाहरण म्हणून मी "संगीत" हा शब्द दिल्यावर मॉडेलने "कला" , "कविता", "नाटक" , "महाराष्टर", " "भारत" असे शब्द दिले.

https://ic.pics.livejournal.com/shantanuo/56336/1952/1952_900.png

आता यात काय मोठे दिवे लावले? असा प्रश्न साहजिकच आहे. तसेच संगीताचा युद्धाशी आणि कंपनीशी कसा संबंध ते स्पष्ट करा असा उपरोधही अपेक्षित आहे. त्याचे उत्तरः

१) हे मॉडेल विकिपीडियावरून फार पूर्वी बनवलेले आहे. २०१३ साली मराठी विकिपीडियावर फारसे लेख नव्हते. जसा डेटा वाढत जाईल तशी क्वालिटी वाढेल. गुगल न्यूजचा डेटा वापरून वापरून बनवलेले (इंग्लिश) मॉडेल प्रसिद्ध आहे. मराठीला तेवढी उंची गाठायला वेळ लागेल. पण निदान शक्यता वाटू लागली आहे.
२) अनेकदा आवाहन करूनही मराठीसाठी काही करू शकणारे स्वयंसेवक मिळत नाहीत. ज्यांना वेळ आहे त्यांना संगणक हाताळता येत नाही. तर संगणक तत्ज्ञांना अशा कामासाठी वेळ नाही. मशीन लर्निंगच्या माध्यमातून भविष्यात मोठमोठे कोशदेखील सिद्ध होतील. असे कोश १००% अचूक नसतील हे मान्य. पण त्यातून कामाची निकड भागेल. हे महत्त्वाचे .

या क्षेत्राचे भवितव्य उज्ज्वल आहे. मराठीच नव्हे तर सर्व तरुणांनी यात लक्ष घालायला हवे.

शब्दखुणा: 
Groups audience: 
Group content visibility: 
Use group defaults

## download the pre-trained model:

wget http://bit.ly/12FI1xV

mv 12FI1xV polyglot-mt.pkl

## install python 2.7 package
pip install polyglot

## run this code to get the output shown as in the image
## https://ic.pics.livejournal.com/shantanuo/56336/1952/1952_900.png

import polyglot
from polyglot.mapping import Embedding
embeddings=Embedding.load("polyglot-mt.pkl")
neighbors = embeddings.nearest_neighbors("संगीत")
for i in neighbors:
print (i.encode('utf-8'))

aataa samajalaa nemkaa kaay mhanayach aahe tumhala te.. thanks Happy
शन्का:
१. polyglot वापरुन text similarity analysis (between phrases) करता येत का?
semantic text similarity साठी gensim वापरल आहे ह्य अधी
'२. wget च्या use cases काय आहेत,
it is pre trained model for predictive analysis, right?

polyglot वापरुन text similarity analysis (between phrases) करता येत का?

Yes. That is possible.

semantic text similarity साठी gensim वापरल आहे ह्य अधी

gensim is similar to this.

wget च्या use cases काय आहेत,

wget is used to download a file directly from net to linux local disk.

it is pre trained model for predictive analysis, right?

Yes right.

Please email me directly at shantanu.oak@gmail.com instead of writing a comment on maayboli.

Please email me directly at ?? ओके... सविस्तर बोलुच मेल वर. आधी ती लिन्क बघ्ते काय आहे ते

The advantage of polyglot is that it also support transliteration (Not translation)

from polyglot.transliteration import Transliterator
transliterator = Transliterator(source_lang="en", target_lang="mr")
your_text='shntnoo prbhakar'
for i in your_text.split():
print(transliterator.transliterate(i))

This will return शंतनू प्रभाकर in unicode!

The advantage of polyglot is that it also support transliteration>> भारी
I am aware of transliteration tools, I am its end user since "stone age" Light 1

text similarity analysis मध्ये सध्या जास्त डोक लावत आहे , need a model/algo/package with good accuracy

मशीन लर्निंग वापरून इंग्रजीचे मराठी भाषांतर कसे करता येऊ शकेल ते येथे वाचता येईल.

https://towardsdatascience.com/word-level-english-to-marathi-neural-mach...

मूळ इंग्रजी वाक्य: you cant speak french can you
भाषांतर केलेले मराठीः तुला फ्रेंच बोलता येत नाही का नाही माहीत

गुगलने शोधलेले tensorflow आणि ओपन सोर्स मधील "केरास” आणखी काय काय चमत्कार करतात ते पाहणे मनोरंजक ठरणार आहे.

मशीन लर्निंग हे प्रकरण काय आहे आणि ते कसे शिकू शकते याचे एक चांगले उदाहरण म्हणजे जेनसिम (jensim) या मॉड्यूलमधील उदाहरण पाहू.

king - man+ woman = ?

याचे उत्तर २०१२ साली कॉम्युटरने "queen” असे अचूक दिले आणि "लडका हुवा जवा रे" असा अनेकांना साक्षात्कार झाला. कारण किंग म्हणजे राजा, त्यातून पुरूष वजा करून त्याचे स्त्रीलिंगी रुप शोधणे ही आपल्या दृष्टीने शाळकरी पण विज्ञानाच्या दृष्टीने क्रांतिकारी घटना ठरली. एखादे यंत्र शब्द त्यांच्या अर्थासहित समजू शकते हे लक्षात आल्यावर अनेक दारे आपोआप उघडली गेली. त्यातील एक दार होते फोटोंचे. शब्दांची बेरीज वजाबाकी होऊ शकते तशी फोटोची होऊ शकते. उदाहरण म्हणून आपण ट्रंप यांच्या फोटोची बेरीज त्यांच्या आवडत्या भिंतीच्या फोटोशी करून नवीन फोटो तयार करू शकतो.

दुसरे उदाहरण म्हणजे शि. द. फडणीस या प्रसिद्ध व्यंगचित्रकाराच्या एखाद्या फोटोतील रंगसंगती दुसर्‍या एखाद्या फोटोला देऊन तो फोटो त्यांनीच रंगवलेला आहे असा आभास निर्माण करणे शक्य आहे.

चाळीस, पन्नास वर्षांपूर्वीचे कृष्णधवल फोटो रंगीत करणे म्हणजे "किस झाड की पत्ती". उदाहरण म्हणून माझे लहानपणीचे फोटो रंगीत केले!

आपल्या मोबाईलवर एखाद्या कुत्र्याचा फोटो घेऊन तो नेमका कोणत्या जातीचा आहे हे सांगणारी मोबाईल ऍप प्ले स्टोरवर उपलब्ध आहेत.

https://play.google.com/store/apps/details?id=com.siwalusoftware.dogscanner

यातही मशिन लर्नींग ऑलगोरिदम वापरले गेले आहे. आपण खेळत असलेल्या अनेक मोबाईल गेममध्ये ML / DL /AI (Artificial Intelligence) आहेच. अ‍ॅमेझॉन / गुगल सारखी संकेतस्थळे मोठ्या प्रमाणावर या तंत्राचा उपयोग करीत आहेत.

पायथॉनचे प्राथमिक ज्ञान असलेला कोणीही हे करू शकतो. खाली दिलेल्या लिंकवर त्याचा कोड उपलब्ध आहे.

https://github.com/RaRe-Technologies/gensim

https://github.com/lengstrom/fast-style-transfer

https://github.com/jantic/DeOldify

https://github.com/jamesrequa/Dog-Breed-Classifier/blob/master/dog_class...

_____

नवीन तंत्रज्ञानाचा उपयोग लक्षात येण्याअगोदर त्याचा दुरुपयोग सुरू होतो.

मशीन लर्निंग / डिप लर्निंग त्याला अपवाद नाही. उदाहरण म्हणून deepfake तंत्र वापरून अश्लिल चित्र निर्मिती कधीच सुरू झाली आहे.

https://en.wikipedia.org/wiki/Deepfake

“facial recognition banned” असे गूगलमध्ये शोधल्यास अमेरिकेतील अनेक लोक फेस रिकग्निशनच्या विरोधात का आहेत ते समजू शकते.

गुन्हेगारी प्रवृत्तीचे लोक भविष्यात त्याचा अधिक कल्पक वापर करण्याची शक्यता आहे. त्याला इलाज नाही.

ओपन एआय या संस्थेने जी-पी-टी-२ हे मॉडेल बाजारात दाखल केले आहे.
https://openai.com/blog/better-language-models/

काल्पनिक बातम्या तयार करणे, धडा वाचून धड्याखालील प्रश्नांची उत्तरे देणे असे तद्दन शाळकरी चाळे संगणकाला जमू लागले यात इतका हर्षवायू होण्यासारखे काय आहे असा प्रश्न एखाद्याला पडू शकतो. पण याचा अर्थ आता संगणकाला नुसते शब्द नव्हे तर शब्दामागचा अर्थही कळू लागला आहे व त्याचे पुढचे शिक्षण कल्पनातीत वेगाने होईल या नुसत्या शक्यतेने जगातील विचारवंत हैराण आहेत.

Opencv (OpenCV: Open source computer vision library) चा वापर करून Character recognition, Face detection, eyes, pupil, nose detection and tracking उत्तमरीत्या करता येते. अनेक libraries available आहेत. त्यापैकी Haarcascade ही library मी use केली आहे. Perfectly काम करते. Bounding boxes create होतात. OpenCV हे C++, Python, Java etc. मध्ये use करू शकतो.

फेसबुकने मराठीसह १५0 पेक्षा जास्त भाषांचे प्री-ट्रेन्ड मॉडेल सुमारे एका वर्षापूर्वी उपलब्ध करून दिले आहे. यात कंपनीने स्वार्थ आणि परमार्थ दोन्ही साधला आहे. फेसबुकचे या बाबतीत अभिनंदन केले पाहिजे.

https://fasttext.cc/docs/en/crawl-vectors.html

पायथॉनची ही स्क्रिप्ट वापरून मी हे मॉडेल वापरून पाहिले.

"प्रचंड" या शब्दाचे समानार्थी शब्द अगदी अचूक मिळत आहेत हे पाहून मी आधी प्रचंड प्रभावित झालो.

print_most_similar(words, 'प्रचंड')

खूप, अफाट, अपरिमित, अतोनात, अतिशय, फार, जबरदस्त, प्रमाणात, भयंकर, भरपूर

इतकेच नव्हे तर "तिच्या" - “तिला" या शब्दांचा एकमेकांशी असलेला संबंध लक्षात घेऊन "माझ्या" शब्दाला "मला" हा शब्द सुचविला जात आहे. हे मोठे यश म्हणावे लागेल.

print_analogy('तिच्या', 'तिला' , 'माझ्या', words)
तिच्या-तिला is like माझ्या-मला

हे यश फक्त काही ठरावीक शब्दांपुरतेच मर्यादित दिसते. कारण इतर शब्दांना अगदी असंबद्ध प्रतिसाद मिळतो तर काही शब्दच डेटाबेसमध्ये नसल्याचा संदेश येतो. अर्थात यात फेसबुकची चूक नाही. कारण हे मॉडेल विकिपीडियावर आधारलेले आहे. आडातच नाही तर पोहऱ्यात काय येणार?
मशीन लर्निंगचे हे मॉडेल जर अधिक प्रभावी करायचे असेल तर विकिपीडिया लेखन व पायथॉन जाणकारांनी या मॉडेलचा अधिकाधिक कल्पक वापर हे दोन उपाय आहेत.

काही दिवसांनी आन्सरींग मशीन कॉल करणाऱ्या व्यक्तींना आपल्या आधीच्या संभाषणाचे योग्य व त्वरीत विश्लेषण करून त्या त्या व्यक्तीला योग्य असे उत्तर/निरोप देऊ शकेल. तसेच वाणसामान व इतर वस्तू गरजेनुसार ऑर्डर देऊन परस्पर मागवून घेणारे केअरटेकर संगणक/ रोबो घरोघरी आढळतील.