IDI Spell Checker 24.02.07

От време на време се появяват идеи за странични проекти. Обсъждайте ги тук.
Правила
Уважавайте другите участници и се отнасяйте с тях така, както бихте желали те да се отнасят с вас!
Отговор
DrunkenDonkey
Мнения: 161
Регистрация: 06 юни 2009, 22:32

Мнение от DrunkenDonkey »

dd, имам голяма молба - при разпознаване много често се бърка п/л/н/и, а това и лесно убягва при прочит. Може ли програмата да проверява верни вариации на думи с тези букви и да изкарва списък, който може ръчно да бъде проверен? Доста ще се забави, но това ще махне страшно много грешки. Пример: полита/полита, изтичалия/изтичания...
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

DrunkenDonkey написа:dd, имам голяма молба - при разпознаване много често се бърка п/л/н/и, а това и лесно убягва при прочит. Може ли програмата да проверява верни вариации на думи с тези букви и да изкарва списък, който може ръчно да бъде проверен? Доста ще се забави, но това ще махне страшно много грешки. Пример: полита/полита, изтичалия/изтичания...
Може лесно да се добави, тъй като подобен код за ш->щ и щ->ш вече е написан. Просто ще добавя и други подобни двойки. За всяка двойка ще се генерира списък и редакторът ръчно ще проверява кое е грешка и кое не е. На първо време ще добавя п->л, л->п, н->и, и->н, н->п, п->н. Вероятно генерираните списъци с потенциални грешки ще са доста дълги, затова проверката ще е изключена по подразбиране. Който има време и желание ще може да я активира в менюто "Опции". До няколко часа ще кача нова версия за тестове. И аз съм любопитен дали реално ще се откриват още скрити грешки, или не.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:31.
DrunkenDonkey
Мнения: 161
Регистрация: 06 юни 2009, 22:32

Мнение от DrunkenDonkey »

Страхотно. Да, списъка ще е много дълъг, но май просто друг начин няма. Чета нещо и изтървам сбъркано п с л, особено с печатния шрифт на риидъра ми, те се отличават едва едва. Борислав коментира, че 3 пъти прочел явно грешното изречение, което Мандор постна, преди да види грешката, не става иначе. Виждал си и как успяваме да прочетем текст, само ако първата и последната буква са на мястото си, аз поне се признавам за безсилен спрямо такива близки по вид букви, когато са сбъркани.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.42

DrunkenDonkey, готово. Преди да отвориш файл, в менюто "Опции" активирай опцията "търси п->л... и др. OCR грешки". Нарочно съм я оставил изключена по подразбиране. Ако решиш, че искаш винаги да е активна по подразбиране, отвори settings.txt и промени ръчно опцията FIND_TWO_LETTERS от 0 на 1.

Откриват се следните комбинации: п-л, л-п, н-и, и-н, н-п, п-н, с-о, о-с, б-о, о-б, с-е, е-с. Още комбинации може да добавяш ръчно във файла "b_bulgarian_two_letters.txt" в папка "alt", като просто пишеш нови две букви на нов ред, с интервал между тях. Ако искаш може да махнеш някои от комбинациите, които в момента са във файла.

Не е ясно дали ще има полза за откриване на скрити грешки, но проверките на тези и някои други двойки (о-у, у-о, а-ъ, ъ-а) ми позволиха да оправя още няколко грешки в базата, наследени от БГ Офис-а (напр. неутъпкан, овивам, одържам). Досега са се изплъзвали от всички проверки и засичания, които съм правил. Също махнах двайсетина собствени имена и съкращения, които се видя, че се пишат опасно близо до основни български думи.

И нещо офтопик. Утре, 19-ти, изтича годишният хостинг на домейна ми (само хостинга, не и домейна) и очаквам да спрат достъпа по някое време, така че линковете към програмата няма да се отварят (реших да си спестя още 200 лева). По-нататък ще търся други варианти за разпространение, вероятно чрез торенти или безплатни сървъри.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:31.
DrunkenDonkey
Мнения: 161
Регистрация: 06 юни 2009, 22:32

Мнение от DrunkenDonkey »

ДД, тествах го и работи идеално. Но за съжаление комбинациите са повече, отколкото очаквах. Дори при това положение, преглеждайки само възможните грешки, хванах към 15... което си е много добро. По-добре да си остане изключено по подразбиране, а който иска да си прегледа и с него.
Аватар
SecondShoe
Мнения: 421
Регистрация: 16 август 2006, 04:55

Мнение от SecondShoe »

