Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα και καλή χρονιά,

Έχω μια άσκηση που θέλει να υλοποιήσουμε ένα πρόγραμμα όπου θα βρίσκει το πλήθος των λέξεων τριών γραμμάτων, τεσσάρων κλπ σε ένα έγγραφο.
Ψάχνω λοιπόν κάποιο τρόπο ώστε να μετράω πόσες φορές υπάρχουν λέξεις 3 γραμμάτων για παράδειγμα στο έγγραφο, ώστε να επαληθεύσω τα αποτέλεσματα μου.

Δοκίμασα με το Notepad ++ αλλά δίχως επιτυχία και φαίνεται ότι και ο όγκος του εγγράφου το ζορίζει στην αναζήτηση.

2RjvHyu.png

Ευχαριστώ εκ τον προτέρων!

Επεξ/σία από ulb
Δημοσ.

Με ποια γλώσσα προγραμματισμού; Μπορώ να σου δώσω κάποια code snippets σε Java, αλλά όχι ολόκληρη την λύση!

Δημοσ.
2 ώρες πριν, asxs είπε

Με ποια γλώσσα προγραμματισμού; Μπορώ να σου δώσω κάποια code snippets σε Java, αλλά όχι ολόκληρη την λύση!

Δεν με απασχολεί, ψάχνω απλά με ποιο τρόπο να κάνω επαλήθευση τα αποτελέσματα.

Ψάχνω δηλαδή στο αρχείο (έγγραφο) να δω πόσες φορές υπάρχουν λέξεις με τρία γράμματα πχ ώστε να δω αν τα αποτελέσματα του προγράμματος συμπίπτουν.

Δημοσ.

Θα εχεις ενα πινακα int μήκους 50 ( ας πουμε δεν υπάρχει λεξη με πανω απο 50 γραμματα), θα τρέξεις το αρχειο σου και για καθε λεξη που βρισκεις θα αυξανεις τη συγκεκριμενη θεση του πινακα κατα 1.

Π.χ. αν η λέξη ηταν μήκους 5 θα πεις a[5]++;  

while((word=getNextword())!=null)
{
   a[word.length]++;
}

for(i=1; i<50; i++)
   print("Λεξεις με μηκος " + i +" : ", a[i]);

 

 

Δημοσ.

Unit testing λεγεται φιλε μου. Βαζεις κανα 2 κειμενα με γνωστο αριθμο λεξεων (δεν χρειαζεται να ειναι μεγαλα, 2-3 σειρες το καθενα) και ελεγχεις τα αποτελέσματα. 

  • Like 1
Δημοσ.

Βρε παιδιά, συγνώμη αλλά γαιτί το κάνουμε τόσο σύνθετο; Δεν ψάχνω πως να υλοποιήσω το πρόγραμμα, απλά ψάχνω να δω πχ σε ένα έγγραφο πόσες φορές υπάρχουν οι λέξεις χ γραμμάτων.

Δεν μπορώ να το κάνω κάπως εύκολα και γρήγορα με ένα Notepad++ όπως ψάχνω μια λέξη (πχ test), στο Word, στη γραμμή εντολών ή σε κάτι αντίστοιχο;

Δημοσ. (επεξεργασμένο)
14 λεπτά πριν, ulb είπε

Βρε παιδιά, συγνώμη αλλά γαιτί το κάνουμε τόσο σύνθετο; Δεν ψάχνω πως να υλοποιήσω το πρόγραμμα, απλά ψάχνω να δω πχ σε ένα έγγραφο πόσες φορές υπάρχουν οι λέξεις χ γραμμάτων.

Δεν μπορώ να το κάνω κάπως εύκολα και γρήγορα με ένα Notepad++ όπως ψάχνω μια λέξη (πχ test), στο Word, στη γραμμή εντολών ή σε κάτι αντίστοιχο;

Όπως σου απάντησα παραπάνω, αυτό που θέλεις είναι unit testing, δεν χρειαζεται να τεσταρεις το ιδιο κειμενο δε και καλα, αλλά άλλα, μικροτερα κειμενα. Αυτο που ψαχνεις δεν εχει πρακτικη αξια, οποτε δυσκολο να βρεις προγραμματάκι να το κανει.  

Και στην τελική αυτό που θέλεις να κανείς είναι τόσο απλό, που δεν χρειάζεσαι και καμία τρελή επαλήθευση. Κάνε debug τις πρωτες 2 γραμμες, αμα τα αποτελέσματα που παίρνεις είναι σωστά, έτσι θα είναι και για τις υπόλοιπες. Άμα θέλεις δε και καλά, χρημοποιησε ένα ονλάιν regex, και βάζε regex για 1-2-3... μεγέθους λέξεις και σημείωνε τα αποτελέσματα. 

Επεξ/σία από Papakaliati
Δημοσ. (επεξεργασμένο)
16 λεπτά πριν, ulb είπε

Βρε παιδιά, συγνώμη αλλά γαιτί το κάνουμε τόσο σύνθετο; Δεν ψάχνω πως να υλοποιήσω το πρόγραμμα, απλά ψάχνω να δω πχ σε ένα έγγραφο πόσες φορές υπάρχουν οι λέξεις χ γραμμάτων.

