Sözlük içerisinde en çok tekrar eden kelimeyi bulmak!

class Dosya():

def __init__(self):

   

    with open("metin.txt","r",encoding="utf-8") as file:

                   

        dosya_içeriği = file.read()

                   

        kelimeler = dosya_içeriği.split() # içine parametre verdmediğim için boşluğa göre ayıracak

        # ve bütün kelimeleri bir listenin içine attık

                   

        self.sade_kelimeler = list()  # bütün eklemelerden arındırılmış kelimeleri bu listeye atıyoruz

       

        for i in kelimeler:  # listedeki bütün kelimeleri tek tek bastırdık

        # ama bazı kelimelerin sonunda virgül ve noktalar var bunları istemiyoruz

           

            i = i.strip("\n")

            i = i.strip(" ")

            i = i.strip(".")

            i = i.strip(",")  # bu saeyede kelimelerimizi sadeleştirebildik

           

            self.sade_kelimeler.append(i) # sade kelimeler listesine ekledik

                               

def tüm_kelimeler(self):

   

    kelimeler_kümesi = set()    

   

    for i in self.sade_kelimeler:

        kelimeler_kümesi.add(i)

               

    print("Tüm Kelimeler.............")

   

    for i in kelimeler_kümesi:

       

        print(i)

   

        print("************************")

                               

def kelime_frekansı(self):

           

    self.kelime_sözlük = dict() # sözlüğümüz anahtar kelime, değeride kelimenin kaç kere geçtiği olacak

           

    for i in self.sade_kelimeler:

       

        if (i in self.kelime_sözlük): # kelimenin sözlüğün içind olup olmadığını kontrol ediyoruz

           

            self.kelime_sözlük[i] += 1  # eğer varsa  anahtar değerini 1 arttırıyoruz

           

        else:

           

            self.kelime_sözlük[i] = 1

            #eğer kelime ilk defa  eklendiyse de değeini 1 yapıyoruz

                              

    for kelime,sayı in self.kelime_sözlük.items():

       

        print("{} kelimesi, {} defa geçiyor".format(kelime,sayı))

       

        print("********************")

               

def sayaç(self):

    pass

dosya = Dosya()

dosya.sayaç()

sorun şu ben kelime_frekansı() fonksiyonunda elde ettiğim dict içine gönderiğim kelimelerin en sık geçenini bulmak istiyorum. Birinci problem başka bir fonksiyonda yarattığım değişkeni(liste,dict,vb…) başka bir fonksiyonda nasıl kullanabilirim ikincisi sorum ise bu dict içinde en çok geçen kelimeyi nasıl bulabilirim. Yardımcı olabilirseniz çok sevinirim

Python File I/O: Count the frequency of words in a file - w3resource

Python Count Words In File - Python Guides

Counting Word Frequency in a File Using Python (tutsplus.com)

Üç örnek:

Sayaç() altında pass yerine entegre edeceksiniz sanırım.

Beğendiğinizi seçin ekleyemezseniz ekleyelim.

Edit: Şahsen ben bunu beğendim.

import re
import string


frequency = {}
document_text = open('metin.txt', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)
 
for word in match_pattern:
    count = frequency.get(word,0)
    frequency[word] = count + 1
     
frequency_list = frequency.keys()
 
for words in frequency_list:
    print (words, frequency[words])

Bunlar ile vakit harcamak yerine pandas modülünü öğren istediğini yapabilirsin.

1 Beğeni

Şu başlığı inceleyebilirsiniz:

1 Beğeni

çok teşekkür ederim sadece şunu sorucam iki parametre alan fonksiyonların çalışma prensibini anlayabilmek için herhang bir dökümantasyon ya da video var mı acaba ?