Редактор правописания в ASP.NET - PullRequest
0 голосов
/ 10 ноября 2009

Мне нужно создать средство правописания в ASP.NET ... Ниже приведены мои требования.

Случай 1: Мой список слов не только включает в себя слова, но и включает некоторые коды, такие как AACD, ESSA, BIMER и т. Д. Я могу предоставить такие (новые) слова из базы данных.

Случай 2. Мне также нужен аналогичный орфографический корректор для неанглийского языка. Даже здесь я могу предоставить список слов из базы данных.

Теперь, любые предложения о том, как реализовать то же самое, приветствуются.

Кроме того, я нашел следующий код Python на веб-сайте, в котором говорится, что он возвращает наиболее вероятное предложение (на английском языке, конечно). Если кто-то сможет перевести его на C #, это будет очень полезно.

 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)

Спасибо - Раджа

Ответы [ 3 ]

4 голосов
/ 10 ноября 2009

Другая альтернатива - NHunspel

NHunspell - бесплатное заклинание с открытым исходным кодом. средство проверки для .NET Framework. C # и Пример кода Visual Basic доступен для проверки орфографии, переноса слов и поиск по системному имени через тезаурус.

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 );
    }
}
2 голосов
/ 10 ноября 2009

Коммерческий продукт, над которым я работаю, использует NETSpell Spell Checker , имеет инструмент словаря, который позволяет добавлять пользовательские словари и слова.

0 голосов
/ 01 августа 2013

Бесплатная проверка орфографии .NET, основанная на текстовом поле WPF, которое можно использовать на стороне клиента или сервера. здесь . Это может быть передан список слов, чтобы игнорировать (ваш пользовательский словарь)

Полное раскрытие ... написано вами действительно с некоторой помощью от переполнения стека, конечно:)

...