Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.13;
Скачать: CL | DM;

Вниз

проверка орфографии   Найти похожие ветки 

 
ford ©   (2009-07-25 16:53) [0]

Здравствуйте!!
Избитая тема и в интернете много чего есть касательно её, но восновном предлагается Word.
Попробовал, результат ужасный 20 тыс слов проверялось более 30 минут.
Делаю так:
1. открываю ворд,
2. в цикле, вставляю в текст по одному слову, и проверю результат.
3. закрываю ворд.

Решил сделать свой словарик (причем заполнить его можно, так же скармливая Ворд слово и если оно есть у него то заносить в свой, медленно но верно :) ).
Для поиска по своему словарю решил использовать древовидную структуру, такого вида :
каждый элемент дерева это одномерный массив из 119 ссылок на позицию в файле где расположен следующий элемент дерева.
119 - все буквы алфавитов русского и английского большие и маленькие и знак -
таким образом получается например
слово "Абба" будет состоять из трех элементов дерева,
A[1..119] где А[34]=указатель на б[1..119], где б[34]= указатель на а[1..119] где все эл-ты =-1 (конец)

слово "Аббо" будет состоять так же из 3-х элементов но первые два уже есть в индексном файле и соответствующие эементы массивов уже заполненны, в файл добавится новый эелемент о[1..119] а в элементе б[49]=указатель на элемент o[1..119]

Таким образом получается что поиск любого слова в справочнике составит n-1 чтений из файла где n-длина искомого слова.

Все вроде класно и быстро поиск тех же 20 тыс слов в справочнике составил несколько секунд.
Но размер такого справочника ооочень большой

Подскажите как можно оптимизировать мое дерево
или подскажите другой алгоритм построения справочников такого типа, в применении поставленной задачи (сделать проверку орфографии)?

заранее благодарен за помошь Ж)


 
oldman ©   (2009-07-25 22:18) [1]

Неблагодарное дело.

"У Лукоморья дуб зеленая, златой цепь на дуб тома."
С точки зрения орфографии вроде все правильно...

Зачем тебе эта проверка орфографии?


 
ford ©   (2009-07-26 07:10) [2]

очень много текстовой информации которая поступает на обработку и в ней надо исключить ошибки типа
"УЛукоморья дуб зел еная, злотой цепь на дуб тома."

и таких ошибок жуть сколько


 
ford ©   (2009-07-26 07:39) [3]

мало того, ведь и Ворд очень много слов подчекривает неправильно
например 2000 ворд подчеркивал,
"мультиканальный" предлагая заменить это слово на два :)
"мультик" и "анальный"


 
StriderMan   (2009-07-27 15:18) [4]

Почему бы не воспользоваться штатными средствами сортировки.поиска строк? Тот же TStringList умеет.


 
Sha ©   (2009-07-28 13:45) [5]

к [4] добавлю:

2. Русские слова можно не мешать с английскими.
3. Можно переводить слова в числа N-ричной системы счисления. На каждой странице словаря (~512 байт) хранить первое число целиком, а для остальных только дельту. 2х-уровневый индекс страниц. Сами слова хранить не требуется.
4. Слова можно хешировать и искать по хешу. Хеш можно хранить в Objects того же TStringList


 
oldman ©   (2009-07-28 16:15) [6]


> ford ©   (26.07.09 07:10) [2]
> "УЛукоморья дуб зел еная"
> и таких ошибок жуть сколько


самое смешное, что "дуб зелена я" будет правильно...

ЗЫ: И желаю продумать вопрос с падежами, склонениями, спряжениями, временами, родами etc.


 
Sha ©   (2009-07-28 16:36) [7]

> oldman ©   (28.07.09 16:15) [6]
> вопрос с падежами, склонениями, спряжениями, временами, родами etc.

все в словарь


 
brother ©   (2009-07-29 06:07) [8]

эээ, может круче промт"а получится, а для небольшой программы оно надо?


 
Sha ©   (2009-07-29 10:12) [9]

> brother ©   (29.07.09 06:07) [8]

Вариант 3 из [5] делал еще под DOS для проверки орфографии и англо-русского словаря в своем редакторе.
Работало быстро и памяти словари занимали немного.


 
brother ©   (2009-07-29 10:52) [10]

вариант...


 
Styx   (2009-07-29 15:53) [11]

http://www.gnu.org/software/ispell/ispell.html
GNU, все исходники, словари...



Страницы: 1 вся ветка

Текущий архив: 2011.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1292598131
Цукор5
2010-12-17 18:02
2011.03.13
Позиция окон в MessageDlg и ShowMessage


1-1248884182
Tornado
2009-07-29 20:16
2011.03.13
Как построить график?


2-1292680185
фуфик
2010-12-18 16:49
2011.03.13
Не могу определить цвет пикселя


15-1290785836
Юрий Зотов
2010-11-26 18:37
2011.03.13
Видеокурс Delphi


15-1291276726
Sergey
2010-12-02 10:58
2011.03.13
JEDI для Delphi2009