dd написа: И нещо офтопик. Утре, 19-ти, изтича годишният хостинг на домейна ми (само хостинга, не и домейна) и очаквам да спрат достъпа по някое време, така че линковете към програмата няма да се отварят (реших да си спестя още 200 лева). По-нататък ще търся други варианти за разпространение, вероятно чрез торенти или безплатни сървъри.
Прехвърли си сайта към freehostia. Те са най-надеждни от безплатните хостинги и не слагат банери и реклами.
Аватар
Inf
Мнения: 94
Регистрация: 20 юли 2008, 13:52

Мнение от Inf »

Ако линковете не се отвярят, >ТУК< има огледало :). Изпратил съм на ЛС скромно предложение за хостинга.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.43

Оцветява в червено предлозите "в", "във", "с" и "със", ако са използвани неправилно. Например "в ваната" вместо "във ваната", "със него" вместо "с него" и пр.

DrunkenDonkey, проблемът с OCR грешките ще се реши в някаква степен, когато активирам контекстната проверка (до десетина дена). Например в момента, в който се приложи правилото, че две последователни съществителни, без запетая между тях, са нещо непривично за българския език, грешките от рода на "понита човека" вместо "попита човека" ще се хванат веднага. Има доста изключения на това правило, предимно в поезията и в някои поговорки (Гладна мечка хоро не играе), но е рядко срещано в прозата, така че спокойно може да се претърсва текста за такива случаи (без количествени изрази като "чаша бира", "туба бензин"). Родовото съгласуване също ще хваща доста грешки, напр. "голямата къщи". Има и доста други правила, които могат да се кодират сравнително лесно.

Inf, SecondShoe, ще погледна предложенията. Първо ще изчакам да спрат достъпа. Не че се надявам да ме забравят или там да има хора-патриоти, но човек никога не знае. Правя средно към 1GB трафик на ден (около 30 сваляния), което за тяхната фирма е нищожен трафик.
Последната промяна е направена от dd на 6. Мнението е било променяно 6 пъти.
DrunkenDonkey
Мнения: 161
Регистрация: 06 юни 2009, 22:32

Мнение от DrunkenDonkey »

dd, това ще бъде жестоко (а аз събирам смелост, да си сменя шрифта на риидъра, та да мога да ги различавам по-добре също).
За хостинга... ако архива е 7z (или 7z саморазархивиращ се) може да се докара до 21мб, това си е 1/3 на трафика надолу...
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

DrunkenDonkey написа:dd, това ще бъде жестоко (а аз събирам смелост, да си сменя шрифта на риидъра, та да мога да ги различавам по-добре също).
За хостинга... ако архива е 7z (или 7z саморазархивиращ се) може да се докара до 21мб, това си е 1/3 на трафика надолу...
Аз също ползвам единствено 7z, но нямаш представа колко хора (90%+) идея си нямат какво е това и как да го отворят. Добрият стар zip е най-безопасния вариант.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:31.
Аватар
SecondShoe
Мнения: 421
Регистрация: 16 август 2006, 04:55

Мнение от SecondShoe »

Човека писа за саморазархивиращ се файл. Това е по-безопасно и от "добрият стар zip".
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

SecondShoe написа:Човека писа за саморазархивиращ се файл. Това е по-безопасно и от "добрият стар zip".
Също не е най-удачно, по простата причина че exe разопаковането много прилича на първоначална инсталация и някои хора ще се заблудят, че програмата започва да се инсталира, като пише разни неща по регистрите и т.н., респективно после ще е нужно да я деинсталират по някакъв специален начин. Хубаво е да се вижда, че програмата е направена абсолютно portable, тоест копираш на флашката и ползваш. Омръзва ти — триеш папката и готово.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:30.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.44 — 1.43 е строшена. Извинения за неудобството. Бях забравил, че освен "в" и "с" има и "ф" и "з" и затова изрази като "във Франция" се маркират като грешни. Това нямаше да се случи, ако бях тествал поне един файл, преди да качвам нова версия :oops:
Последната промяна е направена от dd на 2. Мнението е било променяно 2 пъти.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.45

1. Xesiona вчера питаше в чата как да открие липсваща точка между две изречения. Отделих няколко часа и се справих със задачката. Активира се чрез опцията "Търси изречения без точка или грешна главна буква". По подразбиране опцията е изключена, тъй като тепърва ще оптимизирам алгоритмите, но като цяло работи и наистина при тестове откри средно по десетина липсващи точки във вече проверени текстове.

Проблемът не е елементарен, въпреки че чекърът разполага с огромна типова база от собствени имена. Има случаи, които програмата не може да реши, тъй като доста чужди собствени имена съвпадат с основни български думи (например името "Сам"). Също трябва да се изготви възможно най-пълен списък със собствени имена, състоящи се от повече от една дума, иначе при изрази като "Черно море" няма начин да знаем дали пред "Черно" e изпусната точка, или не, тъй като "Черно" е написано с главна буква, но не е собствено име. Вече добавих стотина подобни географски и други имена във файла "b_bulgarian_capit.txt", който се ползва за проверка, и в бъдеще ще го допълвам. Също проблемни са омонимите като "Русия". Текстът "пристигнах в Русия" не е грешка, но "видя Русия мъж" е грешка.

Средно на текст се генерира списък с около 50 потенциално пропуснати точки (или грешни главни букви в средата на изречението), като от тях повечето са фалшиви грешки. Проверката на подобен списък отнема не повече от 2-3 минути и наистина си струва.

2. Добавих нови правила при търсенето на липсващи запетаи. И тук доста работа предстои.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:30.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.46 — различни подобрения плюс актуализиране на базите. Не забравяйте да включите опцията "Търси изречения без точка или грешна главна буква", която все още е изключена по подразбиране. В този версия допълнително прецизирах алгоритъма за търсене на изречения без точка и като резултат се откриват значително по-малко фалшиви грешки.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:30.
Mandor
Мнения: 752
Регистрация: 19 август 2006, 10:56
Връзка:

Мнение от Mandor »

Все още има някакъв проблем с откриване границите на думи; ето примери:
Липсващи запетайки:
- които й носеха : [й но]
- се четеше : [се че]
- джоба си нож : [и но]
- всяка вечер тази седмица : [вечер та]

Повторение на дума:
- ще ида да донеса [да да]

Разкъсани думи:
- създаде собствено [е с]
- върху му и го сграбчи [и го] - тук го определя правилно, но го извежда два пъти в прозореца.
С NomaD събрахме няколко съмнителни думи; реши сам кои от тях ще включиш. Не съм проверявал дали вече не са в речника:
носле / после
топ / тон
топа / тона
среша / среща
щети / ще ти
чели / че ли
дави / да ви
сиря / спря
подучи / получи
дареше / цареше
задочна / започна
капя / каня
капех / канех
делим / целим
можещ / можеш
вее / все
пея / нея
вимето / в името
лиги / ли ги
Има и други неща, но искам да ги проверя отново когато поправиш проблема с частичните думи.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Знам за проблема. Така съм го направил, очевидно неудачно. Програмата при контекстни търсения на повече от една дума не търси само цели думи и затова погрешно позиционира върху "ида да донеса", което съдържа "да да". Просто продължаваш да натискаш още няколко пъти върху "да да" в левия панел и текстът ще се скролира до истинското повторение "да да", което е някъде по-долу в текста. До седмица ще намеря време и ще променя алгоритъма да търси само цели думи и в случая да отива директно на истинското "да да". Това неудобство се появява предимно при кратки думи, тъй като е малко вероятно, но не и невъзможно, многосрични думи да се случат в подобна конфигурация. Например кликване върху повторението "време време" би позиционирало първо върху изразите "време времеви" или "време временен" ако се срещат в текста някъде преди истинското повторение "време време", което е по-назад в текста.

Същото е при липсващите запетаи. В някои случаи първото натискане в левия панел те отвежда върху съвършено различно място в текста, от това, в което действително липсва запетаята. Просто натискаш още няколко пъти докато стигнеш до истинското място. Обикновено то личи веднага. Например при "й но" първото натискане позиционира ненужно върху "които й носеха" и чак някое от следващите натискания ще те доведе до истинската пропусната запетая пред "но", например "майка й но той...".

Подобен дефект се наблюдава и при „многоточие” от две точки. При проверка на текст с голям брой многоточия от три точки (също неправилни) се налага десетки пъти щракане през многоточията от три точки, за да бъдат намерени псевдомноготочията от две точки на едно-две места.

Става дума единствено за проблем с позиционирането, а не за погрешно откриване на несъществуващ проблем. Щом "нещото" е в списък в левия панел, това означава, че то реално съществува и в текста в десния, просто недомисления интерфейс не позволява в описаните случаи да се позиционираме върху точното място още с първото кликване.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:30.
Mandor
Мнения: 752
Регистрация: 19 август 2006, 10:56
Връзка:

Мнение от Mandor »

Аха-а! Така е по-ясно. Благодаря.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.48

