ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° NLTK, ΠΈΠ»ΠΈ NLTK, β ΠΏΠ°ΠΊΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π°Π²ΡΠΎΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠ° Π½Π° python. ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ. ΠΠ²ΡΡΠΈΡ ΠΊΡΡΡΠΎ!
Natural Language Toolkit
nltk ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Natural Language Toolkit, ΠΈ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ: words, edit_distance, jaccard_distance ΠΈ ngrams.
edit_distance, jaccard_distance ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ-ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅Π³ΠΎ Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
N-Π³ΡΠ°ΠΌΠΌΠ° β ΡΡΠΎ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: Β«ΠΠ΅Π»ΡΠΉ Π΄ΠΎΠΌΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΈΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΈ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π² ΠΏΡΡΠΌΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π΄ΠΎΠΌ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pandas Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
import nltk
from nltk.corpus import words
from nltk.metrics.distance import (
edit_distance,
jaccard_distance,
)
from nltk.util import ngrams
nltk.download('words')
import pandas
words.words() Π΄Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ nltk . spellings_series β ΡΡΠΎ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠΈΡ ΡΠ»ΠΎΠ².
correct_spellings = words.words()
spellings_series = pandas.Series(correct_spellings)
spellings_series
ΠΠ΅ΡΡΠΈΠΊΠ°: ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ°ΠΊΠΊΠ°ΡΠ°
ΠΡΠΎ ΠΌΠ΅ΡΠ° ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡ ΠΎΠΆΠΈ Π΄Π²Π° Π½Π°Π±ΠΎΡΠ°, Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π½ΠΈΠΆΠ΅:
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Π² spellings_series.
Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ°ΠΊΠΊΠ°ΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° n Γ n Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ n Π½Π°Π±ΠΎΡΠΎΠ² Π²ΡΠ±ΠΎΡΠΎΠΊ. ΠΡΠΎ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΎΠΉ Π½Π° ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ Π²ΡΠ΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ². d ΞΌ (A, B) = 1 - J ΞΌ (A, B)
Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ°ΠΊΠΊΠ°ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠΉ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡ ΠΎΠΆΠΈ Π΄Π²Π° Π½Π°Π±ΠΎΡΠ° ΡΠ΄Π»Π²Π°, ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΠ°ΠΊΠΊΠ°ΡΠ° (Ρ. Π΅. ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ°ΠΊΠΊΠ°ΡΠ° = 100% - ΠΈΠ½Π΄Π΅ΠΊΡ ΠΠ°ΠΊΠΊΠ°ΡΠ°).
ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ for Π΄Π»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ ΡΠ»ΠΎΠ² ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ spellings_series.
Π€ΡΠ½ΠΊΡΠΈΡ jaccard Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ entries and gram_number, Π³Π΄Π΅ entries ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΌ ΡΠ»ΠΎΠ²Π°ΠΌ, Π° gram_number ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ n-Π³ΡΠ°ΠΌΠΌ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π·Π΄Π΅ΡΡ). N-Π³ΡΠ°ΠΌΠΌΠ°Β β ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· n ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π‘ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π²ΡΠΊΠΎΠ², ΡΠ»ΠΎΠ³ΠΎΠ², ΡΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π±ΡΠΊΠ². ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ N-Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ°ΠΊ ΡΡΠ΄ ΡΠ»ΠΎΠ², ΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ ΡΠ»ΠΎΠ²ΠΎΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠ»Π»ΠΎΠΊΠ°ΡΠΈΠ΅ΠΉ. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π±ΠΈΠ³ΡΠ°ΠΌΠΌΠ°, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΈΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΡΡΡΡΡ ΠΈ Π²ΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ N-Π³ΡΠ°ΠΌΠΌΠ°, N Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Spellings ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ»ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π±ΡΠΊΠ²Ρ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ Π±ΡΠΊΠ²Π° Π½Π΅ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ°Π»Π΅Π΅, Distances Π±ΡΠ΄Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΠ°ΠΊΠΊΠ°ΡΠ° Π΄Π»Ρ ΡΠ»ΠΎΠ² Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ jaccard_distance.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, closest Π΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ Ρ Π»ΡΡΡΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ min Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡΡ . ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ ΡΠ»ΠΎΠ²ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΠΈ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
def jaccard(entries, gram_number):
outcomes = []
for entry in entries: #iteratively for loop
spellings = spellings_series[spellings_series.str.startswith(entry[0])]
distances = ((jaccard_distance(set(ngrams(entry, gram_number)),
set(ngrams(word, gram_number))), word)
for word in spellings)
closest = min(distances)
outcomes.append(closest[1])
return outcomes
Π’Π΅ΠΏΠ΅ΡΡ, Ρ Π½Π°ΡΠ΅ΠΉ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΆΠ°ΠΊΠΊΠ°ΡΠ΄Π°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»Ρ ΡΠ»ΠΎΠ²(Π°Π½Π°Π»ΠΎΠ³ Ρ9), JDreco. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ Β«cormulentΒ», Β«incidenceΒ», Β«validrateΒ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»ΠΎΠ².
def JDreco(entries=['cormulent', 'incendenece', 'validrate']):
"""finds the closest word based on jaccard distance"""
return jaccard(entries, 3)
print(JDreco())
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ, ΠΠ°ΡΠ° ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π³ΠΎΡΠΎΠ²Π°!
ΠΠ΅ΡΡΠΈΠΊΠ°: ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ , ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ΅Π²Π΅Π½ΡΡΠ΅ΠΉΠ½Π°.
Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ΅Π²Π΅Π½ΡΡΠ΅ΠΉΠ½Π° (ΡΠ΅Π΄Π°ΠΊΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅, Π΄ΠΈΡΡΠ°Π½ΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ)Β β ΠΌΠ΅ΡΡΠΈΠΊΠ°, ΠΈΠ·ΠΌΠ΅ΡΡΡΡΠ°Ρ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π·Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡΡΠ°Π²ΠΊΠΈ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, Π·Π°ΠΌΠ΅Π½Ρ), Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π΄ΡΡΠ³ΡΡ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π² ΡΡΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π½Ρ. Π¨ΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΎΡΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π»ΠΈΠ½Π³Π²ΠΈΡΡΠΈΠΊΠ΅.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΏΠΎΡ ΠΎΠΆΠΈ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. ΠΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»ΠΎΠ², ΡΡΠΎ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠ»ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ΅Π²Π΅Π½ΡΡΠ΅ΠΉΠ½Π° ΠΠ°ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΌ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ.
def editreco(entries=['cormulent', 'incendenece', 'validrate']):
outcomes = []
for entry in entries:
distances = ((edit_distance(entry,
word), word)
for word in correct_spellings)
closest = min(distances)
outcomes.append(closest[1])
return outcomes
editreco()
ΠΡΠΎΡΠ°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°!
ΠΠ²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ Π½Π°ΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠ°Π±ΠΎΡΡ. ΠΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· 3 ΡΠ»ΠΎΠ²: Π²Π΅ΡΡΠΈΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ βThree words pleaseββ Β«threa woeds pleeseΒ», ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ ΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΡΠΏΠΈΡΠΊΠ°.
userinput = []
for i in range(0,3):
word = input("threa woeds pleese: ")
userinput.append(word)
userinput
ΠΡΠ²ΠΎΠ΄ 1 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ :
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° βthreadβ, βwoeβ, βpleaβ.
JDreco(userinput)
ΠΡΠ²ΠΎΠ΄ 2 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ :
ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π²ΡΠ²ΠΎΠ΄Π° βtareaβ, βMoedβ, βpleaseβ
editreco(userinput)
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ»ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΎΠΆΠΈΠ΄Π°Π»! ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ editreco ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΡΡΡΠ΅, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Β«ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°Β», ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ JDreco.
ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Β«ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉΒ» ΠΈ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΡΠ»ΠΎΠ²Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π±ΡΠΊΠ²Π°ΠΌ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Π²ΡΠΎΠ·Π°ΠΌΠ΅Π½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ Google ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠΈΠ»ΠΈΠΉ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π±ΡΠ΄Ρ Π΄Π΅Π»Π°ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΡΡΡΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±ΡΠ΄ΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΡ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΡΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Pytorch.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!
https://t.me/ai_machinelearning_big_data - Π»ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΡΡ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
https://t.me/pythonl - ΠΊΠ°Π½Π°Π» Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Python