KaniyamFoundation / ProjectIdeas

A Place to write down the project ideas and to plan them
40 stars 3 forks source link

Write code for Tamil grammar rules from tolkappiyam #214

Open tshrinivasan opened 7 months ago

tshrinivasan commented 7 months ago

தமிழின் இலக்கண விதிகளை பைத்தான் நிரலாக மாற்றும் ஒரு முயற்சி இது.

தொல்காப்பியம், நன்னூல் ஆகிய நூல்களில் ஏராளமாக உள்ள எழுத்து, சொல், பொருள், யாப்பு விதிகளை பல்வேறு சிறு பைத்தான் நிரல்களாக எழுதினால், அவற்றை பின்னாளில் தமிழ் NLP ஆய்வுகளுக்கும் சொற்திருத்தி போன்ற மென்பொருட்கள் உருவாக்கவும் பயன்படுத்தலாம்.

இது போன்ற முயற்சிகள் பல ஏற்கெனவே நடந்திருந்தாலும், அந்த விதிகளும், நிரல்களும் கட்டற்ற உரிமையில் கிடைக்கவில்லை.

எனவே இலக்கண விதிகளை எளிமையாக எழுதி, அவற்றுக்கான நிரலையும் எழுத வேண்டியுள்ளது.

இத்திட்டத்தில், காஞ்சி லினக்சு பயனர் குழு நண்பர்கள் பரமேஸ்வர், சீனிவாசன், திலிப் ஆகியோருடன், இனம் ஆய்விதழ் https://inamtamil.com/ நிறுவனர் பேராசிரியர் சத்யராஜ் இணைந்துள்ளார்.

ஒவ்வொரு சனிக்கிழமை மாலை 8-9 IST நேரத்தில் https://meet.jit.si/tholkappiyar_ruleset_discussion என்ற இணைப்பில் இணைந்து விதிகள் பற்றியும் நிரல்கள் பற்றியும் விவாதிக்கிறோம்.

திட்டத்தில் பங்களிக்க ஆர்வமுள்ளோர் KaniyamFoundation@gmail.com க்கு மின்னஞ்சல் அனுப்புக.

டெலிகிராம் குழுவிலும் இணையலாம் - https://t.me/+u8nBn-CRw9Y3ODFl

tshrinivasan commented 7 months ago

முதல் கூட்டம் ஏப்ரல் 13 2024 அன்று நடத்தது.

https://gitlab.com/kachilug/tamilrulepy இங்கு சில நிரல்களை சத்யராஜ் உதவியுடன் பரமேஸ்வர் ஏற்கெனவே சேர்த்துள்ளார். அவற்றை சரிபார்க்க வேண்டும்.

https://www.tolkappiyam.ca/call4papers/ - கனடாவில் தொல்காப்பிய மாநாடு நடைபெறுகிறது. வாய்ப்பு இருந்தால் அதற்குள் நிரலாக்கம் முடித்து ஒரு ஆய்வுக் கட்டுரை எழுதலாம்.

ஆய்வுச் சுருக்கம்: 2024-05-01

ஆய்வுச் சுருக்கம் ஏற்றுக்கொள்ளல்: 2024-05-25

முழுமையான ஆய்வுக் கட்டுரை அனுப்ப வேண்டிய இறுதிநாள்: 2024-07-01

அடுத்த செயல்கள் - பரமேஸ்வர் இதுவரை எழுதிய நிரல்களுக்கான விதிகளை தனியே எழுதுவார். சீனி, திலிப் - bloomfilter பற்றி ஆய்ந்து விளக்கவுரை அளிப்பர். சத்யராஜ் - முதல் கட்ட இலக்கண விதிகளை அளிப்பார்.

tshrinivasan commented 7 months ago

இரண்டாம் கூட்டம் ஏப்ரல் 13 2024 அன்று நடத்தது.

பேராசிரியர் சத்யராஜ் முதல் கட்ட விதிகளை அளித்தார்.

அவை

photo_6116415102229002592_y photo_6116415102229002593_y photo_6116415102229002637_y

