Question

Je dois construire une suggestor d'orthographe dans ASP.NET ... Le ci-dessous sont mes besoins.

Cas n ° 1: Ma liste de mots ne sont pas seulement des mots, mais englist sera inclut également certains codes comme AACD, ESSA, Bimer etc ... Je peux fournir ces (nouveaux) mots de base de données

.

Cas n ° 2: Je dois aussi SUGGESTOR une orthographe proche de langue non anglaise, même ici, je peux fournir une liste de mots à partir d'une base de données

.

Maintenant, des suggestions quant à la façon dont je mets en œuvre la même est la bienvenue.

De plus, je trouve le code suivant Python, d'un site Web, qui indique qu'il renvoie la suggestion la plus probable (en anglais ofcourse). Si quelqu'un peut le traduire en C # qui 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

Était-ce utile?

La solution

Le produit commercial que je travaille sur les utilisations NETSpell orthographique Checker, il a un outil de dictionnaire qui vous permet d'ajouter des dictionnaires personnalisés et des mots.

Autres conseils

Une autre alternative est NHunspel

  

NHunspell est un sort libre et open source   vérificateur pour le .NET Framework. C # et   exemple de code Visual Basic est disponible   pour la vérification orthographique, de césure et   sysnonym recherche par thésaurus.

using (Hunspell hunspell = new Hunspell("en_us.aff", "en_us.dic"))
{
    bool correct = hunspell.Spell("Recommendation");
    var suggestions = hunspell.Suggest("Recommendatio");
    foreach (string suggestion in suggestions)
    {
        Console.WriteLine("Suggestion is: " + suggestion );
    }
}

Free .NET correcteur d'orthographe basé autour d'une zone de texte WPF qui peut être utilisé côté client ou serveur peut être vu ici . Cela peut être transmis une liste de mots à ignorer (votre dictionnaire personnalisé)

La divulgation complète ... écrit par votre serviteur avec l'aide de débordement de pile bien sûr:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top