Проверка орфографии
От: jenyavb  
Дата: 26.07.06 11:34
Оценка:
Какие есть бесплатные компоненты для проверки орфографии?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Проверка орфографии
От: Pavel_Agurov Россия  
Дата: 26.07.06 11:37
Оценка: 5 (2) :)
Word?

Например так:


using System;
using System.Collections;
using System.Reflection;
using Microsoft.Office.Interop.Word;

namespace WordSpellChecker 
{
  class Class1
  {
    [STAThread]
    static void Main(string[] args) 
    {
      // текст для проверки
      string sentence = "Проверка орфографии слуво с ошибкай.";

      // делим текст на слова
      string[] words = sentence.Split();

      // класс для проверки слов
      SpellChecker checker = new SpellChecker();

      // проверяем каждое слово
      foreach (string word in words) 
      {
        // проверка
        string[] suggestions = checker.Suggest(word);

        // правильно написано
        if (suggestions == null) 
        {
          Console.WriteLine("\"{0}\" написано верно", word);
        } 
        else 
        {
          // ошибка - предлагаем варианты
          Console.WriteLine("\"{0}\" написано не верно! Варианты:",
                                                           word);
          foreach (string suggestion in suggestions)
            Console.WriteLine("\t" + suggestion);
        }
        Console.WriteLine();
      }
      checker = null;

      Console.ReadLine();
    }
  }
    
  // Класс для проверки слов
  class SpellChecker 
  {
    private ApplicationClass application;

    public SpellChecker() 
    {
      object template = "normal.dot";
      object newtemplate = false;
      object doctype = WdNewDocumentType.wdNewBlankDocument;
      object visible = false;

      // объект MS word
      this.application = new ApplicationClass();
      this.application.DisplayAlerts = WdAlertLevel.wdAlertsNone;
      this.application.Visible = false;
      this.application.Options.SuggestSpellingCorrections = true;

      // создаем новый документ
      Document document = this.application.Documents.Add(
           ref template, ref newtemplate, ref doctype, ref visible);
      document.Activate();
    }

    ~SpellChecker()
    {
      // завершить word, ничего не сохраняя
      object savenochanges = WdSaveOptions.wdDoNotSaveChanges;
      object nothing = Missing.Value;

      if (this.application != null)
        this.application.Quit(
                 ref savenochanges, ref nothing, ref nothing);
      this.application = null;
    }

    /// <summary>
    /// Проверка слова
    /// </summary>
    public string[] Suggest(string word) 
    {
      object nothing = Missing.Value;

      // Проверяем
      bool spelledright = this.application.CheckSpelling(word, 
            ref nothing, ref nothing, ref nothing, ref nothing,
            ref nothing, ref nothing, ref nothing, ref nothing,
            ref nothing, ref nothing, ref nothing, ref nothing);

      if (spelledright) 
        return null;

      // получаем список слов для замены
      SpellingSuggestions suggestions =
         this.application.GetSpellingSuggestions(word, 
             ref nothing, ref nothing, ref nothing, ref nothing, 
             ref nothing, ref nothing, ref nothing, ref nothing, 
             ref nothing, ref nothing, ref nothing, ref nothing, 
             ref nothing);

      // сохраняем список слов
      ArrayList words = new ArrayList();
      foreach (SpellingSuggestion suggestion in suggestions)
        words.Add(suggestion.Name);

      suggestions = null;

      // возвращаем массив слов
      return (string[]) words.ToArray(typeof (string));
    }
  }
}
Re[2]: Проверка орфографии
От: Lloyd Россия  
Дата: 26.07.06 11:40
Оценка:
Здравствуйте, Pavel_Agurov, Вы писали:

P_A>Word?


А компонент под названием Word уже стали бесплатно раздавать?
Re[3]: Проверка орфографии
От: Pavel_Agurov Россия  
Дата: 26.07.06 11:45
Оценка:
Поэтому я там смайлик поставил. Ну а вдруг коллеге пригодится — если Word — проверяем, нету — ну извиняй, не проверяем...
Re: Проверка орфографии
От: Arboz Россия  
Дата: 26.07.06 11:51
Оценка: 16 (2)
Здравствуйте, jenyavb, Вы писали:

J>Какие есть бесплатные компоненты для проверки орфографии?

Netspell
Re[4]: Проверка орфографии
От: HotDog Швейцария www.denebspace.com
Дата: 26.07.06 12:26
Оценка:
Здравствуйте, Pavel_Agurov, Вы писали:

P_A>Поэтому я там смайлик поставил. Ну а вдруг коллеге пригодится — если Word — проверяем, нету — ну извиняй, не проверяем...


Лицензия запрещает использование словарей встроенных в Word в 3rd party applications, даже если сам Word лицензионно чистый.
Re[5]: Проверка орфографии
От: jenyavb  
Дата: 26.07.06 14:26
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Здравствуйте, Pavel_Agurov, Вы писали:


P_A>>Поэтому я там смайлик поставил. Ну а вдруг коллеге пригодится — если Word — проверяем, нету — ну извиняй, не проверяем...


HD>Лицензия запрещает использование словарей встроенных в Word в 3rd party applications, даже если сам Word лицензионно чистый.


А, я и не знал, ихотел так сделать...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Проверка орфографии
От: jenyavb  
Дата: 26.07.06 14:28
Оценка:
Здравствуйте, Arboz, Вы писали:

A>Здравствуйте, jenyavb, Вы писали:


J>>Какие есть бесплатные компоненты для проверки орфографии?

A><span class='lineQuote level1'>A&gt;http://www.codeproject.com/csharp/netspell.asp</span>

А русский язык поддерживает?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Проверка орфографии
От: Arboz Россия  
Дата: 26.07.06 14:30
Оценка:
Здравствуйте, jenyavb, Вы писали:

J>Здравствуйте, Arboz, Вы писали:


A>>Здравствуйте, jenyavb, Вы писали:


J>>>Какие есть бесплатные компоненты для проверки орфографии?

A>><span class='lineQuote level2'>A&gt;&gt;http://www.codeproject.com/csharp/netspell.asp</span>

J>А русский язык поддерживает?



The download includes an English dictionary with dictionaries for other languages available for download on the project web site. NetSpell also supports user added words and automatic creation of user dictionaries. It also includes a dictionary build tool to build custom dictionaries.


Наверняка же есть словари для русского языка.
Re[4]: Проверка орфографии
От: jenyavb  
Дата: 26.07.06 14:36
Оценка:
Здравствуйте, Arboz, Вы писали:

A>

A>The download includes an English dictionary with dictionaries for other languages available for download on the project web site. NetSpell also supports user added words and automatic creation of user dictionaries. It also includes a dictionary build tool to build custom dictionaries.


A>Наверняка же есть словари для русского языка.


Искать неохота...
И ссылка для загрузки не работает.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Проверка орфографии
От: fmiracle  
Дата: 26.07.06 15:36
Оценка: 15 (1)
Здравствуйте, jenyavb, Вы писали:

A>>Netspell


J>А русский язык поддерживает?


Она использует словари почти формата Опен-Оффис
На опенофисном сайте есть ссылка на несколко разных русских словарей.

Почти — потому что у офиса используется 2 (или 3?) файла на словарь (отдельно аффиксы/суффиксы и отдельно — основы слов), в данной же программе используется один словарь... полученный объединением этих двух

Т.е. надо посмотреть пример организации словаря и заполнить поля файла (там набор раздовов, разделенный заголовками как в ини-файлах) данными из словарей стандарта ОпенОфис. Ну может чуть подправить что, не помню детали — довольно давно игрался с нетспелом. Сперва довольно долго тормозил с этими словарями, потом сообразил — заработала, вполне себе проверяла орфографию. Но в практическом приложении я ее не применял — просто нужда отпала.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Проверка орфографии
От: Красин Россия  
Дата: 26.07.06 15:40
Оценка: :)
Здравствуйте, fmiracle, Вы писали:

F>Здравствуйте, jenyavb, Вы писали:


A>>>Netspell


J>>А русский язык поддерживает?


