LINUX.ORG.RU
ФорумTalks

Хвалюсь: система нечеткого поиска.


0

0

Мы, коллектив программистов-алкоголиков, наваяли на днях жалкую в своей беспомощности реализацию нечеткого поиска... Пока она заточена на слова(русский и буржуйский языки).... Работает.... не так плохо, как можно было бы расчитывать....

Суть в том, что вы вводите слово с ошибкой, а система пытается разобраться, что же вы пытались написать....

Например при вводе слова "очепятка" система выдаст "опечатка", "хронофазитрон" даст в результате "синхрофазатрон" и т.д....

Посмотрите, поразвлекайтесь..... вам понравится

http://nanohertz.net

★★☆

Мелкий глюк - два абзаца не берет. Для примера взял

>Например при вводе слова "очепятка" система выдаст "опечатка", "хронофазитрон" даст в результате "синхрофазатрон" и т.д....

>Посмотрите, поразвлекайтесь..... вам понравится

Результата совсем нет.

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от abraziv_whiskey

тут скорей всего в кавычках трабла... принял к сведению....

Stahl ★★☆
() автор топика
Ответ на: комментарий от Stahl

ага! онотоле с бурятского на русский - значит золото... тоже вариант!

Serg_HIS
()
Ответ на: комментарий от anonymous

ну вы и слова вводите.....

Ну ловите тогда: Requested word: антидеиэстеблишментаризм

OK. (демилитаризированный ) 0

вот так...

Stahl ★★☆
() автор топика

Цифры распознаёт ну Очень нечетко:

01 -> (10 011 001 010 101) - почему 3 знака ?

0f -> (if lf af rf of cf hf mf 000)

123456 -> 31415e1 - "Оно" и математику знает? :)

quickquest ★★★★★
()

Requested word: кетцалькоатль теночтитлан попокатипетль OK. (ямкоделатель ) (почтительно ) (ненакопитель ) 0

anonymous
()

Requested word: рейлган
OK. (гангрена наглеть ) 0
Requested word: гуаулд
OK. (наугад ) 0

anonymous
()

Requested word: гиниально - OK. (социально минимально ) 0

Requested word: аффтар - OK. (тартрат ) 0

Requested word: маладец - OK. (младенец ) 0

Requested word: мудаг - OK. (бумаг груда мудро думая думал ) 0

botrops-schlegelii ★★
()
Ответ на: комментарий от anonymous

Requested word: (жопа)+(хер)
OK. (грехопадение ) 0

Requested word: ((жопа)+(хер))/0
OK. (пожаробезопасный ) 0

anonymous
()

прикольно:

биореатор - фоторедактор

емнип - спине

афаик - зайка

башорг - торгаш, брошка

ололо - зло...

превед - деверь

джента - ...неженка

anonymous
()

Если исходники открывать не будешь, то можно выносить и закапывать.

anonymous
()
Ответ на: комментарий от Zenom

> Requested word: линуксоргру
> OK. (кунилингус длиннорукий ) 0

Валялсо :-))


PS
Спасибо авторам, на капче стало удобнее гадать: danter = (banter canter panter )

anonymous
()

Requested word: абырвалг

OK. (бакалавры ) 0

Символично, ящитаю

Zenom ★★★
()
Ответ на: комментарий от Zenom

>Requested word: линуксоргру

>OK. (кунилингус длиннорукий ) 0

R=1 ? O_O O_O O_O

FiXer ★★☆☆☆
()

Варкалось. Хлифкие шорьки
Пырялись по наве,
И хрюкотали зелюки,
Как мюмзики в мове.

(косолапость крысоловка восьмерка ) (великие близкие ) (горький крошки штырьки )
(пылиться ) (по ) (навес навек )
(и ) (тотализатор ) (зеленщик слезник )
(как ) (мюзикл ) (в ) (совет левой ковер ловец гневом пивом зевок домов весом левому львом живом невод слове боевое вовек оловом чрево ) 0

О бойся Бармаглота,сын!
Он так свирлеп и дик,
А в глуше рымит исполин-
Злопастный Брандашмыг!

(о ) (бойня ) (малогабаритный вспомагательные )
(он ) (так ) (свирепо свирель ) (и ) (дикки дико )
(а ) (в ) (глушь ) (митры ) (исполнил )
(злопамятный ) (карандашный )

Но взял он меч, и взял он щит,
Высоких полон дум.
В глущобу путь его лежит
Под дерево Тумтум.

(но ) (взял ) (он ) (меча ) (и ) (взял ) (он ) (щиты )
(высокий высокие высоким ) (полон ) (дума )
(в ) (глубоко ) (путь ) (его ) (лежит )
(под ) (дерево ) (тумба туман тумак )

Он стал под дерево и ждет.
И вдруг граахнул гром-
Летит ужасный Бармаглот
И пылкает огнем!

(он ) (стал ) (под ) (дерево ) (и ) (ждите )
(и ) (вдруг ) (гранулы ) (громом )
(летит ) (ужасный ) (агломерат )
(и ) (посылка ) (огнемет )

Раз-два, раз-два! Горит трава,
Взы-взы -стрижает меч,
Ува! Ува! И голова
Баробадает с плеч!

(раздевал раздавит раздувал ) (раздевал раздавит раздувал ) (горите ) (травах )
(вызовы ) (снижается ) (меча )
(удав ) (удав ) (и ) (голова )
(совпадает доработки ) (с ) (плечо плечи плеча )

О светозарный мальчик мой!
Ты победил в бою!
О храброславленный герой,
Хвалу тебе пою!

(о ) (ветеринарный ) (мальчик ) (ямой )
(ты ) (победите ) (в ) (бобов тобою )
(о ) (непроставленный ) (герой героин )
(хвала валух ) (тебе ) (полю )

//numkend (bookend mundane minuend weekend )

anonymous
()

Requested word: кросавчкг

OK. (красавицы микросорт ) 0

O_o к чему бы это?

anonymous
()

Requested word: Сяпала Калуша с калушатами по напушке. И увазила бутявку, и волит:

OK. (палата палаты палачи лапласа палапа ) (кулака калуга ) (с ) (каталогами ) (по ) (авиапушка напускная ) (и ) (анализа ) (тявкнуть ) (и ) (стилолит ) 0

Requested word: - Калушата! Калушаточки! Бутявка!
OK. () (календула канталупа заглушать оглушать слушатель слушаться заслушать ) (католических каталогизатор католический противокулак ) (тявканье ) 0

Requested word: Калушата присяпали и бутявку стрямкали. И подудонились.
OK. (каталажка ) (присцилла приступал ) (и ) (тявкать ) (синдикалист ) (и ) (пододвинуться судоподъемник ) 0

Requested word: А Калуша волит:
OK. (а ) (кулака калуга ) (стилолит ) 0

Requested word: - Оее! Оее! Бутявка-то некузявая!
OK. () (олео еще! ) (олео еще! ) (бутоньерка бункеровка буксировка бойскаутов утрамбовка ) (навязчивая навязывание несвязанная ) 0

Requested word: Калушатa бутявку вычучили.
OK. (оглушать ) (тявкать ) (вычислить ) 0

Requested word: Бутявка вздребезнулась, сопритюкнулась и усяпала с напушки.
OK. (бутылка тявкать ) (дремать|вздремнуть ) (соприкоснуться ) (и ) (капсула ) (с ) (авиапушка хлопушки ) 0

Requested word: А Калуша волит калушатам:
OK. (а ) (кулака калуга ) (колит полит ) (каталогами ) 0

Requested word: - Не трямкайте бутявок, бутявки любые и зюмо-зюмо некузявые. От бутявок дудонятся.
OK. () (не ) (означайте толкайтесь пестрятка катайтесь таксометр ) (бутылкой пустяков ) (бутылки ) (любые ) (и ) (угрюмо ) (несвязующее неотвязный ) (от ) (убытков буковый ) (дотянуться ) 0

Requested word: А бутявка волит за напушкой:
OK. (а ) (бутылка тявкать ) (колит полит ) (за ) (напускной ) 0

Requested word: - Калушата подудонились! Калушата подудонились! Зюмо некузявые! Пуськи бятые!
OK. () (каталажка ) (пододвинуться судоподъемник ) (каталажка ) (пододвинуться судоподъемник ) (юмор изюм юзом ) (несвязующее неотвязный ) (польки супник ) (взятые святые ) 0

anonymous
()
Ответ на: комментарий от ubuNToo

Requested word: кедераст

OK. (педераст ) 0

Requested word: гномосек

OK. (моносеть ) 0

Requested word: корован

OK. (кроваво ) 0

Requested word: корованы

OK. (кованный ворованный наворовать ) 0

ubuNToo
()

