For unseen text given by user find the closest match automatically among given languages without using libraries
CodePudding user response:
User_text = input("Enter user text:")
English =" "
Korean = " "
Chinese =" "
Alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
Eng_dict = {}
Kor_dict = {}
Chin_dict = {}
new_dict = {}
for i in range(0,26):
Eng_dict[Alphabet[i]] = English.count(Alphabet[i])
Kor_dict[Alphabet[i]] = Korean.count(Alphabet[i])
Chi_dict[Alphabet[i]] = Chinese.count(Alphabet[i])
new_dict[Alphabet[i]] = User_text.count(Alphabet[i])
eng_len = sum(Eng_dict.values())
kor_len = sum(Kor_dict.values())
Chi_len = sum(Chin_dict.values())
new_len = sum(new_dict.values())
for i in range(0,26):
Eng_dict[Alphabet[i]] = Eng_dict[Alphabet[i]]/eng_len
Kor_dict[Alphabet[i]] = Span_dict[Alphabet[i]]/kor_len
Chin_dict[Alphabet[i]] = Swed_dict[Alphabet[i]]/chi_len
new_dict[Alphabet[i]] = new_dict[Alphabet[i]]/new_len
L1 = list(Eng_dict.values())
L2 = list(Span_dict.values())
L3 = list(Swed_dict.values())
L4 = list(new_dict.values())
L5 = [element1 - element2 for (element1, element2) in zip(L4, L1)]
L6 = [element1 - element2 for (element1, element2) in zip(L4, L2)]
L7 = [element1 - element2 for (element1, element2) in zip(L4, L3)]
print(L5)
for i in range(len(L5)):
L5[i] = L5[i] * L5[i]
L6[i] = L6[i] * L6[i]
L7[i] = L7[i] * L7[i]
if(sum(L5) <= sum(L6) and sum(L5) <= sum(L7)):
print("English")
elif(sum(L6) <= sum(L5) and sum(L6) <= sum(L7)):
print("Korean")
else:
print("Chinese")
CodePudding user response:
test_spanish = [["El discípulo entra en la sala de clase. Él va a su banco y se sienta. Suena la campanilla y principia la lección de español. El maestro pregunta. El discípulo se levanta y responde. Él se sienta, abre su libro y lee una frase, dos frases. Él cierra su libro y repite las frases. Él habla alto y distintamente. Algunas veces habla bajo e indistintamente. Otras veces habla muy lentamente porque no ha estudiado su lección con diligencia.Hace calor en la sala de clase y un discípulo abre la ventana. Él abre también la puerta. Ahora hace demasiado frío y otro discípulo cierra la ventana y la puerta. Él escribe con la pluma o con el lápiz lo que dicta el maestro. Él va a la pizarra y escribe con la tiza en la pizarra. Después la limpia y va a su banco, se sienta y copia lo que está escrito en la pizarra.Él escucha siempre con atención y no copia lo que su vecino ha escrito. Él no sopla en la clase. En casa estudia sus lecciones y en la escuela escucha atentamente. Es muy bueno y diligente"],["He had not far to go; he knew indeed how many steps it was from the gate of his lodging house: exactly seven hundred and thirty. He had counted them I once when he had been lost in dreams. At the time he had put no faith in those dreams and was only tantalising himself by their hideous but daring recklessness. Now, a month later, he had begun to look upon them differently, and, in spite of the monologues in which he jeered at his own impotence and indecision, he had involuntarily come to regard this “hideous” dream as an exploit to be attempted, although he still did not realise this himself. He was positively going now for a “rehearsal” of his project, and at every step his excitement grew more and more violent"],["Då Sankte Per hade sagt detta”, fortfor narren, i det han kastade en illfundig blick bort till riddarna, “lutade han sig ut över tornets tinnar och pekade ned mot jorden. Han visade Vår Herre en stad, som låg på en stor, ensam klippa, som sköt upp ur en bergdal. ‘Ser du de där likhögarna?’ sade han, ‘och ser du blodet, som svallar på gatorna, och ser du de nakna, eländiga fångarna, som jämra sig i nattkölden, och ser du alla de rykande brandtomterna?’ Vår Herre tycktes ingenting vilja svara honom, utan Sankte Per fortsatte med sin jämmer. Han sade, att nog hade han många gånger varit vred på den där staden, men inte hade han velat den så illa, som att där skulle komma att se ut på detta sätt. Då svarade äntligen Vår Herre och försökte göra en invändning. — ‘Du kan dock inte neka till att de kristna riddarna ha vågat sina liv med den största oförskräckthet’, sade han."]]
from collections import Counter
#counts=Counter(test_spanish[0])
all_freq1 = {}
for i in range(3):
all_freq1[i]=Counter(test_spanish[i][0])
print(all_freq1)
for i in range(3):
for c in all_freq1[i].keys():
all_freq1[i][c] = round(all_freq1[i][c]/len(test_spanish[i][0]),4)
User_text = input("Enter user text:")
all_freq = {}
for i in User_text:
if i in all_freq:
all_freq[i] = 1
else:
all_freq[i] = 1
value1, value2,value3 = 0,0,0
for chart in all_freq.keys():
if chart in all_freq1[0].keys():
value1 = all_freq[chart]
if chart in all_freq1[1].keys():
value2 = all_freq[chart]
if chart in all_freq1[2].keys():
value3 = all_freq[chart]
if value1 == len(User_text):
print("spanish")
elif value2 == len(User_text):
print("English")
elif value3 == len(User_text):
print("Swedish")
else:
print("Other Language")
