Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Spelling

Spelling 2 Χρόνια 8 Μήνες πριν #2621

  • v_kostis
  • Το Άβαταρ του/της v_kostis
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 5
Γεια χαρά σε όλους.

Γνωρίζει κανείς κάποιον τρόπο να ελέγξω την ορθογραφία σε μια λέξη;

Έχω διαβάσει το blog του novig norvig.com/spell-correct.html αλλά είναι μόνο για Αγγλικά, και δεν έχω καταφέρει να το "πειράξω" για να ελέγχει την ορθογραφία σε ελληνικές λέξεις.
Νομίζω ότι φταίει το encoding.

Γνωρίζετε αν έχει γίνει ήδη κάποια δουλειά που θα μπορούσα να βασιστώ;

Ευχαριστώ εκ των προτέρων.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Spelling 2 Χρόνια 8 Μήνες πριν #2622

  • Tassos
  • Το Άβαταρ του/της Tassos
  • Αποσυνδεμένος
  • pyt___
  • g-lts.info
  • Δημοσιεύσεις: 48
  • Ληφθείσες Ευχαριστίες 2
Για κάτι τέτοιο δε πρέπει να υπάρχει και ένα λεξικό με όλες τις λέξεις;
Ομάδα Ελληνικής - Μακροχρόνιας υποστήριξη.

Greek - Long Term Support Team.

Επισκεφθείτε μας εδώ : g-lts.info
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Spelling 2 Χρόνια 8 Μήνες πριν #2623

  • v_kostis
  • Το Άβαταρ του/της v_kostis
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 5
Δε χρειάζεται για όλεςτις λέξεις. Εξαρτάται βέβαια από το πόσο πλήρες θες να είναι.

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

Αυτό άλλωστε αναφέρει και στο blog του norvig, όπου χρησιμοποιεί σαν λεξικό ένα πολύ μεγάλο βιβλίο λογοτεχνίας.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Spelling 2 Χρόνια 8 Μήνες πριν #2624

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 674
  • Ληφθείσες Ευχαριστίες 108
Τελευταία διόρθωση: 2 Χρόνια 8 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Spelling 2 Χρόνια 8 Μήνες πριν #2625

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 674
  • Ληφθείσες Ευχαριστίες 108
Με μια διαγώνια ματια που έριξα στο link από το site του Norvig, δεν βλέπω για ποιο λόγο να μην τρέχει με ελληνικά. Αν θες ανέβασε το λάθος που σου βγάζει.

edit
Άκυρο εδώ λογικά είναι το λάθος
NWORDS = train(words(file('big.txt').read()))
Αντικατέστησέ το με αυτό:
import codecs
with codecs.open("big.txt", "r", encoding="utf-8") as fd:
    text = fd.read()
NWORDS = train(words(text))
Τελευταία διόρθωση: 2 Χρόνια 8 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Spelling 2 Χρόνια 8 Μήνες πριν #2626

  • v_kostis
  • Το Άβαταρ του/της v_kostis
  • Αποσυνδεμένος
  • p_____
  • Δημοσιεύσεις: 5
Βασικά έκανα κάποιες διορθώσεις/μετατροπές στον αρχικό κώδικα.

# -*- coding: utf-8 -*-
import codecs
import re, collections

def words(text):
return text.split()

def train(features):
model = collections.defaultdict(lambda: 1)
for f in features:
model[f] += 1
return model


NWORDS = train(words(file('Spelling.txt').read()))

alphabet = 'αβγδεζηθικλμνξοπρστυφχψως'.decode('utf-8')

def edits1(word):
splits = [(unicode(word[:i]), unicode(word[i:])) for i in range(len(word) + 1)]
deletes = [a + b[1:] for a, b in splits if b]
transposes = [a + b[1] + b[0] + b[2:] for a, b in splits if len(b)>1]
replaces = [a + c + b[1:] for a, b in splits for c in alphabet if b]
inserts = [a + c + b for a, b in splits for c in alphabet]
return set(deletes + transposes + replaces + inserts)

def known_edits2(word):
return set(e2 for e1 in edits1(word) for e2 in edits1(e1) if e2 in NWORDS)

def known(words):
a=[]
for i in words:
if i.encode('utf-8') in NWORDS:
a=
return set(a)

def correct(word):
candidates = known([word]) or known(edits1(word)) or [word] or known_edits2(word)
return max(candidates, key=NWORDS.get)

Μέσα στο spelling.txt βαλτε λίγες λέξεις.
Δοκιμάστε να γράψετε λάθος μια από αυτές.

print correct('γεις'.decode('utf-8'))
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.402 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου