Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2011.03.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.078 c
15-1291223827
Haradzienski
2010-12-01 20:17
2011.03.13
Книги по Дэлфи


2-1292598131
Цукор5
2010-12-17 18:02
2011.03.13
Позиция окон в MessageDlg и ShowMessage


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


15-1290979780
Юрий
2010-11-29 00:29
2011.03.13
С днем рождения ! 29 ноября 2010 понедельник


3-1254836260
romichshos
2009-10-06 17:37
2011.03.13
Вычисляемые поля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский