[]
Python - loop yazmak
Merhaba,
Bir arastirma projesi uzerine calisiyorum ve elimde 9000'i askin uluslararsi kadin ve erkek isimleri var. Bunlari cinsiyetlerine gore kodlamam lazim. Ornegin kadin ismi icin 1, erkek is mi icin 2, unisex olan veya anlasilmaz bir isim icin de 0 diyebiliriz.
Bu isimlerin hepsi bir excel file'da string variable olarak duruyor.
Python gender-guesser 0.4.0 package'ini yukledim ve tek tek isimleri yazip oradan manuel olarak her bir ismi siniflandirabiliyorum. Ama yapmak istedigim bir loop olusturup, her bir ismi sirayla her satirdan cagirip, cinsiyetini kodlayip, bunu da ayri bir excel veya txt file'ina yazmak.
Bunun icin 1) isimlerin yazili oldugu dosyayi nasil cagirip, her bir satiri nasil okuturum,
2) isimleri kodladiktan sonra ayri bir dosyaya nasil yazdiririm yardima ihtiyacim var.
Su anda tek yapabildigim su kodu kullanip manuel olarak search etmek:
>>> import gender_guesser.detector as gender
>>> d = gender.Detector()
>>> print(d.get_gender(u"Bob"))
male
Simdiden binlerce tesekkurler!
Bir arastirma projesi uzerine calisiyorum ve elimde 9000'i askin uluslararsi kadin ve erkek isimleri var. Bunlari cinsiyetlerine gore kodlamam lazim. Ornegin kadin ismi icin 1, erkek is mi icin 2, unisex olan veya anlasilmaz bir isim icin de 0 diyebiliriz.
Bu isimlerin hepsi bir excel file'da string variable olarak duruyor.
Python gender-guesser 0.4.0 package'ini yukledim ve tek tek isimleri yazip oradan manuel olarak her bir ismi siniflandirabiliyorum. Ama yapmak istedigim bir loop olusturup, her bir ismi sirayla her satirdan cagirip, cinsiyetini kodlayip, bunu da ayri bir excel veya txt file'ina yazmak.
Bunun icin 1) isimlerin yazili oldugu dosyayi nasil cagirip, her bir satiri nasil okuturum,
2) isimleri kodladiktan sonra ayri bir dosyaya nasil yazdiririm yardima ihtiyacim var.
Su anda tek yapabildigim su kodu kullanip manuel olarak search etmek:
>>> import gender_guesser.detector as gender
>>> d = gender.Detector()
>>> print(d.get_gender(u"Bob"))
male
Simdiden binlerce tesekkurler!
Python bilmiyorum ama yol göstermeye çalışayım.
1-) Bir paket bulup (mesela excel dosya okuma paketi diye aratabilirsin) onun aracılığı ile dosyayı çağır, içindeki satır sayısını hesapla.
2-) Bir for döngüsü yazıp 1. satırdan sonuncu satıra kadar isimleri çektir, döngünün içinde cinsiyet belirleme ve ikinci dosyaya yazma işlemlerini yaptırırsın.
Google aramalarını İngilizce yaparsan daha çok sonuç gelir.
Örnek : stackoverflow.com
* Üstte excelden okuyup metin belgesine yazma anlatılmış ama yine de yardımcı olur, işin ilk kısmını yaparsın.
1-) Bir paket bulup (mesela excel dosya okuma paketi diye aratabilirsin) onun aracılığı ile dosyayı çağır, içindeki satır sayısını hesapla.
2-) Bir for döngüsü yazıp 1. satırdan sonuncu satıra kadar isimleri çektir, döngünün içinde cinsiyet belirleme ve ikinci dosyaya yazma işlemlerini yaptırırsın.
Google aramalarını İngilizce yaparsan daha çok sonuç gelir.
Örnek : stackoverflow.com
* Üstte excelden okuyup metin belgesine yazma anlatılmış ama yine de yardımcı olur, işin ilk kısmını yaparsın.
- hayirsiz (15.03.17 08:19:32 ~ 08:21:33)
Ben python biliyordum ama unuttum syntax'i:)
En kolay nasıl yapılır yazayım ama (kolaydan kastım minimum kod bilgisi ile)
Önce excelden text dosyası yap isimleri, text ile çalışmak daha kolay. Sonra satır sayısını hesapla. For döngüsü çevir (i satır numarası olacak, 1 den toplam satır sayısına) ve sonuçları başka bir txt dosyasına satır satır yazdır. Sonra iki dosyayı excelde birleştir.
1,2,0 olayı için if kullanabilirsin. Eğer bu paket cinsiyeti bilemeyince hata veriyorsa error handling yapman lazım ki kolay.
try:
//gender fonksiyonu
except
//error gelince ne olacağı yani senin durumunda gender_code=0
En kolay nasıl yapılır yazayım ama (kolaydan kastım minimum kod bilgisi ile)
Önce excelden text dosyası yap isimleri, text ile çalışmak daha kolay. Sonra satır sayısını hesapla. For döngüsü çevir (i satır numarası olacak, 1 den toplam satır sayısına) ve sonuçları başka bir txt dosyasına satır satır yazdır. Sonra iki dosyayı excelde birleştir.
1,2,0 olayı için if kullanabilirsin. Eğer bu paket cinsiyeti bilemeyince hata veriyorsa error handling yapman lazım ki kolay.
try:
//gender fonksiyonu
except
//error gelince ne olacağı yani senin durumunda gender_code=0
- yakuza123 (15.03.17 10:57:31)
Oncelikle cevaplar icin cok tesekkurler!
Sonunda calisir bir script yazabildim. Asagiya kopyaliyorum ki belki birilerinin ileride isine yarayabilir. Ben gender_guesser package'ini kullanarak bircok ismin cinsiyetini kodlayabildim. En buyuk sikinti python'a her bir satirin yeni bir input oldugunu anlatmak oldu (asagida nasil hallettigimi gorebilirsiniz). Sublime Text'ten kopyaladigim script'i asagida bulabilirsiniz. Ayrica yardim teklifinde bulunan sevgili compumaster'a binlerce tesekkurler!
import gender_guesser.detector as gender
d = gender.Detector()
d = gender.Detector(case_sensitive=False)
text_file=open("names3.txt", "r")
output_file=open("output2.csv", "w")
lines=text_file.readlines()
text_file.close()
for line in lines:
if line.endswith('\n'):
line=line[:-1]
print(line)
output_file.write(d.get_gender(line))
output_file.write('\n')
output_file.close()
Sonunda calisir bir script yazabildim. Asagiya kopyaliyorum ki belki birilerinin ileride isine yarayabilir. Ben gender_guesser package'ini kullanarak bircok ismin cinsiyetini kodlayabildim. En buyuk sikinti python'a her bir satirin yeni bir input oldugunu anlatmak oldu (asagida nasil hallettigimi gorebilirsiniz). Sublime Text'ten kopyaladigim script'i asagida bulabilirsiniz. Ayrica yardim teklifinde bulunan sevgili compumaster'a binlerce tesekkurler!
import gender_guesser.detector as gender
d = gender.Detector()
d = gender.Detector(case_sensitive=False)
text_file=open("names3.txt", "r")
output_file=open("output2.csv", "w")
lines=text_file.readlines()
text_file.close()
for line in lines:
if line.endswith('\n'):
line=line[:-1]
print(line)
output_file.write(d.get_gender(line))
output_file.write('\n')
output_file.close()
- balli borek (16.03.17 00:56:18 ~ 00:57:04)
1