Girdiğimiz Metindeki Kelime Sayısını Veren Flask Uygulaması -> Python + Javascript

0x1D

Kıdemli Üye
23 Nis 2020
2,651
78
MARS
Kelime Sayacı

Amaç :

Amacımız girdiğimiz metindeki kelime sayısına doğru bir şekilde ulaşabilmek.

Nasıl çalışıyor:

/kelime sayfasında bir text area ile karşılaşıyorsunuz. Bu kısıma metinizi girmedin gerekmekte. Sayfada hiçbir buton görmemek sizi şaşırtmış olabilir. Javascript bu işi kendisi hallediyor, metni alıp saniye başı otomatik olarak /kelime sayfasına post atıyor. Kelime sayfasının döndürdüğü değeri ise sonuc id'li strong tagına yazdırıyor.

Ekran görüntüsü:

photo-2020-12-08-01-24-47.jpg


Kodlar :

https://github.com/xenopeltis1/kelimesayacixeno

Canlı canlı test etmek için:

https://kelimesayacixeno.herokuapp.com/kelime


 

Napcaz

Anka Team Senior
28 Nis 2019
767
764
Cudi
Hocam konu genişletilebilir; demek istediğim uygulamaya harf sayısı, hangi harften kaç tane olduğu veya aynı kelimeleri bulma gibi özellikler eklense güzel bir projeye dönüşebilir. Kolay gelsin.. :)
 

0x1D

Kıdemli Üye
23 Nis 2020
2,651
78
MARS
Hocam konu genişletilebilir; demek istediğim uygulamaya harf sayısı, hangi harften kaç tane olduğu veya aynı kelimeleri bulma gibi özellikler eklense güzel bir projeye dönüşebilir. Kolay gelsin.. :)

Dediğin şeyler aşırı basit. Hem yayındaki projeyi hem de github sayfasını editlemeye halim olursa eklerim bunları da
 

zztri

Yaşayan Forum Efsanesi
9 Tem 2015
10,055
388
Ankara
Eleman noktalama işaretlerinden sonra boşluk vermezse o kelimeleri aynı kelime olarak sayar. Yani "Pazardan elma,armut,kavun aldım.Eve zor taşıdım." için 5 kelime olduğunu iddia eder. Regexp kullanman en uygunu olacaktır. Standart split fonksiyonu kesmez. Türkçe'de her kelime harflerden, veya harfler, kesme işareti, tekrar harflerden (Mesela Türkçe'de kelimesi gibi) oluşur.

Hazır yöntemi tartışırken, server side koda niye ihtiyaç var ki?

Kod:
<!DOCTYPE html>
<html>
<body>
	<textarea id="yazi" oninput="say()"></textarea>
	<p id="miktar"></p>
<script>
	function say() {
  		docu ment.getElementById('miktar').textContent=docu ment.getElementById('yazi').value.match(/[a-zA-ZğüşıöçĞÜŞİÖÇ]+(?:'[a-zA-ZğüşıöçĞÜŞİÖÇ]+)*/gm).length+" kelime";
	}
</script>
</body>
</html>

Çalışan örnek jsfiddle: https://jsfiddle.net/pkt4c03f/
 
Son düzenleme:

0x1D

Kıdemli Üye
23 Nis 2020
2,651
78
MARS
Eleman noktalama işaretlerinden sonra boşluk vermezse o kelimeleri aynı kelime olarak sayar. Yani "Pazardan elma,armut,kavun aldım.Eve zor taşıdım." için 5 kelime olduğunu iddia eder. Regexp kullanman en uygunu olacaktır. Standart split fonksiyonu kesmez. Türkçe'de her kelime harflerden, veya harfler, kesme işareti, tekrar harflerden (Mesela Türkçe'de kelimesi gibi) oluşur.

Hazır yöntemi tartışırken, server side koda niye ihtiyaç var ki?

Kod:
<!DOCTYPE html>
<html>
<body>
	<textarea id="yazi" oninput="say()"></textarea>
	<p id="miktar"></p>
<script>
	function say() {
  		docu ment.getElementById('miktar').textContent=docu ment.getElementById('yazi').value.match(/[a-zA-ZğüşıöçĞÜŞİÖÇ]+(?:'[a-zA-ZğüşıöçĞÜŞİÖÇ]+)*/gm).length+" kelime";
	}
</script>
</body>
</html>

Çalışan örnek jsfiddle: https://jsfiddle.net/pkt4c03f/


Sahiden Flask'a ihtiyaç yokmuş. Bu aralar Flask ile uğraşıyorum nedense kullanma ihtiyacı duymuşum. Javascript'te de yeniyim onun biraz acemiliği var sanırsam.
Doğru olan, noktalama işaretlerinden sonra birer boşluk bırakmak olduğu için direkt split'lemeyi tercih etmiştim, etmemem lazımmış. Hazır Python kullanmışken bu js kodunu Python'a uygulayayım. Teşekkürler : )

Bir ara Word'e de el atıverin :D

Untitled.png
 
Son düzenleme:

HackerPluss

Katılımcı Üye
26 Kas 2020
654
6
THT Toprağı
Ellerine Sağlık Hocam Bir de Kötü kelime algılayıcı gibi bir şey ekleyebilirsin yapabilirsen kara liste gibi Java scriptle yapabilirsin belki.
Ellerine Sağlık Hocam Güzel Olmuş.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.