-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathkelimelerine_ayir.py
96 lines (82 loc) · 2.62 KB
/
kelimelerine_ayir.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# -*- coding: utf-8 -*-
"""
Proje: kalbur
Yazar: Ahmet Aksoy
Tarih: 29.10.2016
Bu modülde ana fonksiyon, bir bütün halinde aldığı metin bloğunu
tekil sözcüklerine ayıracak ve bir liste halinde geri gönderecek.
Sözcükler inceltme işaretlerinden, rakamlardan temizlenecek ve küçük harfe dönüştürülecek.
Son revizyon tarihi: 04.08.2017
"""
BHARFX = "Iİ"
KHARFX = "ıi"
# AYRACLAR = ",\.;«»!?-:/\*+_=\"<>()'[]|º#&%“’”‘…–´—•`˜·"
NOKTALAMA = set("\"\'\.,/\\&%\+!\*/=(){}[]-_–:;?«»<>|^—¦’‘“·”…~′#`´")
RAKAMLAR = list("0123456789.,")
UCLULER = ["a"]
def noktalama_yok(kelime):
s = [h if h not in NOKTALAMA else ' ' for h in kelime]
s = ''.join(s)
# Eğer kelimede boşluk varsa, sonrasını at
s = s.strip()
p = s.find(' ')
if p > 0:
s = s[:p]
return s
def zero_width_space_yok(kelime):
# Sıfır uzunluklu boşluk karakteri varsa, temizle
if '\u200b' in kelime:
kel = ''
for c in kelime:
if c!='\u200b':
kel+=c
kelime=kel
return kelime
def rakam_yok(kelime):
s = [h for h in kelime if h not in RAKAMLAR]
return "".join(s)
def kucukHarfYap(sozcuk):
ss = ''
for i in range(len(sozcuk)):
ok = False
for j in range(len(BHARFX)):
if sozcuk[i]== BHARFX[j]:
ss += KHARFX[j]
ok = True
break
if ok == False:
ss += sozcuk[i]
ss = ss.lower()
return ss
def inceltme_harf(harf):
""" inceltme yok fonksiyonu sadeleştirmesi"""
harfler = {'â': 'a', 'Â': 'a', 'ê': 'e', 'Ê': 'e','ɑ': 'a',
'û': 'u', 'Û': 'u', 'î': 'i', 'Î': 'i'}
return harfler[harf] if harf in harfler else harf
def inceltme_yok(sozcuk):
s = [inceltme_harf(harf) for harf in sozcuk]
return "".join(s)
def kelimelerine_ayir(metin):
hamliste = metin.split()
hamliste = list(map(noktalama_yok, hamliste))
hamliste = list(map(rakam_yok, hamliste))
hamliste = list(map(inceltme_yok, hamliste))
hamliste = list(map(kucukHarfYap, hamliste))
hamliste = list(map(zero_width_space_yok, hamliste))
return hamliste
if __name__ == "__main__":
#dosya='nana'
#dosya='damdadelivar'
#dosya='kirikayna'
#dosya='alice'
dosya='aydaki_kadin'
fad="veri/{}.txt".format(dosya)
with open(fad,"r") as f:
metin = f.read()
liste = set(kelimelerine_ayir(metin))
print(liste)
fad = "veri/{}_kelimeler.txt".format(dosya)
with open(fad,"w") as f:
for w in liste:
if w.strip()>'':
print("{}".format(w),file=f)