emres / turkish-deasciifier

Turkish deasciifier in Python based on Deniz Yüret's turkish-mode for Emacs
https://ileriseviye.wordpress.com/tag/turkish-deasciifier/
146 stars 23 forks source link

CSV üzerinde satırlara uygulama #13

Closed burakoglakci closed 3 years ago

burakoglakci commented 3 years ago

Emre bey merhabalar,

Verilerim CSV formatında Google colab üzerinde şu kodları oluşturdum:

from turkish.deasciifier import Deasciifier

import csv 

duzelt = []

with open('/GDrive/My Drive/API-satir/merge1k.csv') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=',')
    for row in csv_reader:
        my_ascii_turkish_txt = (row)
        deasciifier = Deasciifier(my_ascii_turkish_txt)
        my_deasciified_turkish_txt = deasciifier.convert_to_turkish()
        duzelt.append(my_deasciified_turkish_txt)
        print(my_deasciified_turkish_txt) 

Ancak çalıştırdığım zaman aşağıdaki hatayı alıyorum.

def set_char_at(self, mystr, pos, c):
return mystr[0:pos] + c + mystr[pos+1:]
def convert_to_turkish(self):

TypeError: can only concatenate list (not "str") to list  

Bu sorunu nasıl aşabilirim? Yardımcı olursanız çok sevinirim.

emres commented 3 years ago

Merhaba @burakoglakci,

Kodunuzdaki row değişkeni, CSV dosyanızdaki ilgili satırı bir liste (list) olarak tutuyor, str olarak değil, o yüzden hata alıyorsunuz.

Misal, CSV dosyanızda aşağıdaki gibi bir satır varsa:

alan1, alan2

row değişkeninde bu aşağıdaki gibi bir liste olarak depolanır:

['alan1', 'alan2']

Böyle temsil edilen bir listeyi tekrar bir str olarak elde etmek isterseniz:

my_ascii_turkish_txt = ','.join(row)

gibi bir satır ile row listesinden, 'alan1,alan2' gibi bir str elde edebilirsiniz ve program hata vermeden çalışır.

Python'daki bir değişkenin türünü type() fonksiyonu ile öğrenebilirsiniz.

burakoglakci commented 3 years ago

Hocam çok teşekkür ederim. Hata vermeden çalışıyor.

emres commented 3 years ago

Tamam, o halde bu GitHub "issue" girdisini kapatıyorum.