Δεν μπορώ να το κάνω κάπως εύκολα και γρήγορα με ένα Notepad++ όπως ψάχνω μια λέξη (πχ test), στο Word, στη γραμμή εντολών ή σε κάτι αντίστοιχο;

Καλή χρονιά, σ' αυτό που ρωτάς...

Στο notepad++:

1. Πατάς ctrl + F (αναζήτηση)

2. Στο πεδίο "search mode" επιλέγεις "Regular expression"

3. Στο πεδίο αναζήτησης γράφεις (έστω ότι θες να ψάξεις λέξεις με ακριβώς 3 γράμματα): \b(\w{3})\b

4. Μετακινείς τον δρομέα στην αρχή του κειμένου και επιλέγεις "Count" 

5. Στο κάτω μέρος θα σου εμφανιστεί πόσες φορές βρέθηκαν λέξεις με μήκος 3. 

6. Αν θες να ψάξεις για λέξεις με 6 γράμματα, αλλάζεις τον αριθμό 3 σε 6 κ.ο.κ. 

Κάνε τις δοκιμές σου και τσέκαρε τα αποτελέσματα με το πρόγραμμά σου. 

Σημείωση: Το \w ταιριάζει οποιοδήποτε γράμμα ή αριθμό. Αν θες να συμπεριλάβεις στην αναζήτηση λέξεις που περιέχουν συγκεκριμένους χαρακτήρες θα πρέπει να αλλάξεις τη φράση ταιριάσματος. Αλλά δε νομίζω ότι χρειάζεται στην περίπτωσή σου.

 

Επεξ/σία από marios28
  • Thanks 1
Δημοσ. (επεξεργασμένο)

Εντολή για αναζήτηση λέξεων με 4 γράμματα > 

grep -o -w "\w\{4\}" file | wc -w

 :)

Επεξ/σία από htaccess
  • Thanks 1
Δημοσ.

@marios28 & @htaccess Σας ευχαριστώ! Αυτό το τόσο απλό έψαχνα αλλά δεν θυμόμουν την σωστή σύνταξη τους και είχα χάσει την μπάλα. Ευχαριστώ και πάλι!

Δημοσ.
38 λεπτά πριν, ulb είπε

@marios28 & @htaccess Σας ευχαριστώ! Αυτό το τόσο απλό έψαχνα αλλά δεν θυμόμουν την σωστή σύνταξη τους και είχα χάσει την μπάλα. Ευχαριστώ και πάλι!

@ulb δεν χρειάζεται να "θυμάσαι" τίποτα, το googlareis και το βρίσκεις. Η δοκιμάζεις στο regex.com μέχρι να βρεις το σωστό regex. 

Δημοσ. (επεξεργασμένο)

Αρα θα κατσεις να κανεις 20 φορες πχ το Search?
γιατι μπορει να υπαρχουν και λεξεις που ειναι πανω απο 20 γραμματα 
Η σωστη απαντηση ειναι αυτο που σου ειπε ο albNik και η υλοποιηση εδω. https://zgameprovider.com/count/


 


 

Επεξ/σία από papmel
  • Like 1
Δημοσ.
16 λεπτά πριν, papmel είπε

Αρα θα κατσεις να κανεις 20 φορες πχ το Search?
γιατι μπορει να υπαρχουν και λεξεις που ειναι πανω απο 20 γραμματα 
Η σωστη απαντηση ειναι αυτο που σου ειπε ο albNik και η υλοποιηση εδω. https://zgameprovider.com/count/

H "σωστή" απάντηση στην ερώτησή του είναι ό,τι τον βολεύει (1 λεπτό θα του πάρει για να αλλάξει τον αντίστοιχο αριθμό και να πατήσει 10 φορές το search) για να επαληθεύσει/τεστάρει το πρόγραμμά του και όχι για να ξανακάνει άλλη μια υλοποίηση που θα τεστάρει την πρώτη. Αυτό έγραψε πολλές φορές.

Η δική σου απάντηση, (το link) είναι η βέλτιστη λύση σ' αυτό που ρώτησε. Αυτό ήθελε εξ' αρχής. 

Δημοσ.

Δεν χρειάζεται να αλλάξει κανένα αριθμό, το γράφει σε bash script και το τρέχει μία φορά.

#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24;
do 
echo "counter: $i" && grep -o -w "\w\{$i\}" filename | wc -w 
done

Εώς 24 γράμματα, αν θέλει παραπάνω προσθέτει.  :)

  • Like 1
Δημοσ.
18 λεπτά πριν, htaccess είπε

Δεν χρειάζεται να αλλάξει κανένα αριθμό, το γράφει σε bash script και το τρέχει μία φορά.

Εώς 24 γράμματα, αν θέλει παραπάνω προσθέτει.  :)

Άψογα. Πάντως αναφέρθηκα στη λύση μέσω notepad++. Τελωσπάντων με οποιονδήποτε τρόπο ο άνθρωπος εξυπηρετήθηκε.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...