J'ai besoin de construire un correcteur d'orthographe dans ASP.NET ... Ce qui suit sont mes exigences.Orthographe Suggestor dans ASP.NET
Cas 1: Ma liste de mots ne sont pas seulement des mots englist mais comprendra aussi des codes comme AACD, ESSA, BIMER etc ... Je peux fournir ces mots (nouveaux) de la base de données.
Cas 2: J'ai également besoin d'un orthographe similaire pour la langue non-anglaise, même ici, je peux fournir une liste de mots d'une base de données.
Maintenant, Toutes les suggestions quant à la façon dont je implémente la même chose sont les bienvenues.
En outre, j'ai trouvé le code Python suivant, à partir d'un site Web, qui indique qu'il renvoie la suggestion la plus probable (en anglais bien sûr). Si quelqu'un peut le traduire en C#, ce serait vraiment utile.
import re, collections def words(text): return re.findall('[a-z]+', text.lower()) def train(features): model = collections.defaultdict(lambda: 1) for f in features: model[f] += 1 return model NWORDS = train(words(file('big.txt').read())) alphabet = 'abcdefghijklmnopqrstuvwxyz' def edits1(word): s = [(word[:i], word[i:]) for i in range(len(word) + 1)] deletes = [a + b[1:] for a, b in s if b] transposes = [a + b[1] + b[0] + b[2:] for a, b in s if len(b)>1] replaces = [a + c + b[1:] for a, b in s for c in alphabet if b] inserts = [a + c + b for a, b in s 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): return set(w for w in words if w in NWORDS) def correct(word): candidates = known([word]) or known(edits1(word)) or known_edits2(word) or [word] return max(candidates, key=NWORDS.get)
Merci - Raja
Nous avons besoin d'appeler la méthode correcte (» speling "), qui renvoie String" Orthographe "comme suggestion la plus probable. –
Salut, Quelqu'un là-bas m'a rejeté, Pourriez-vous s'il vous plaît laissez-moi savoir pourquoi? –
Je suppose que les downvotes sont parce que vous n'avez fait aucun effort pour traduire le code vous-même. SO est là pour vous aider avec les problèmes de programmation, pas pour faire l'intégralité du travail pour vous. Dans tous les cas, si vous voulez le correcteur d'orthographe de Norvig en C#, voyez sa page d'origine. Il y a des liens vers le bas pour les gens qui ont traduit son code original: http://norvig.com/spell-correct.html –