தொல்காப்பியரின் எழுத்ததிகாரப் புணரியல் விதிகளுள் நான்கிற்கு விளக்கம் தந்துள்ளேன். இதற்குப் பைத்தான் நிரலாக்கம் எழுதலாம். இது இந்த வாரத்திற்குரியது. இனி வரக்கூடிய விதிகள் சொல்லினை மையமிட்டிருப்பதால் சொல்வங்கியை உருவாக்கிய பின்பு (பெயர், வினை, இடை, உரி; ஈறு - அகர ஈறு, ஆகார ஈறு,... அடிப்படையிலும்) இந்தப் புணர்ச்சி விதிகளை விளக்கமாக எழுதுவது இன்னும் எளிமையாக்கலாம்.

ஆகையால் தங்களிடம் உள்ள சொல்வங்கியைத் தொல்காப்பியச் சொல்லதிகாரச் சொற்பகுப்பு அடிப்படையில் வகைப்படுத்தி வைத்துக்கொள்ள வேண்டும். அதற்குச் சொல்லதிகார இயல்களில் உள்ள சொல்லாக்க, சொல்வகைப்பாடுகளுக்கு முதலில் விதி எழுதுவோம்.

சொல்லதிகாரம் .................................. விதி ஒன்று (சொல்.5) ................................... திணை - உயர்திணை, அஃறிணை என இரண்டு வகைப்படும்.

உயர்திணை - ஆண்பால், பெண்பால், பலர்பால் என மூன்று வகைப்படும்.

அஃறிணை - ஒன்றன்பால், பலவின்பால் என இரண்டு வகைப்படும்.

ஒரு சொல்லின் இறுதியில் ன் எனும் எழுத்து இருந்தால், அது உயர்திணை ஆண்பால் சொல்லாகும்.

எ-டு:- அவன், செல்வன், முருகன், நகுலன், பிரபாகரன், சீனிவாசன், பரமேசுவரன் - பெயர் (Noun)

வருவான், போவான், செல்வான், தூங்குகிறான் - வினை (Verb)

சொல்லதிகாரம் .................................. விதி இரண்டு (சொல். 6) ...................................

ஒரு சொல்லின் இறுதியில் ள் எனும் எழுத்து இருந்தால், அது உயர்திணை பெண்பால் சொல்லாகும்.

எ-டு:- அவள், மாரியம்மாள், குருவம்மாள் - பெயர் (Noun)

வருவாள், போவாள், செல்வாள், தூங்குகிறாள் - வினை (Verb)

சொல்லதிகாரம் .................................. விதி மூன்று (சொல். 7) ...................................

ஒரு சொல்லின் இறுதியில் ர் எனும் எழுத்து இருந்தாலும், பகர இறுதி வந்தாலும், மார் என முடிந்தாலும், அது உயர்திணை பலர்பால் சொல்லாகும்.

எ-டு:-

==ர்== அவர், இவர், மதிப்பிற்குரியவர், எவர், யாவர் - பெயர் (Noun)

வருவார், போவார், செல்வார், தூங்குகிறார் - வினை (Verb)

== பகர இறுதி == வருப, செல்ப, கூறுப, உண்ப

== மார் இறுதி == வருமார், செல்மார், கொண்மார்

சொல்லதிகாரம் .................................. விதி நான்கு (சொல்.8) ...................................

ஒரு சொல்லின் இறுதியில் து, று, டு எனும் எழுத்து இருந்தால், அது அஃறிணை ஒன்றன்பால் சொல்லாகும்.

எ-டு:-

==து இறுதி==

வருவது, போவது, செல்வது, தூங்குகிறது, மேய்கிறது - வினை (Verb)

== று இறுதி == ஓடிற்று, தூங்கிற்று, வந்திற்று, மேய்ந்திற்று

== டு இறுதி == குலைக்காந்தட்டு

சொல்லதிகாரம் .................................. விதி ஐந்து (சொல்.9) ...................................

ஒரு சொல்லின் இறுதியில் அ, ஆ, வ எனும் எழுத்து இருந்தால், அது அஃறிணை பலவின்பால் சொல்லாகும்.

