구글이 말을 한다. google talks
글쓴이: aero / 작성시간: 금, 2005/04/08 - 10:19오후
인터넷에서
http://douweosinga.com/projects/googletalk
를 보고 착안하여 만들어 봤습니다.
코드는 머리에 있는거 생각 없이 쏟아부어서 dog table입니다 :)
좀 정리해서 올려볼까도 생각했지만 어느정도 동작하는데 의의를
두고 이런 아이디어를 활용한 재미있는 놀이가 많이 나오길
바랍니다.
제가 다시 봐도 code가 dirty 하군요 :)
작동 방식은 구글에서 검색될것 같은 문장을 입력하면
결과 중에 다음 단어를 선택하고 그 결과를 이전의 바로 앞단어와
같이 검색해서 검색결과중 랜덤으로 다음 단어를 선택하고
없으면 하나의 단어만으로 검색해서 위 절차를 계속하고
그래도 없으면 끝나는 방식입니다.
랜덤으로 단어를 선택하니 어떤 문장이 나올지 모르니
이것 저것 넣어서 구경하고 있으면 정말 재밌네요.
#!/usr/bin/perl use LWP 5.65; use URI::URL; my $debug=0; my $query = $ARGV[0]; print $query."\n"; my $close_counter=0; while(1) { $query =~ m/\ (.*?)$/; print "last_word :".$1."\n" if $debug; $query = query_word($query); unless($query) { $query = $1; $close_counter++; if($close_counter>1) { exit; } } else { print $query."\n"; $query = $1." ".$query; $close_counter=0; } } sub query_word { my $q = $_[0]; $q = '" '.$q.' "'; my $unencoded_url = 'http://www.google.com/search?hl=ko&num=10&q='.$q; my $url = URI::URL->new($unencoded_url); print "unencoded: " . $unencoded_url ."\n" if $debug; print "encoded: " . $url->as_string . "\n" if $debug; my $browser = LWP::UserAgent->new(); my $response = $browser->get($url->as_string, 'User-Agent'=>'Mozilla' ); if($response->is_success) { my $res = $response->content; $res =~ s/<b>//gs; $res =~ s/<\/b>//gs; $res =~ s/\n//gs; print "Response:\n$res\n" if $debug; #$res =~ m/<\/a><br><font size=-1>(.*?)<br><font color=#008000>/i; my @next_words = (); while($res=~m/<\/a><br><font size=-1>(.*?)<br><font color=#008000>/g) { print $1."\n\n" if $debug; my $s = $1; my $next_word = get_next_words($s,$q); if ($next_word) {push(@next_words,$next_word);} pos($res)+1; } print "@next_words ".($#next_words+1)."\n" if $debug; my $select = rand($#next_words+1); print "selected :".$next_words[$select]."\n" if $debug; return $next_words[$select]; } else { print $response->error_as_HTML if $debug; } } sub get_next_words { my($text,$q) = @_; $q =~ s/"//g; print "query :".$q."\n" if $debug; $text =~ s/[a-zA-Z_&#|;:<>,?.~\*\^\$\[\]\-\+()\/=]//g; print "text :".$text."\n" if $debug; $text =~ m/($q)(\S*?)\ /; print "match 1 |".$1."| 2 |".$2."| 3 |".$3."| 4 |".$4."|\n" if $debug; return $2; }
실행
google_talks.pl "내가 보건데"
결과
내가 보건데 한국의 대학이 어떻게 수용할 경우에는 양도세를 내야 한다 세금을 내야 하지 않겠소이까 자칭 선배라는 사람의 입장도 생각하는 도량은 있어야지요 20050109 33
실행
google_talks.pl "오늘밤은 우리"
결과
오늘밤은 둘만 도망쳐 버릴수도 있어 죽는 날까지 떼어 놓지 말라 여행운은 목적하는 바를 성취하기 위해 부모가 죄인인 경우 재판할 수 있나요 관리자 패스 워드를 열어 확인할 수 있습니다 카드번호 및 비밀번호를 잃어 버렸습니다 버스에서 나처럼 자면 ! 글쓴이 제
Forums:
재밌네요[quote]returnet@returnet:~/code$ ./g
재밌네요
----
http://returnet.blogdns.com
[quote="returnet"]재밌네요[quote]returnet@re
최고네요
이런 모습흔치 않죠...
시도 쓰는군요 :)
[root@localhost ~]# ./test "낭자 "
낭자
좋아하는
마음은
물이
동으로
흐르면
남강으로
들어가
낙동강이
부산시역을
관통하고
개의
진화에
대해서는
이제까지
말해온
것보다
반군
지도자
안타우로
우말라
전
어
[code:1][azure@eodume]$ talk.p
:?
음... 이제 부터 생각해 봐야겠다.
파이썬 버전!
파이썬 버전입니다. ;)
(에구구... 힘들어요)
[quote="elanoia"][code:1][azure@eo
goolge 검색 url에 num=10 을 10,20,30,50,100 의 숫자중
적절히 바꿔서 더 많은 검색결과를 가져오도록 해서 해보세요
그리고 첫 검색어에 한 단어만 넣는것 보다 "로 묶어서 여러단어를
넣는것이 좋습니다.
내부적으로는 google에 쿼리보낼때 아규먼트로 준 문장의
양쪽에 공백을 넣고 "를 붙여서 정확히 매칭되는 문장을 검색하도록
합니다.
결과를 보면 그나마 앞뒤로 대충 뜻이 맞는 경우도 있어보이는
이유가 첫 쿼리 이후에는 계속 두 단어식 묶어서 그 뒷단어를
검색하기 때문에(그 결과가 없다면 최종단어로 하나로 시도)
문장구조상 문맥에 맞는 단어가 선택될 확율이 높기 때문이죠.
ㅎㅎ 재미있군요..:)
ㅎㅎ 재미있군요..:)
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
원숭이의 타이핑...
예전 허영만씨의 만화 블랙홀(내지는 화이트홀)에 나왔던 이야기가 생각이 나네요.
원숭이들에게 타자기를 주고 하루종일 아무런 키나 누르며 놀게했을때
세익스피어의 글이 나올 확률에 대한 이야기 였는데..
구글이 세익스피어의 문장을 만들어낼 확률이 좀 더 커 보이는군요 :)
몇일 전 좌변기에 염료를 넣고 물을 내릴때를 찍은 사진으로
전시회를 개최한 미국의 사진작가에 관한 뉴스를 봤었는데
구글에게 시를 쓰게 만들고 시집을 내서 돈을 벌어볼까요? ^^;
-----
이글을 읽는 모든 이에게 평화가 함께 하기를... ^^;
[iamha0@cass iamha0]$ ./google_talks.pl
[iamha0@cass iamha0]$ ./google_talks.pl "미안하지만"
미안하지만
내
머리에
똥
쌌어
책
[iamha0@cass iamha0]$
[code:1]Can't locate LWP.pm in @INC &#
이건 무슨에러인가요?
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
[quote="fehead"][code:1]Can't locate L
LWP 모듈을 설치해주셔야 합니다.
perl -MCPAN -e shell 'install 모듈이름'
명령으로 설치하시면 됩니다.
자세한건
http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules
[quote="fehead"][code:1]Can't locate L
LWP는 libwww-perl이라네요.
저도 같은 에러를 봤었거든요.ㅋㅋ
저도 이 쓰레드보고서야 emerge하면서 알게되었습니당^^;
주의 emerge lwp하심 안됩니당^O^//
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
[quote="qed"][quote="fehead"][code:1]C
apt-get install libwww-perl
한방에 해결했습니다. :lol:
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
[code:1]exman@eppe exman $ perl google_t
재밌네요 ^^
[code:1]hiseob@dgn-cs ~ $ ./google.pl 어쩌
[code:1]hiseob@dgn-cs ~ $ ./google.pl
[code:1]hiseob@dgn-cs ~ $ ./google.pl
이런이런!
./googletalk.pl 미안하지만
미안하지만
내
머리에
똥쌌어
등이
있다
충생균류로
곤충류에
붙는
곰팡이
진드기가
서식하지
-_-aaa
이거 무한루프 돌기도 하는군요[sequoia@lite sequoi
이거 무한루프 돌기도 하는군요
[sequoia@lite sequoia]$ ./googletalks.pl "문화관광부 관광자료"
문화관광부 관광자료
문화관광부
관광자료
문화관광부
관광자료
문화관광부
관광자료
문화관광부
-ㅅ-
를 기대했는데... ㅎ
옛날에 자바 공부하면서 비슷한 걸 만들어봤지요.구글 쓰는게 아니라 구
옛날에 자바 공부하면서 비슷한 걸 만들어봤지요.
구글 쓰는게 아니라 구글 역할까지 프로그램이 하는거죠.
일단 읽을 자료를 주면 해쉬테이블에 리스트 달았던가...
해서 각각의 단어의 뒤에 오는 단어의 종류와 빈도를 저장한 거죠.
그런 다음 문장의 처음에 시작하는 단어들을 따로 리스트에 저장하
고 거기서부터 선택해서 돌리는 거죠. 빈도수를 확률로 해서 랜덤으
로... 다음.. 다음.. 해서 문장의 마지막이 될 확률등도 들어가서 계
산되고요.. 물론 읽을 자료가 좀 길어야 되어요.. 영웅문을 읽게 하
고 말을 해보라고 할 때가 제일 재미있었던거 같네요. 1~2권 정도
면 재밌는데 너무 많이 읽게하면 너무 자주 삼천포로 빠져서 재미
가 없고 적당히 읽히면 한두군데에서 삼천포로 빠져서 더욱 재미가
있지요. 좀 더 발전시킨 것으로는 대화하는 것인데 입력한 문장에
서 잘 안나오는 단어(이런 단어를 중요 단어로 취급하겠죠.)로 검색
해서 주변 문장을 따내는... 가령...
사용자> 나는 구양신공을 봤다.
라고 하면 "구양신공을" 이라는 단어가 제일 적게 나왔으므로 적게
나온 것일수록 확률을 높게 줘서 랜덤하게 찍으면 사용자의 3단어
중에서 "구양신공을" 이라는 단어가 선택될 확률이 제일 높겠죠. 그
리고 그게 들어간 문장으로 뽑는겁니다.
컴퓨터> 구양신공을 익혔습니다.
뭐 대략 이런식으로 대답을 하지요. 간혹...
컴퓨터> 구양신공을 익힐 수가 있다니 어찌 그럴 수 있겠소이까?
이러기도 하죠...
블로그: http://turtleforward.blogspot.com
notpig@se:~$ perl talks.pl "리눅스와 유닉스"
notpig@se:~$ perl talks.pl "리눅스와 유닉스"
리눅스와 유닉스
운영체제에서
지원하는
서비스입니다
2
서비스명
무료법률상담
[code:1]$ ./taks.pl "당신을"당
움.. 처음에는 좋았는데 끝은.. 영..
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
[code:1]$ google_talks.pl "일본이 독도를&
[code:1]$ ./talk.pl "밥먹고 합시다"
혹시 울산리눅스유저그룹 활동하시는 분 계신가요 :P
[code:1]notpig@se:~$ perl talks.pl &
딴분들은 길게 나오네요...전 그렇게 길게 않나오는데..
그런데 지금 은근히 재미 붙었습니다..ㅋㅋㅋ
재미있군요.
ㅋㅋㅋㅋ
----
God take what you would.
Re: 원숭이의 타이핑...
http://en.wikipedia.org/wiki/Infinite_monkey_theorem
아발발다빠따반반나다발딸발발다빠따따맣발발다뿌
희멓터벅더떠벋떠벌더벌벌떠벌떠더법벍떠더벌벌떠
[quote="prolinko"][code:1]./talk.pl
놀랍군요!!!
- 죠커's blog / HanIRC:#CN
ㅋㅋㅋ
재밌네요 ㅋ
Every man dies. But not every man truly lives.
[quote]returnet@returnet:~/code$ ./googl
갈 수록 재밌군요 : )
----
http://returnet.blogdns.com
[code:1][kam@wing:~]$ ./gtal
흠.. 회사가 있었군요 :roll:
me.brain.flush()
[code:1]./google_talks.pl 외계인외계인문제에
여기서 갑자기 더 이상 아무 메시지도 나오지 않고 멈춰 있었습니다. 그렇다고 프롬프트로 떨어지지도 않았습니다. 그 전 수십번의 시도에서는 없던 일입니다.
정말로 진실은 저 너머에 있는 것일까요? :shock:
See also:http://neil.franklin.ch/Jokes
See also:
http://neil.franklin.ch/Jokes_and_Fun/Flame_RMS_vs_Emacs_Doctor.html
./google.pl 섹스섹스공짜웃겨 죽겠어요 ㅡㅜ
./google.pl 섹스
섹스
공짜
웃겨 죽겠어요 ㅡㅜ
./google.pl 자살자살사이트를계속업데이트하고있습
./google.pl 자살
자살
사이트를
계속
업데이트하고
있습니다
닫기
도움말
단추가깨져보여서여
[dice2:23:16:11|opensrc]$ ./google.pl 사랑
[dice2:23:16:11|opensrc]$ ./google.pl 사랑한다구
사랑한다구
했잖아
다시
해봐
어디가
맛있나
알아보시는
분들도
계실거고요
저는
못
갑니다
죽어도ㅎㅎㅎ
# perl google_talks.pl "사랑해"사랑해사랑해
# perl google_talks.pl "사랑해"
사랑해
사랑해
사랑해
“참
변화를 추구하며....
$ perl google_talks.pl "독도는"독도는한국
$ perl google_talks.pl "독도는"
독도는
한국
변화를 추구하며....
[code:1]$ ./google_talk.pl "날라토스&
최고! >_<)=b
Running in the 90's
http://spbear.com
dddd
./talk.pl "뭐 입을까"
[quote="spbear"][code:1]$ ./google_tal
어! 저 강민 팬이예요. (^^)/
다시 한 번 스타리그에서 짱먹어야 하는데...
[code:1]swoo:~ $ ./googletalks.pl &q
----
Let's shut up and code.
Re: 구글이 말을 한다. google talks
누가 요 프로그램 php 로 작성해 주실 분 안계신가요?
프로그램은 영 꽝이라서...ㅠㅠ
Oh No
Re: Oh No
키워드를 영어로 줬으니까 당연하겠죠? :)
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
하하하
키워드 영어로 주고 장난치기...
심심해서 친 장난입니다.
traxi1726 = "cppig1995(로긴귀찮아)"
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
비슷하게나마 만들어봤습니다.
python으로 만든 거에요.. :oops:
여기로 구글 가라사대
너무 재미있는데 퍼가도 퍼갈께요~
^^
너무 재미있는데 퍼갈께요~
^^너무 재미있는데 퍼갈께요~
HanIRC #barosl 채널에서도 봇을 통한 구글이야기가 가능합니다.
HanIRC #barosl 채널에서도 봇을 통한 구글이야기가 가능합니다. ;)
!구글이야기 or !구글이야기2 (자세한 출력) or !ggtalks
(...채널 광고 =3)
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
google_talks.pl "내가 보건데"
google_talks.pl "내가 보건데"
[code:1]# ./google_says.pl "여자라는 동물
[quote]returnet@returnet:~/code$ ./googl
잡다한 코드들 정리하다가 남아 있는 걸 발견 하곤 간만에 해봤는데..
재밌군요
----
http://returnet.blogdns.com
racy@localhost ~ $ perl talk.pl "안녕하세요"
racy@localhost ~ $ perl talk.pl "안녕하세요"
안녕하세요
가입하시면
추후
상품구입시
번거로운
정보입력을
하실
필요가
없습니다
수술을
받기
전에
수술과정을
가상체험해
볼
수
있는
동화를
소개한다
띳띳띳
꼴찌오리
핑
이야기』
racy@localhost ~ $
잼있네요..^^
[quote]luark@KasheL_main:~$ ./google_tal
이런 식으로 밖에 안나오네요;;; 시간이 흘러서 현재 구글하고 안맞는 걸까요;; 아니면.. 역시.. 유불일까요?
---
---
키체의 힘으로 당신에게 평안을...
[code:1][lucas@fox home]$ ./go
ㅋㅋㅋ
[quote="Anonymous"][code:1][lucas@
OTL 유불인가 보군요;;;;;; 나만 미워해 ㅜㅜ
---
---
키체의 힘으로 당신에게 평안을...
"사이트 운영자는"[quote]사이트 운영자는사이트의신뢰와
"사이트 운영자는"
---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/
귀여니의 아프리카보다는 낫군...
귀여니의 아프리카보다는 낫군...
하하하하하하핫. >ㅂ<
ㅎㅎㅎ 재밌네요 :)
은근 말이 되는듯 안되는듯 ㅋㅋ
윈도우즈에선..
윈도우즈에선 실행 안되는것 같은데요. 코드를 그냥 긁어다 붙쳐서 그런지도 모르겠네요.
strawberry perl 깔려져 있습니다. 설치한지 얼마 안되서 건드린건 없습니당..
헉 언제적 만든건데 - -;
웹페이지를 파싱해서 하는 것이기 때문에 구글의 싸이트 구성이 바뀌어서 이제는
동작하지 않을 겁니다.
뭐 방법이야 바뀌지 않았으니 나름대로 다시 구현해보심이..
어떤 분은 이것과 비슷한 인터넷 시인( http://channy.tistory.com/312 ) 이란 것을
매시업 캠프인가 하는 행사에서 만들어서 상까지 타셨더군요.
당시 Perl을 배우기 시작한지 얼마되지 않아 이 소스 저 소스 참고하면서 긁어 붙여 만든 거라서
지금 제가 옛날에 짠 엉망진창 코드를 보니 부끄럽습니다. :)
^^
play talk google!
댓글 달기