Опция за откриване на съседни съществителни. Изключена е по подразбиране. Генерира се доста дълъг списък, в който 95% не са грешки, но все пак открива по 1-2 грешки на файл. Обръщайте внимание предимно на оцветените в червено редове в списъка. Сините са количествени изрази ("чаша вода", "връзка ключове", "тълпа посрещачи") и със сигурност не са грешки, но съм ги оставил в списъка за да ми е по-лесно да допълвам подобни случаи в бъдеще. Сивите почти сигурно не са грешки (има предлог в 2 думи контекст преди първото от двете съседни съществителни), бледорозовите също почти сигурно не са грешки (съдържат съществителни, които често се срещат в съседство с друго съществително).

При тестове върху някои от последните файлове, чакащи добавяне, открих "леген ден" вместо "летен ден", "нита секунда" вместо "нито секунда" и още десетина подобни. Който има време може да активира и ползва опцията.
Последната промяна е направена от dd на 2. Мнението е било променяно 2 пъти.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.49

Опция за откриване на несъгласувани съществително и прилагателно. Включена е по подразбиране.
Откриват се грешни двойки като "крив линия", "частни случай" (с и кратко) и прочие.
Откриват се и известен брой фалшиви грешки, тъй като има огромен брой изключения, които трябва да се предвидят, а засега не всичко е съвършено, въпреки че си поиграх доста да настроя алгоритъма. Също не се откриват доста потенциално несъгласувани двойки, тъй като съм изключил случаите, в които предполагаемото прилагателно е от среден род, защото често то се оказва наречие, вместо прилагателно, напр. "пее тъжно песента". Изключил съм също и голям брой случаи, които въпреки че в определен контекст може да представляват несъгласувани съществително и прилагателно, обикновено са нещо съвсем различно, напр. "попита командирът" (попита може също да е прилагателно или причастие — локвата бе попита с парцал). Тествах опцията с 20-ина текста от чакащите добавяне. Средната откриваемост на роман е около 2 истински несъгласувания и между 5 и 10 фалшиви грешки.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:29.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.50

1. Нови контекстни проверки: предлог пред глагол, "да" пред неглагол, съседни предлози. Откриват се изненадващо много скрити грешки, напр. "под крепя", "из меря", "да вида", така че ъпдейтът е препоръчителен :wink:.

2. Актуализирани бази (нови словоформи и нови предефинирани грешки).

3. Досега програмата крашваше след обработване на половин милион думи (512KB), което е около 5MB UTF-8 файл или 2.5MB ANSI текст. Сега може да се отварят файлове до един милион думи (1MB), тоест UTF-8 файлове до около 10MB. В читанката има десетина файла по-големи от 5MB и вече и те могат да се отворят без проблем. Забележете, че при отваряна на огромен 10MB файл минават около 10-20 секунди без нищо да се случва и едва след това проверката тръгва. Това е така, защото се прави първоначално приблизително преброяване на думите в текста, за да може да се инициализира процентния брояч, появяващ се долу вляво, и едва след това стартира истинската проверка. При нормални файлове (400K-500K) това време е около секунда и не се забелязва.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:28.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.51

1. Оправих 90% грешката с неточното понякога позициониране при кликване върху кратки грешки (двойки думи) в левия панел. Има няколко частни случая, които останаха да се изчистят.

2. Още фини настройки на последните алгоритми.

Искам да подсетя тези, които ползват чекъра, че освен за просто коригиране на сгрешени словоформи, програмата служи и за откриване на доста скрити грешки. Тествайки програмата със случайни текстове откривам например, че didikot e качил "Огнен кръст", като е оправил доста неща, но е пропуснал над 20 OCR грешки, които програмата е открила (ако се съди по префикса FIXED_). При "пропуснати запетаи" много често се открива липсваща запетая пред "но", което всъщност се оказва сгрешено "по". Също пред "a", което се оказва "на" или нещо друго. Виждате десетина такива грешки на скрийншота. Специално за "но" съм добавил "по" като второ предложение за корекция (може да го кликвате директно). Самите запетаи са труден казус и не е нужно да ги оправяте, ако не сте 100% сигурни, но в случая говорим за очевидни OCR грешки. Просто трябва да щракнете върху всяка една грешка в списъка, за да я видите в контекст в десния панел и да прецените. Отнема около минута за целия списък. Също "предлог пред глагол" и "да пред неглагол" почти винаги са грешки, в случая на скрийншота цели 7.


Изображение Изображение
Последната промяна е направена от dd на 2. Мнението е било променяно 2 пъти.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.54

1. Ненужният и объркващ списък на непознатите думи по реда на срещането им е премахнат, както и чекбоксът "Повтарящи се". Извежда се единствено обобщеният списък, чрез който реално се правят корекциите.