எ-டு:-

==அ இறுதி==

வந்தன, சென்றன, ஓடின, பறந்தன - வினை (Verb)

== ஆ இறுதி == வாரா, மேயா, தூங்கா, செல்லா, பறக்கா

== வ இறுதி == வருவ, செல்வ, துயில்வ

இந்த விதிகள் அனைத்தும் வினைச்சொல்லை மையமிட்டவை

அதாவது வினைச்சொல்களைத் திணை அடிப்படையிலும் பால் அடிப்படையிலும் புரிந்துகொள்ள உதவும்.

=========

இங்கு தமிழில் உள்ள 1,53,548 பெயர்ச்சொற்களை தொகுத்துள்ளோம். https://github.com/KaniyamFoundation/all_tamil_nouns

நண்பர் சுடர் சில ஆண்டுகளுக்கு முன் தமிழின் வினைச்சொற்களைத் தொகுத்தார். அவற்றை இங்கே பகிர்ந்துள்ளார்.

http://sudar-ilakkanam.blogspot.com/

இங்குள்ள விரிதாள்களைக் கொண்டு வினைச்சொற்கள் பட்டியலை உருவாக்கலாம்.

nirmalkabirdoss commented 7 months ago

I just tried this

from tamil import utf8

def uyirum_uyirum(first_word,second_word): firstword_lastletter = utf8.get_letters(first_word)[-1] secondword_firstletter = utf8.get_letters(second_word)[0] nilai_eeru = utf8.splitMeiUyir(firstword_lastletter)[-1] varu_mudhal_uyir = utf8.splitMeiUyir(secondword_firstletter)[0]

if nilai_eeru in ['இ','ஈ','ஐ']:
    udambadu_mei = 'ய்'

elif nilai_eeru in ['அ','ஆ','உ','ஊ','எ','ஒ','ஓ','ஔ']:
    udambadu_mei = 'வ்'

elif nilai_eeru == 'ஏ':
    udambadu_mei = ['ய்','வ்']
    udambadu_mei = udambadu_mei.

punarchi = utf8.joinMeiUyir(udambadu_mei,varu_mudhal_uyir)

return first_word + punarchi + second_word[1:]

print(uyirum_uyirum('மொழி','அறிவு'))

output மொழியறிவு

tshrinivasan commented 6 months ago

Tholkappiyar Ruleset meet

Date and Time Apr 27, 2024 20:00 - 21:00 IST

Attendees Parameshwar Arunachalam Sathiyaraj Thangasamy Suganthan V

Points discussed

Next action items

parameshwar-A commented 6 months ago

Tholkappiyar RuleSet Meet 2

Date and time

May 04, 2024 20:00 - 21:00 IST

Attendees

Parameshwar Arunachalam Dhilip Sathiyaraj Thangasamy Shrinivasan

Points Discussed

Pending tasks

tshrinivasan commented 5 months ago

1.6.2024 meeting minutes

matplotlib வைத்து படம் உருவாக்கினால், தமிழ் எழுத்துகள் சரியாகத் தெரியவில்லை. உதாரணம் இங்கே image

பல்வேறு எழுத்துருக்கள் Akshara Unicode, Vijaya, Noto Sans, Nirmala UI முயன்றோம். சற்றே பரவாயில்லை. ஆயினும் பிழைகள் உள்ளன.

இறுதியில் plotly முயன்றோம். அது உலாவியில் படம் காட்டுவதால், எழுத்துரு சிக்கல் இன்றி நன்றாகத் தெரிகிறது.

newplot

parameshwar-A commented 4 months ago

Minutes of Meeting - Ruleset Discussion - Jul 13, 2024

Date and Time

Jul 13, 2024 20:00-21:00 IST

Members Joined

Topics discussed

tshrinivasan commented 3 months ago
#step 1:- ஓபன் தமிழ் பைத்தான் அகராதியை நிறுவுதல்

#step 2:- ஒரு சொல்லைப் பெற்று ஆய்வு செய்வு செய்யும் நுட்பத்தைச் சேர்த்துக் கொள்ளுங்கள்

# step 3:-ஆய்விற்காக வாங்கப்பெறும் நிலைமொழிச் சொல் அடைமொழிச் சொல்லுடன் வந்தால் அதனைத் தனித்தனியாகப் பிரிக்க வேண்டும்.

# step 3.1:- அடைமொழிகான சொற்பட்டியலை (உம்மைத்தொகை, இருபெயரொட்டுப் பண்புத்தொகை) வைத்து எழுதுதல் வேண்டும்.

# step 3.2:- நிலைமொழிச் சொல் ம் என முடிந்தால், அதை அந்த எழுத்தை நீக்கவேண்டும்.

#step 4:- பிரித்தவற்றைத் தனியாக ஒரு மாறியில் சேமிக்க வேண்டும்.

#step 5:- சேமித்த மாறியில் உள்ள தரவில் "ம்" இருக்கின்றதா எனப் பார்க்கவேண்டும்.

#step 6:- அடுத்து, உள்ளீடாக வாங்கப்பெற்ற வருமொழிச் சொல்லின் முதல் எழுத்து [0] க, ச, த, ப வரிசைச் சொல்லாக இருக்கின்றதா எனப் பார்க்கவேண்டும்.

#step 7:- க, ச, த, ப வரிசைச் சொற்களாக இருந்தால் நிலைமொழிச் சொல்லின் 'ம்' [ -1] எழுத்தினை நீக்க வேண்டும்.

#step 8:- நீக்கிய பின்பு வருமொழிச்சொல்லின் முதல் எழுத்தின் மெய்யெழுத்தை நிலைமொழிச் சொல்லுடன் சேர்க்க வேண்டும்.

#step 9:- இப்பொழுது நிலைமொழியும் + வருமொழியும் இணையும் சொல்லாக மாற வேண்டும். அந்த இரண்டு சொற்களின் இடையில் இடைவெளி இருக்க வேண்டும். 
##ஆனால், நிலைமொழியின் இறுதியில் [ -1]  வருமொழி முதல் எழுத்தின் [0] ஒலிப்புடைய மெய்யெழுத்து (க், ச், த், ப் ) இடம் பெறுதல் வேண்டும்.

#step 10:- அதன் விளைவு (output) காட்டப்படுதல் வேண்டும். 

#1. பனை (அடைமொழி) மரம் + கிளை
#2. பனைமர + கிளை
#3. பனைமரக் கிளை

import tamil

நிலைமொழி = input ("ஆய்வு செய்யும் நிலைமொழிச் சொல் ஒன்றினைத் தரவும் : ")
வருமொழி = input ("ஆய்வு செய்யும் வருமொழிச் சொல் ஒன்றினைத் தரவும் : ")

def punarchi_rule1 (நிலைமொழி, வருமொழி):
    நிமொஎழுத்து = tamil.utf8.get_letters(நிலைமொழி)
    வமொஎழுத்து = tamil.utf8.get_letters(வருமொழி)
    #print(நிமொஎழுத்து[-1])

    if நிமொஎழுத்து[-1]=="ம்":
        if வமொஎழுத்து[0]:
            வருமொழிபிரி=tamil.utf8.splitMeiUyir(வமொஎழுத்து[0])
            #print (வருமொழிபிரி)
            if வருமொழிபிரி[0] in ['க்', 'ச்', 'த்','ப்']:
                தீர்வு = "".join(நிமொஎழுத்து[0:-1])+ வருமொழிபிரி[0] + ' ' + வருமொழி
                #print (தீர்வு)
                return (தீர்வு)

print (punarchi_rule1 (நிலைமொழி, வருமொழி))

இன்றைய சந்திப்பில், புணர்ச்சி விதிகளுக்கான மேற்கண்ட நிரலை, தமிழ் பேராசிரியர் சத்யராஜ் அவர்கள் எழுதினார். கணித மாணவர் பூபாலன் உதவினார்.

தமிழும் கணிதமும் இணைந்து பைத்தான் நிரல் எழுதுவதைக் காண பேரின்பமாக இருந்தது.

