Създаване на 2 програми
Автор |
|
insecteaterЧет, 04.06.09, 23:17 |
И на теб ли ти се завъртя SQL Преди малко със Сашко разисквахме факта, че думите в българския са адски много а на всичкото отгоре може да са членувани, нечленувани, в различен род и число и става един доста голям обем. Едно индексиране наистина би дало допълнително рамо в процеса на отсяване и претърсване. | | phrozencrewПет, 05.06.09, 10:33 |
За да се набави стабилен набор от думи може да се използват речниците от БГ Офис помощник . Например bg-en.dat е текстов файл, в който, доколкото забелязах, всички базови думи са написани с главна буква. Може да се напише регулярен израз, който да индексира само базовите думи и после "ръчно" да се добавят ударенията с идеята на Ганчо. | | кака.лараПет, 05.06.09, 11:29 |
В Python номеръс с броенето на думите става точно с 2 оператора. Или се водеха "вградени функции"? Единият да отвори файла, вторият да преброи думите. Хубаво де, и 3-ти оператор да вземе името на файла или да го извади от командния ред. С римите е малко по шашаво. Ако ще се прави сериозно трябва да се вземе предвид и римуването по съзвучие, когато окончанията не съвпадат, но са съзвучни. Също и анторимията, близки окончания, но несъвместими по някаква причина. | | insecteaterПет, 05.06.09, 11:50 |
Наистина ще е хубаво. Ама как може да стане .... предполагам че не са чак толкова много тези случаи - стотина - двеста дали ще има? А иначе не е проблем на базата на окончанието алгоритъма да генерира едно или две или там колкото се получат близки окончания които също се римуват и да пусне повторни заявки за претърсване в речника. Абе някой с българска филология намира ли се наблизо? phrozencrew, имаме ли право да ползваме речника който посочи? Сега с тия избори тука е лудница... като се върна ще го погледна. Редакция: това с близките окончания които също се римуват, мисля че ще е добре да се даде в крайния продукт като предложение за потребителя - например да му изскочат думите със същите окончания, но отстрани да има списък с намерените сходни и също римуващи се окончания. Потребителя при желание да може да повтори търсенето и с включени тези окончания (или с някои от тях). | | phrozencrewПет, 05.06.09, 12:27 |
insecteater, лиценза е GNU GENERAL PUBLIC LICENSE. Можем да правим каквото си искаме с кода, като сме задължени да предлагаме на нашите ползватели същите права. Свобода! Аз разцъках малко тоя речник и изкарах думите. Дано не съм объркал нещо! Направих го така по Win: get-words.php<?php
$f = file('bg-en.dat');
foreach ($f as $l){
if(preg_match('@^([А-Я]+)@', $l, $matches)){
echo strtolower($matches[1])."n";
}
}
?> |
После в промпта: php get-words.php > unsorted.txt |
И за да сортирам и изкарам само уникалните думи, без повторенията, защото са бая, използвах ъпдейтнати инструменти от UnxUtils в следния пайпинг : cat unsorted.txt | sort -u | uniq > Sorted_BG_words_dict.txt |
Ето и резултата [РЕЧНИК С ГОЛЯМА ЧАСТ ОТ ДУМИТЕ В БЪЛГАРСКИЯ ЕЗИК - 8157 уникални думи]: Sorted_BG_words_dict.txt | | insecteaterПет, 05.06.09, 12:53 |
Ми да взема да им нацъкам ударенията като се прибера? Ти ме превари с извличането на думите - забавляваш се сам а? Някой друг ще почва ли ударенията? Че да знам откъде да продължавам. Ама аз ще си спретна нещо че да ги прелиствам и да цъкам с мишката за да става по-бързо. | | phrozencrewПет, 05.06.09, 13:13 |
, сори! Верно се забавлявам сам, а трябваше да споделя сладкото с приятелчетата си! За думите - бих могъл да разцъквам по стотина думи на ден. Как мислиш, дали няма да стане най-лесно като след всяка дума или преди нея не се поставя директно цифра? В тези думи няма цифри, така, че няма да има нужда цифрата да се отделя от думата. Трябва да се разберем къде да е цифрата. Всъщност не е задължително, защото с (.*)(\d+) и после \2\1 може да се премести много бързо. Можем да помислим и за подходящ интерфейс. Така на бързо ми се струва, че много лесно може да стане с HTA (HTML Applications + JavaScript), като подобен интерфейс ще може да се напише и да се разбере и от прохождащите програмисти във форума. Но пък ще бачка само във Win... хммм. Или пък Wx за Python, Ruby, Perl, или TK с PHP (малко грозно, но за сметка на това бързо). Разглеждам embed вариантите, защото са лесни, преносими и всеки може да прочете кода. | | insecteaterПет, 05.06.09, 13:46 |
Ами аз почвам да правя инструмент на JavaScript, щото него помня най много що се отнася до събития с мишката като съм готов ще го сложа тука, пък по принцип не е кой знае каква философия да се сложи едно число пред или зад думата. Всеки може да го прави както му е най удобно. Само всеки казва от коя до коя дума ги е направил и после се сглобяват заедно. Няма значение къде ще се сложи числото, при нужда наистина може да се смени много лесно. ЗАСЕГА предлагам да ги слагаме отзад, за да можем по-лесно визуално да следим кой в какъв обхват от думи се е побрал и да ги сглобяваме съответно. Ако с подходящия инструмент се цъка ударение за 2-3 секунди на дума, на ден могат да се правят доста повече от 100-ина думи (които ще искат 2-3 минути). Аз почвам да правя довечера, ако искаш и ти почни.... при всички положения с такова инструментче ще е по-бързо, даже ще е удоволствие, отколко ръчно да се брои и да се пише число. И една забележка - на места където една дума може да има друго ударени (например вълна), ще се наложи да повтаряме думата на следващия ред вече с другото число. Това си е най трудоемката и скучната част от работата - речника ... по нататък може да се спретне и инструмент за сравняване на два речника и извличане на различните думи (за да можем да крадем от тук - от там), но му е рано още и е тайна | | insecteaterПет, 05.06.09, 20:23 |
Ето кое ще ползвам: users/udarenie.2913.html (сгрешено - виж последната версия по-долу) Почвам да нацъквам думите започващи с А до Д включително Редакция - това дето съм сложил, работи под firefox и май и под Opera. Под IE мисля че не работи, ама не ми и пука дали работи там или не. Оооооп, забравил съм да сложа буквата Ъ, ето новата версия с включена буква Ъ udarenie.html Още една редакция - речника ми се струва малък. Вече съм готов с буквата А. Май инструмента за съвместяване на речници ще се прави по-скоро отколкото си мислех. Поредната редакция: ето буквите от А до Д включително от речника. Утре пак :) ко някой ще зема букви, да пише тука. ReadyA_D.txt | | phrozencrewПет, 05.06.09, 22:09 |
insecteater, може ли малко пояснение, защото леко се обърках. На коя буква точно се пада ударението на тези думи и как да го разбирам: абстрахирам2 авангарден2 авансирам2Според мен правилните ударения са тук:
Трябва да се разберем за това, както и от къде се броят буквите - от зад напред или от пред на зад. Всъщност, като се замисля, в цяла България ударенията се слагат на различни места и е много възможно да имам доста различни гледни точки за ударенията. Но пък се отвори една тема достойна за коментиране :). | | Коментар |