2009-11-10 2 views
-2

Мне нужно создать предложение орфографии в ASP.NET ... Ниже приведены мои требования.Правописание в 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) 

Благодаря - Раджа

+0

Нам нужно вызвать метод Correct (» speling "), который возвращает String" Spelling "как наиболее вероятное предложение. –

+0

Привет, Кто-то там проголосовал за меня, Не могли бы вы, пожалуйста, дайте мне знать, почему? –

+2

Я подозреваю, что downvotes - это потому, что вы не приложили никаких усилий, чтобы перевести код самостоятельно. SO здесь, чтобы помочь с проблемами программирования, а не выполнять всю работу за вас. В любом случае, если вы хотите, чтобы корректор орфографии Норвига в C#, см. Его оригинальную страницу. Есть ссылки внизу для людей, которые перевели его оригинальный код: http://norvig.com/spell-correct.html –

ответ

2

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

4

Другой альтернативой является 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); 
    } 
} 
+1

NHunspell + [Американский словарь для проверки орфографии в Firefox] (https://addons.mozilla.org/en-US/firefox/addon/united-states-english-spellche/) был идеален для моих нужд. –

0

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

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

Смежные вопросы