அடுத்த வாரத்துக்குள் இந்த நிரலை ஆய்ந்து வர முடிவு செய்தோம். https://github.com/nithyadurai87/tamil-sandhi-checker/blob/master/tamilsandhi/sandhi_checker.py

Perumalgitgub commented 3 months ago

interested to join

boopalan-s commented 1 month ago

Minutes of Meeting - Ruleset Discussion - Jul 20, 2024

Date and Time Jul 20, 2024 20:00-21:00 IST Members Joined

Topics discussed Tamil words have a set of rules that must be followed by every mei letter and its next uyirmei letter. Aways mei stands as a single or pair of mei letters in between a word but no more than two to come as a word in Tamil. We have completed this kind of rules collected from tholkappiyam. Using this we can figure out whether words follow rules or not. We have been resolved that even not a word can or miss letters can be identified as words. We planned to show the grammar rule for every mei letter why there was comming it. We were planned to write punarchi(புணர்ச்சி) rules for upcoming weeks

boopalan-s commented 4 weeks ago

Minutes of Meeting - Ruleset Discussion - Jul 27, 2024

Meeting has been cancelled

boopalan-s commented 3 weeks ago

Discussion - Oct 26, 2024

Date and Time

Oct 26, 2024 20:00-21:00 IST

Members Joined

Topics discussed

From the past previous meets we planned and successfully converted தம் + அது into தமது but now It seems like dividing தமது into தம் + அது really heads. Actually we get rules from DR. Sathyaraj every time. But splitting words into two is not like that so we have to wait for how it is going to work.
Upcoming weeks we were going to see how our code was working and make clear our functions. We are trying to convert the remaining தொகைமரபு image rules into txt format. From the past week தொகைமரபு made us very mad but sure it will also make us up in the coming weeks because Sathyaraj said it’s around nearly 30.

boopalan-s commented 2 weeks ago

Discussion - Nov 2, 2024

Date and Time Nov 2, 2024 20:00-21:00 IST

Members Joined

Topics discussed

Thogaimarapu rule 14 has three parts, just one was completed. 2nd was contradictory with thogaimarapu rule 1 and third seems highly complicated. We are facing a new problem: hidden words between two words. To find hidden words(வேற்றுமை) seems like not an easy task. Finally, thogaimarapu(தொகைமரபு) is going to complete this week with a lot of contradictions. We will get the remaining Thogaimarapu rules this week by Sathyaraj. If it does not have any complicated work we will move to the next chapter(இயல்) in upcoming weeks.

boopalan-s commented 1 week ago

Discussion - Nov 9, 2024

Date and Time

Nov 9, 2024 20:00-21:00 IST

Members Joined

Topics discussed

This week Mrs. Kumudini Ponnuthurai joined from canada. We proposed our issues with her. In the short time we were not able to propose all of them. Due to his personal reasons DR. Sathyaraj would not be able to share the remaining thogaimarapu rules. So he assured us that he would try to give it this week. On the other hand we did not make any improvements in the program.

Mrs. Kumudini shared about her interest in tholkappiam and also it was very interesting to hear how she was learning Tamil.

So the coming week going to be much interesting because Mrs. Kumudini is going to resolve existing issues and DR. Sathyaraj prepared the remaining thogaimarapu rules for us.

boopalan-s commented 6 days ago

Discussion - Nov 16, 2024

Date and Time

Nov 16, 2024 20:00-21:00 IST

Members Joined

Topics discussed

Again without any improvement we started this week's meeting. It started with general greetings, to where we have too much focus, what are the possible situations we would be going to face. Where we have to improve.

So just like every time, DR. Sathyaraj shared the next 3 rules yesterday. We expect he will share more rules this week. So finally we are going to have a lot of ineffective Tokaimarapu rules because it requires much more clarification of sentences without much depth implementation in python. We cannot figure out the correct possible Tokaimarapu rules at these places.

We revised our Nunmarapu(நூன்மரபு), Molimarapu(மொழிமரபு) rules. While seeing back our code we noticed that many things are yet not completed and some of them needed improvements.

We meets next week with some improvements