2. Нови пунктуационни проверки: опашно тире и грешно тире. Второто представлява слепено тире + интервал или интервал + слепено тире, напр. "преси- чам", "по- добре", "искам -да кажа".

3. Някои типове потенциални пунктуационни грешки (по-, щ->ш и пр.) вече не се оцветяват в десния панел (досега бяха в синьо или виолетово), тъй като обикновено се оказват фалшиви грешки. Извеждат се единствено в левия панел.

4. Различни дребни настройки.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:28.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Верися 1.55

1. Промених начина на показване на съмнителните думи, написани с главни букви в средата на изречение, тоест потенциални изречения с пропуснат препинателен знак в края. Тези думи, които се срещат повече от 3 пъти, обикновено не са грешки и затова се извеждат в отделен обобщен списък. Това обикновено са прякори, съвпадащи с разпространени думи (напр. "Дългия", "Поразяващата ръка" и пр.) или чужди имена, съвпадащи с български думи (напр. Сам, Боб). Останалите, които са с по-малко от 3 срещания, се извеждат в друг списък под него, за да може проверяващият да се съсредоточи там, където наистина може да има грешки. Опцията вече е включена по подразбиране (FIND_NO_STOP в settings.txt).

В предишния вариант списъкът често беше хиляда реда и не ставаше за работа (на скрийншота само името "Тия" се среща 519 пъти!). В сегашния вариант долният списък, в който реално може да са грешките, е 10-50 реда и може да се провери за секунди.

Изображение

2. "Опашният интервал" беше строшен. Оправих го.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:28.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.56

Оправих една грешка.
Последната промяна е направена от dd на 2. Мнението е било променяно 2 пъти.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.57

1. Открива още пунткуационни грешки:

<интервал><табулация>
<табулация><интервал>

<точка><двоеточие>
<двоеточие><точка>

две m-тирета
две n-тирета
две малки тирета (невинаги е грешка)

слепено m-тире (напр. abc—def)

<запетая><m>
<точка><m>
<въпросителен><m>
<удивителен><m>

<m><запетая>
<m><точка>
<m> <въпросителен>
<m><удивителен>

<m><n>
<n><m>
<m><малко тире>
<малко тире><m>
<n><малко тире>
<малко тире><n>

2. "Със" плюс число, което се изговаря със "с", вече не се открива като грешка (напр "със 17", "със 150" и пр.). Същата проверка се прави и за "с".
Последната промяна е направена от dd на 2. Мнението е било променяно 2 пъти.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

Версия 1.58

1. Още пунткуационни проверки:

",:"
":,"
":-"
":\x96"
":\x97"
",-"
".-"
",\x96"
".\x96"
<дума><m><интервал>
<интервал><m><дума>

2. Оправих няколко дребни неточности. Слепеното дълго тире вече се листва в левия панел в контекст от 2 думи (предна и следваща), за да може грешката да се позиционира в текста чрез едно кликване в левия панел. Досега кликването откриваше m-тиретата на общо основание и не позиционираше директно върху проблема.
Последната и единствена промяна е направена от dd на 05 декември 2009, 15:27.
dd
Мнения: 168
Регистрация: 12 април 2009, 05:05

Мнение от dd »

---------
Последната промяна е направена от dd на 5. Мнението е било променяно 5 пъти.
Mandor
Мнения: 752
Регистрация: 19 август 2006, 10:56
Връзка:

Мнение от Mandor »

dd написа:От проверката се изключва текста между маркерите A C D E F L P S T I, …
Това не е много коректно. Текстът между маркерите A C E и L е „нормален“ текст и не е добре да се изключва проверката за него.
Epsilon
Мнения: 16
Регистрация: 02 септември 2009, 14:19

Мнение от Epsilon »

Аз както винаги си играя с проверките.. ;)
Но ми е странно едно нещо.. Когато пусна в Чекера rtf файл, всички тирета стават малки. И след запаметяването - пак в rtf - си остават малки.
Този проблем липсва, ако пусна txt файл за проверка - после си го запаметявам в rtf и тиретата си остават големи.
Пък може и да не запаметявам правилно, знам ли.. Аз запаметявам като давам десен бутон на мишката върху текста в десния прозорец и му давам да запамети като rtf. Тогава файла се запаметява в папката на чекера под името FILE.rtf
Та в крайна сметка - в мен ли е грешката (което е по-вероятно) или не?
Не, че ми пречи после да си оправя наново тиретата, не е кой знае какво усилие, но все пак..
Отговор

Обратно към

Кой е на линия

Потребители, разглеждащи форума: 0 гости