Prezicerea cuvântului următor în 5 pași simpli folosind Python

Este posibil să fi observat că atunci când tastați pe telefonul mobil, acesta prezice următorul cuvânt pe care ați dori să îl utilizați. Este o caracteristică care face tastarea mai rapidă și economisește timp.

Este mai convenabil. Indiferent dacă trimiteți mesaje text, căutați pe internet sau scrieți un e-mail, textul predictiv poate fi de mare ajutor. Dar te-ai întrebat vreodată cum mobilul tău știe ce cuvânt să sugereze în continuare?

În acest ghid, vă voi arăta cum să creați predicții de cuvinte folosind Python.

Pentru a urma cu ușurință, a avea o înțelegere de bază a NLP vă ajută. Dacă sunteți nou în acest domeniu, nu vă faceți griji; puteți obține rapid elementele de bază din articolul nostru „NLP simplificat”, unde îl explicăm simplu.

Aplicații ale predicției cuvântului următor

  • Predicția cuvântului următor îmbunătățește viteza și acuratețea tastării pe dispozitivele mobile, făcând-o extrem de benefică pentru aplicațiile de mesaje text și de comunicare.
  • Motoarele de căutare folosesc text predictiv pentru a sugera interogări de căutare, făcând mai ușor pentru utilizatori să găsească rapid informații relevante.
  • Ajută la corectarea automată a cuvintelor scrise greșit și la reducerea erorilor de tastare în diverse aplicații, inclusiv procesoare de text și clienți de e-mail.
  • Dezvoltatorii și programatorii beneficiază de text predictiv atunci când scriu cod, deoarece sugerează funcții, metode și nume de variabile relevante.
  • Platformele online și serviciile de streaming folosesc text predictiv pentru a recomanda conținut relevant utilizatorilor.
  • Să începem să învățăm împreună despre această tehnică NLP interesantă și despre cum este utilă și să parcurgem fiecare pas în mod clar.

    Pregătirea datelor

    În primul rând, trebuie să importam bibliotecile necesare care sunt importante pentru proiectul nostru. După aceea, vom defini un text exemplu, care va fi folosit pentru antrenament. Puteți înlocui acest text cu orice date text dorite.

    De asemenea, puteți utiliza un set de date cu date text, pe care îl puteți găsi cu ușurință pe Kaggle sau pe o platformă similară.

    # Import Necessary Libraries
    
    import nltk
    from nltk import ngrams
    from collections import defaultdict
    import random

    Exemplu de date text, care vor fi folosite pentru prezicerea cuvântului următor.

    # Sample Text Data
    text = """
    Once upon a luminous, starry night in the quaint, enigmatic town of Serendipity, 
    a curious young explorer named Amelia embarked on an extraordinary adventure. 
    With her trusty magnifying glass in hand and an indomitable spirit, she embarked on a quest to discover the elusive Elysian treasure hidden deep within the labyrinthine forest. 
    As she ventured through the verdant woods, Amelia encountered an eccentric, talking squirrel named Percival, who spoke in riddles and guided her toward the treasure's whereabouts. 
    The forest was resplendent with bioluminescent flora, illuminating her path with a kaleidoscope of colors. 
    Amelia soon reached a precipice overlooking an awe-inspiring, cerulean waterfall, its cascading waters echoing a melodious serenade. 
    Beside the waterfall stood a colossal, moss-covered stone with cryptic inscriptions. 
    With Percival's guidance, she deciphered the ancient runes and uncovered the entrance to the treasure trove. 
    Inside, she discovered an opulent chest adorned with intricate, golden filigree. 
    Upon opening it, a symphony of shimmering jewels, radiant gemstones, and glistening artifacts greeted her with an ethereal glow. 
    The Elysian treasure was hers, a testament to her dauntless courage and insatiable curiosity. 
    Amelia's return to Serendipity was celebrated with jubilant revelry, and her remarkable journey became a legend, inspiring others to embark on their own adventures in the wondrous realm of imagination and discovery.
    """
    

    Puteți înlocui acest text conform cerințelor dvs.

      Ce este PING și cum se utilizează? Învață-l cu 7 exemple

    Tokenizare

    Ne vom preprocesa textul și îl vom tokeniza. Tokenizarea este procesul de împărțire a textului în cuvinte sau simboluri individuale. Folosim biblioteca nltk din Python pentru a ne tokeniza textul.

    Pentru a ne asigura că modelul nostru se concentrează pe cuvinte și ignoră majuscule sau semnele de punctuație, efectuăm preprocesare. Acest pas implică convertirea tuturor cuvintelor în litere mici și eliminarea oricărei semne de punctuație.

    import nltk
    
    # Tokenize the text into words
    words = nltk.word_tokenize(text)
    
    # Preprocess the words (convert to lowercase, remove punctuation)
    words = [word.lower() for word in words if word.isalnum()]
    
    words

    După preprocesare și tokenizare, vom obține toate cuvintele cu litere mici și fără semne de punctuație.

    Cuvinte simbolizate

    Construirea de N-grame

    În acest pas, vom crea N-grame, care sunt secvențe de N cuvinte în procesarea limbajului natural (NLP).

    În codul nostru, vom crea bigrame, unde N este egal cu 2, ceea ce înseamnă că fiecare N-gramă va consta din perechi de cuvinte.

    Acesta este un pas fundamental în construirea unui model de predicție pentru cuvântul următor, deoarece ne permite să analizăm secvențele de cuvinte și să prezicem următorul cuvânt pe baza contextului oferit de cuvintele N-1 anterioare.

    # Define the order of the N-gram model (N=2 for bigrams)
    N = 2
    
    # Create N-grams from the tokenized words
    ngrams_list = list(ngrams(words, N))
    
    # Create a defaultdict to store N-grams and their frequency
    ngram_freq = defaultdict(int)
    for ngram in ngrams_list:
        ngram_freq[ngram] += 1

    Aceste N-grame servesc ca elemente de bază pentru instruirea și implementarea modelului nostru de predicție pentru cuvântul următor.

    Definiți funcția

    În acest pas, creăm o funcție numită „predict_next_word” care ghicește următorul cuvânt dintr-o propoziție pe baza unui prefix furnizat (o secvență de cuvinte).

      Ce este o comandă de lucru? [+ 4 Templates]

    Această funcție este crucială în modelul de predicție al cuvântului următor, deoarece preia contextul furnizat de prefix și îl folosește pentru a face o predicție despre cuvântul următor cel mai probabil.

    Voi explica ce se întâmplă în acest proces în cuvinte simple:

    • Funcția analizează toate perechile de cuvinte (bigrame) din datele noastre text care încep cu prefixul furnizat (cuvintele dinaintea cuvântului lipsă).
    • Numărează cât de des apare fiecare cuvânt în acele perechi și le sortează după frecvență, de la cel mai frecvent la cel mai puțin frecvent.
    • Funcția sugerează apoi cuvântul care apare cel mai des ca următorul cuvânt după prefixul dat.
    # Define Function
    def predict_next_word(prefix):
        # Filter N-grams that start with the given prefix
        matching_ngrams = [(ngram, freq) for ngram, freq in ngram_freq.items() if ngram[:-1] == prefix]
    
        if not matching_ngrams:
            return "No prediction available."
    
        # Sort N-grams by frequency in descending order
        sorted_ngrams = sorted(matching_ngrams, key=lambda x: x[1], reverse=True)
    
        # Select the N-gram with the highest frequency as the prediction
        prediction = sorted_ngrams[0][0][-1]
    
        return prediction

    Este o parte crucială a modelului de predicție al cuvântului următor, deoarece ne permite să generăm sugestii relevante din punct de vedere contextual pentru următorul cuvânt dintr-o anumită secvență de text.

    Testare

    Acest cod vă permite să testați modelul cu propria dvs. intrare. Tastați câteva cuvinte, apăsați Enter, iar modelul prezice următorul cuvânt. Dacă introduceți ceva nevalid, vă solicită să încercați din nou.

    # You can use this code snippet to interactively test the model with user input
    user_input = input("Enter a prefix for next-word prediction: ").lower().split()
    if len(user_input) != N - 1:
        print("Please enter a valid prefix.")
    else:
        prefix = tuple(user_input)
        prediction = predict_next_word(prefix)
        print(f"Next word prediction: {prediction}")

    Codul nostru va crea acest tip de interfață. Unde puteți scrie prefixe și apăsați enter.

      Cum să finalizați și să revocați accesul la un fișier Google partajat

    Introduceți Prefixul

    După ce ați introdus enter, veți primi următorul cuvânt

    Cuvântul prezis

    Este o modalitate de a demonstra modul în care modelul de predicție al cuvântului următor poate fi utilizat în practică.

    Provocări:

  • Precizia predicției cuvântului următor depinde în mare măsură de dimensiunea și calitatea datelor de antrenament. Datele limitate sau zgomotoase pot duce la predicții mai puțin precise.
  • Dacă un cuvânt din textul introdus nu există în datele de antrenament, acesta nu poate fi prezis cu precizie.
  • Punctuația poate afecta acuratețea predicțiilor, în special în limbi precum engleza, unde limitele cuvintelor pot fi ambigue.
  • Tokenizarea sau preprocesarea incorectă poate duce la predicții incorecte.
  • Multe cuvinte au sensuri multiple, iar contextul poate să nu le dezambiguizeze întotdeauna.
  • Cum să îmbunătățiți acuratețea

  • Utilizarea unui set de date mai mare și mai divers îmbunătățește înțelegerea de către model a diferitelor contexte și cuvinte.
  • Luați în considerare utilizarea N-gramelor de ordin superior (de exemplu, trigrame) pentru mai mult context, dar echilibrați-l cu disponibilitatea datelor.
  • Colectați feedback-ul utilizatorilor și îmbunătățiți continuu modelul pe baza utilizării din lumea reală.
  • Evaluați în mod regulat performanța modelului cu valori adecvate și ajustați strategiile în consecință.
  • Puteți implementa modele bazate pe rețele neuronale, cum ar fi LSTM sau Transformer, pentru modelarea contextului mai complexă.
  • Cuvinte finale

    În lumea procesării limbajului natural, prezicerea cuvântului următor este o abilitate valoroasă. Cu acești 5 pași simpli Python, ați obținut un instrument puternic pentru o comunicare mai rapidă și o tehnologie mai inteligentă.

    Continuați să explorați și să utilizați aceste cunoștințe pentru a vă îmbunătăți experiențele lingvistice. Călătoria tocmai a început!

    De asemenea, puteți explora câteva modalități cele mai bune de a descărca fișiere de la o adresă URL folosind Python.