def கணக்கிடு( _தொடர் ): தமிழ்_உரை_தொடர் = re.sub('\s+',' ',_தொடர்) # செயல்சார்புகளை குறியீடுகளாக மாற்றவும் for பெயர்,குறியீடு in செயல்சார்புகள்.items(): தமிழ்_உரை_தொடர் = தமிழ்_உரை_தொடர்.replace(பெயர்,குறியீடு[0]) இடைநிலை0=list() இடைநிலை1=list() for துண்டு in தமிழ்_உரை_தொடர்.split(' '): if துண்டு in செயல்சார்புகள்_குறியீடுகள்: if துண்டு in ('(',')',) and len(இடைநிலை1) == 0: இடைநிலை0.append(துண்டு) else: மதிப்பு=tamil.numeral.tamilstr2num(இடைநிலை1) இடைநிலை0.append('%g'%மதிப்பு) இடைநிலை0.append(துண்டு) இடைநிலை1=list() else: இடைநிலை1.append(துண்டு) # கடைசி செயல்சார்பின் எண் என்ன? விட்டுப்போகாமல் பாருங்கள். if len(இடைநிலை1) > 0: மதிப்பு=tamilstr2num(இடைநிலை1) இடைநிலை0.append('%g'%மதிப்பு) # மீளமைப்பு செய்துகொள்ளுங்கள் ... தமிழ்_உரை_தொடர் = ' '.join(இடைநிலை0) if வழுநீகால்_இயக்கம்: அச்சிடு(தமிழ்_உரை_தொடர்) விடை = கணி(தமிழ்_உரை_தொடர்) # இருவகைகளில் எழுதிப்பார்க்கவும். அச்சிடு(num2tamilstr( விடை ) ) அச்சிடு(num2tamilstr_american( விடை ) ) return விடை
def normalize_numeral_text(text_tokens): """ Input @text_tokens = ["இரு","நண்பர்கள்","௹","100","கொடுத்து","உணவு","உண்டனர்."] ^ - எண் 100 என்பது சொல்வடிவில் நூறு என்று வெளியிடப்படும். """ rval = [] for word in text_tokens: if (word[0] in string.digits) or word[0] == '-': try: val = num2tamilstr(word) rval.append(val) except Exception as e: rval.append(word) else: rval.append(word) return rval
def கணக்கிடு(_தொடர்): """" @_தொடர் : Tamil sentence with number to be parsed and evaluated. Supported operators are +, -, /, * spelled out as கூட்டல், கழித்தல், பெருக்கல் and வகுத்தல் @return @விடை result variable of the computation """ தமிழ்_உரை_தொடர் = re.sub('\s+', ' ', _தொடர்) # செயல்சார்புகளை குறியீடுகளாக மாற்றவும் for பெயர், குறியீடு in செயல்சார்புகள்.items(): தமிழ்_உரை_தொடர் = தமிழ்_உரை_தொடர்.replace(பெயர், குறியீடு[0]) இடைநிலை0 = list() இடைநிலை1 = list() for துண்டு in தமிழ்_உரை_தொடர்.split(' '): if துண்டு in செயல்சார்புகள்_குறியீடுகள்: if துண்டு in ('(', ')',) and len(இடைநிலை1) == 0: இடைநிலை0.append(துண்டு) else: மதிப்பு = tamil.numeral.tamilstr2num(இடைநிலை1) இடைநிலை0.append('%g' % மதிப்பு) இடைநிலை0.append(துண்டு) இடைநிலை1 = list() else: இடைநிலை1.append(துண்டு) # கடைசி செயல்சார்பின் எண் என்ன? விட்டுப்போகாமல் பாருங்கள். if len(இடைநிலை1) > 0: மதிப்பு = tamilstr2num(இடைநிலை1) இடைநிலை0.append('%g' % மதிப்பு) # மீளமைப்பு செய்துகொள்ளுங்கள் ... தமிழ்_உரை_தொடர் = ' '.join(இடைநிலை0) if வழுநீகால்_இயக்கம்: அச்சிடு(தமிழ்_உரை_தொடர்) விடை = கணி(தமிழ்_உரை_தொடர்) # இருவகைகளில் எழுதிப்பார்க்கவும். அச்சிடு(num2tamilstr(விடை)) அச்சிடு(num2tamilstr_american(விடை)) return விடை
if(num<=12000): f=open(r"venmurasu_tamil_word_file_13.txt",'r',encoding='utf8') #this file makes the sorting even faster else: f=open(r"venmurasu_tamil_word_file_complete.txt",'r',encoding='utf8') tamil_list=f.read().split(',') #reading from file and splitting based on comma f.close() word_list=dict() #creating a dictionary for val in tamil_list: letters = utf8.get_letters(val) #encoding to get correct tamil letters length = len(letters) #finding the length of letters if length!=0: key=length word_list.setdefault(length,[]) word_list[length].append(val)#appending the word as value into a list inside a dictionary with length as key count=num file=open("sorted_words_file.txt",'a',encoding='utf8') #the sorted words will be appended in this file i=1 for key in sorted(word_list,reverse=True): #sorting the keys of the dictionary and running a loop length=len(word_list[key]) if count>0: print(numeral.num2tamilstr(key),u'எழுத்துக்கள் : ' ,key,'\n',i,': ',end='') print(*word_list[key][:count],sep = '\n',end='\n\n') #printing list inside the dictionary i+=length file.write(str(key)) file.write(str(word_list[key][:count])[1:-1]) #writing into a file count=count-length file.write(',') file.close() #Time complexity based on algorithm : O(n) where n is the number of words in the file which is opened to read tamil words
def mainpart(): num = int(number.get()) #same as the main file if (num <= 12000): f = open(r"venmurasu_tamil_word_file_13.txt", 'r', encoding='utf8') else: f = open(r"venmurasu_tamil_word_file_complete.txt", 'r', encoding='utf8') tamil_list = f.read().split(',') f.close() word_list = dict() for val in tamil_list: letters = utf8.get_letters(val) length = len(letters) if length != 0: key = length word_list.setdefault(length, []) word_list[length].append(val) count = num file = open("sorted_words_file.txt", 'a', encoding='utf8') userscreen.attributes('-topmost', False) global displayscreen #displayscreen to display sorted words displayscreen = Toplevel(userscreen) scrollbar = Scrollbar(displayscreen) #creating a scroll bar scrollbar.pack(side=RIGHT, fill=Y) textbox = Text(displayscreen, width=100, height=30, bd=5, font=("Cambria", '15')) textbox.pack() #Text box to display words displayscreen.title("Displaying Longest Words") photo = ImageTk.PhotoImage(Image.open(r"sound2.png")) #sound icon value = 1 i = 0 btn_list = [] def onClick1(idx): mytext = btn_list[idx].cget("text") language = 'ta' #tamil language myobj = gTTS(text=mytext, lang=language, slow=False) #tamil text to speech date_string = dt.datetime.now().strftime("%d%m%Y%H%M%S") filename = "voice" + date_string + ".mp3" myobj.save(filename) #saving the audio with date time as filename playsound(filename) #playing the audio def onClick2(idx): #classification of letters mytext = btn_list[idx].cget("text") uyir, mei, uyirmei, ayutham, vada_mozhi, vallinam, mellinam, idayinam = user_defined_library_package.classify_words( mytext) class Table: def __init__(self, root): for i in range(rows): for j in range(cols): self.e = Entry(root, width=35, fg='black', font=('Cambria', 16, 'bold')) self.e.grid(row=i, column=j) self.e.insert(END, lst[i][j]) lst = [(u"உயிரெழுத்து (Uyir)", int(uyir)), (u"மெய்யெழுத்து (Mei)", int(mei)), (u"உயிர் மெய் எழுத்து (UyirMei)", int(uyirmei)), (u"ஆய்த எழுத்து (Ayutha)", int(ayutham)), (u"வடமொழி எழுத்து (Sanskrit)", int(vada_mozhi)), (' ', ' '), (u"வல்லினம் (Vallinam)", int(vallinam)), (u"மெல்லினம் (Mellinam)", int(mellinam)), (u"இடையினம் (Idayinam)", int(idayinam))] rows = len(lst) cols = len(lst[0]) classify = Toplevel(displayscreen) #classification screen classify.title(mytext) t = Table(classify) classify.mainloop() for key in sorted(word_list, reverse=True): if count > 0: textbox.insert( END, numeral.num2tamilstr(key) + u' எழுத்துக்கள் : ' + str(key) + '\n\n') for val in word_list[key]: textbox.insert( END, str(value) + ' : ' + val + ' ({}) '.format(str(key))) file.write(str(key)) file.write(val) #storing in a file file.write('\n') btn1 = Button(textbox, text=val, image=photo, borderwidth=3, cursor="hand2", command=lambda idx=i: onClick1(idx)) btn2 = Button(textbox, text=u"வகைப்படுத்து", borderwidth=4, cursor="hand2", command=lambda idx=i: onClick2(idx)) btn_list.append(btn1) i += 1 textbox.window_create(textbox.index("end"), window=btn1) #adding buttons to Text box textbox.window_create(textbox.index("end"), window=btn2) textbox.insert(END, '\n\n') value += 1 count = count - 1 if (count == 0): break textbox.config(yscrollcommand=scrollbar.set) scrollbar.config(command=textbox.yview) #configurations file.close() displayscreen.mainloop()