F>Она использует словари почти формата Опен-Оффис

F>На опенофисном сайте есть ссылка на несколко разных русских словарей.

А что, верно говорят, что если использовать словарь из OpenOffice, то придется свою программу под GPL выпускать?
Re[5]: Проверка орфографии
От: fmiracle  
Дата: 26.07.06 17:17
Оценка:
Здравствуйте, Красин, Вы писали:

F>>Она использует словари почти формата Опен-Оффис

F>>На опенофисном сайте есть ссылка на несколко разных русских словарей.

К>А что, верно говорят, что если использовать словарь из OpenOffice, то придется свою программу под GPL выпускать?


Хм. Не уточнял. Я тогда собирался делать открытую прогу — меня бы и GPL и устроила. Да и все равно не сделал

С другой стороны — утверждение выглядит сомнительным — опен оффис в целом распространяется под лицензией LGPL (Lesser GPL), а она не накладывает подобных ограничений.

При этом касательно Netspell — по ссылке, что я говорил, лежат ссылки на словари разных авторов — те могут иметь свои лицензии со своими правилами.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Проверка орфографии
От: jenyavb  
Дата: 26.07.06 17:32
Оценка:
J>И ссылка для загрузки не работает.
Работает.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Проверка орфографии
От: Красин Россия  
Дата: 26.07.06 19:37
Оценка:
Здравствуйте, fmiracle, Вы писали:


F>С другой стороны — утверждение выглядит сомнительным — опен оффис в целом распространяется под лицензией LGPL (Lesser GPL), а она не накладывает подобных ограничений.


Я почитал, там словари по умолчанию идут по Public Documentation Licence, но что она разрешает и что требует, так и не ясно.
Re[4]: Проверка орфографии
От: Arboz Россия  
Дата: 27.07.06 06:49
Оценка: 1 (1)
Здравствуйте, fmiracle, Вы писали:


F>Почти — потому что у офиса используется 2 (или 3?) файла на словарь (отдельно аффиксы/суффиксы и отдельно — основы слов), в данной же программе используется один словарь... полученный объединением этих двух


Есть еще большой проект Wordnet — большая лексическая база для английского языка. API к нему есть и на .NET-е — здесь

EuroWordNet — поддержка Dutch, Italian, Spanish, German, French, Czech and Estonian.
Re[5]: Проверка орфографии
От: Andre Украина  
Дата: 27.07.06 13:01
Оценка: :)))
Здравствуйте, HotDog, Вы писали:

HD>Лицензия запрещает использование словарей встроенных в Word в 3rd party applications, даже если сам Word лицензионно чистый.


Странно, а сам MS в FxCop их использует
... << RSDN@Home 1.2.0 alpha rev. 655>>
Я бы изменил мир — но Бог не даёт исходников...
Re[6]: Проверка орфографии
От: fmiracle  
Дата: 27.07.06 13:33
Оценка: :)
Здравствуйте, Andre, Вы писали:

HD>>Лицензия запрещает использование словарей встроенных в Word в 3rd party applications, даже если сам Word лицензионно чистый.


A>Странно, а сам MS в FxCop их использует


Осталось дождаться, когда МС сама на себя в суд подаст. Думаю, будет интересное зрелище.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Проверка орфографии
От: jenyavb  
Дата: 27.07.06 17:02
Оценка:
Здравствуйте, Красин, Вы писали:

К>Я почитал, там словари по умолчанию идут по Public Documentation Licence, но что она разрешает и что требует, так и не ясно.


Мда... А мне для шаровары надо...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Проверка орфографии
От: Красин Россия  
Дата: 27.07.06 17:13
Оценка:
Здравствуйте, jenyavb, Вы писали:

J>Здравствуйте, Красин, Вы писали:


К>>Я почитал, там словари по умолчанию идут по Public Documentation Licence, но что она разрешает и что требует, так и не ясно.


J>Мда... А мне для шаровары надо...


Вы посмотрите конкретно на тот словарь, который русский. Т.к. он не поставляется вместе с Open Office, вполне возможно, что у него лицензия "бери не хочу"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.