Requested word: глокая куздра кудланула бокра и куздрячит бокрёнка

OK. (яблока глотка долгая ) (мездра ) (календула клоунада кулачная ) (кобра ) (и ) (критически корчиться ) (корзинка дробинка кореянка ) 0

Xellos ★★★★★
()

Эх ты, лох и позорище! Фигня это, а не система!

Алгоритм работы поиска простой до невозможности, из-за этого такие хреновые результаты.

Вкратце:

Представляем искомое слово в виде списка, каждый элемент которого - буква искомого слова. Выкидываем поочерёдно один элемент из списка и производим рекурсивный поиск по словарю оставшимися буквами. Таким образом, найдём все слова, которые содержат тот же набор букв, что и искомое слово минус 1 буква. Таким образом, если мы опечатаемся на 1 букву или поменяем буквы местами, программка всё равно найдёт это слово. Остаётся только выбрать из полученного списка наиболее подходящее слово или несколько слов, в зависимости от количества совпадающих букв и их порядка.

Программка пишется за 10 минут.

anonymous
()
Ответ на: комментарий от Stahl

>> А где исходники?

> Так я системой хвалюсь, а не исходниками.... так ведь?

Чем там хвалиться, убогий? Это не система нечеткого поиска, а говно.

И не пытайся показать исходники, засмеют.

anonymous
()
Ответ на: комментарий от anonymous

Вот за 3 минуты на баше:

#!/bin/sh
WORDLIST="/tmp/wordlist"
DICT="/tmp/dictionary"
TMPDICT="/tmp/dictionary.tmp"
RESULT="/tmp/result"
LEN=$(echo -n $1 | wc -c)

for CHARNUM in $(seq 1 ${LEN})
do
        CHAR[${CHARNUM}]=$(echo $1 | cut -c ${CHARNUM})
done

for i in $(seq 1 ${LEN})
do
        cp $WORDLIST $DICT
        for j in $(seq 1 $LEN | grep -v ${i})
        do
                grep ${CHAR[${j}]} $DICT > $TMPDICT
                mv $TMPDICT $DICT
        done

        for TMPWORD in $(cat ${DICT})
        do
                if [ $(echo -n $TMPWORD | wc -c) -ge $LEN ]
                then
                        echo $TMPWORD >> $RESULT
                fi
        done
done
sort $RESULT | uniq
rm $DICT $RESULT
exit 0


В файл /tmp/wordlist помещаешь список слов,
запускаешь скрипт с параметром - искомым словом.

Единственное, что нет проверки приоритета слов,
ну и останется переписать на C и оптимизировать.
А в остльном, работает точно также, как твоя система.

anonymous
()
Ответ на: комментарий от anonymous

Единственное, что нет проверки приоритета слов,

ну и останется переписать на C и оптимизировать.

А в остльном, работает точно также, как твоя система.

наверное это не существенная деталь :)

Ну вобщем бы хотел посмотреть на результаты твоего алгоритма :)

Надеюсь твоим методом оно будет не 3 часа искать слово синхрофазатрон из словаря в слов так 100000 :)

А вообще мне кажется ты и в правду думаешь что люди твои наборы буков лучше распознают чем эта система.

Так?

тогда вначале выкладывай наборы буков свои и пусть люди выложат свои варианты ответов. ок? ;)

А потом поглядим что система скажет.

Serg_HIS
()
Ответ на: удаленный комментарий

Да ладно...

Чего ты так жёстко то...

Ну завидуют люди тебе.

Пусть завидуют :)

Просто ты не сказал, что она не работает в телепатическом режиме (пока что), и не может угадать слова в которых введено по 10 ошибок при том, что того слова о котором мечтает автор слова(бестолкового набора буков) в словаре просто нет (в словаре системы)

Serg_HIS
()
Ответ на: комментарий от anonymous

>слыш, че за борода,а где система чёткого поиска? для пацанов что б была

+1. Система должна работать чётко!

anonymous
()

Как это "asdf" есть, а "фыва" нет?

и ещё:

ццц -> гц гцц -> OK. (гц кгц мгц ) 0 кц -> OK. (ко ка кв ку км кг кб гц ) 0

anonymous
()

Как это "asdf" есть, а "фыва" нет?

и ещё:

ццц -> гц

гцц -> OK. (гц кгц мгц ) 0

кц -> OK. (ко ка кв ку км кг кб гц ) 0

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.