Pregunta

Tengo que construir un SUGGESTOR ortografía en ASP.NET ... La continuación son mis requisitos.

Caso 1: Mi lista de palabras no son sólo palabras Englist sino que también incluye algunos códigos como AACD, ESSA, BIMER etc ... puede proporcionar tales (nuevo) palabras de la base de datos

.

Caso 2: Yo también necesito una ortografía similar para sugerir para No-Inglés Idioma, Incluso en este caso, puedo proporcionar una lista de palabras a partir de una base de datos

.

Ahora, cualquier sugerencia en cuanto a cómo implementar la misma es bienvenido.

Además, he encontrado el siguiente código Python, desde un sitio web, el cual establece que devuelve la sugerencia más probable (en Inglés por supuesto). Si alguien puede traducirlo en C # que sería de gran ayuda.

 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)

Gracias - Raja

¿Fue útil?

Solución

El producto comercial que trabajo sobre los usos NETSpell corrector ortográfico , tiene una herramienta de diccionario que le permite añadir diccionarios y las palabras personalizadas.

Otros consejos

Otra alternativa es NHunspel

  

NHunspell es un hechizo de código abierto   corrector para el Marco .NET. C # y   código de ejemplo de Visual Basic está disponible   para la corrección ortográfica, partición y   lookup sysnonym través de tesauro.

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 );
    }
}

Libre .NET corrector ortográfico en torno a un cuadro de texto de WPF que se pueden utilizar de cliente o del lado del servidor se pueden ver aquí . Esto se puede pasar una lista de palabras a ignorar (su diccionario personalizado)

La revelación completa ... escrito por su servidor con la ayuda de desbordamiento de pila, por supuesto:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top