하이쿠를 생성하는 프로그램을 어떻게 작성 하시겠습니까? [닫은]


78

컴퓨터 하이쿠
당신
을 위해 프로그램 을 작성하는 방법


7
무한한 수의 원숭이를 고용하십시오. 셰익스피어의 전체 작품 외에도 무한한 수의 하이쿠를 얻을 수 있습니다.
Jon B

1
@Jon B : 그러나 그것은 무한히 오래 걸릴 것입니다.
Bill the Lizard

질문에 +1하고 지금까지의 댓글입니다.
Michael Haren

1
@Bill, 무한한 시간이 있다면 아주 건강한 원숭이 한 마리 만 고용하면됩니다. 무한한 수의 원숭이를 고용하면 특히 화려한 원숭이의 타이핑 속도에 의해서만 제한된 속도로 문학이 생산됩니다.
joeforker

1
@Darknight, Haikus는 정의상 17 개의 모라로 구성되어 있고 모라 (또는 ons)의 수는 한정되어 있기 때문입니다. 따라서 실제 하이쿠 수보다 적은 조합의 수는 number_of_moras ^ 17입니다. 이것은 그 의미가 아니라 하이쿠의 서면 표현에 관한 것입니다. (의미의 수는 실제로 하이쿠를 해석하는 프로그램을 작성, 심지어 하이쿠의 훨씬 작은 수의, 그러나 그것은 요청하지 않은 무한하지만, 수 그것을 쓰기)
미치게하다

답변:


19

시도하지 마십시오
시는
금속 및 비트와 잘 섞이지 않습니다

더 진지하게, 좋은 하이쿠 (심지어 나쁜 하이쿠)는 음절을 세는 것보다 의미와 이미지를 압축하는 것에 더 가깝습니다. 일반적으로 자연에서 수집 한 주제를 기반으로합니다. 임의의 단어 생성과 음절 계산은 의미없는 의미를 측정하지만시는 아닙니다 ...


6
모르겠어요. 무작위성에서 의미를 찾는 것은 매우 인간적인 것처럼 보입니다. 의미가없고 독자가 취한 의미 만있는시 란? 세속적 인본주의의 모델인가?
joeforker 2009

"... 음절을 세면 횡설수설로 측정 할 수 있지만시는 아닙니다." ... 나는 차이를 말하는 것이 "시 읽기"가 전부라고 생각했다.
Mizipzor

34

음절 측정
의미 흐름 이해
목표를 달성 할 수 있습니다.



10
  • 음절을 세다
  • 무작위로 단어 생성
  • 현명하게 정리하다

그것은했을 훨씬 더 오 당신의 코멘트없이. 그게 좀 것을 관객에게 상기와 같이 "마지막 문장은, 당신이 알고, 뒤통수 때리는 웃긴이었다. 당신은 그것을 얻을나요?"
Mizipzor

좋아요, 좋아요. 댓글을 삭제하면 삭제하겠습니다
Jason S

(FWIW 광산은 첫 번째 똑똑한 대답 이었으므로 반대 투표를 조심했습니다.)
Jason S

9

Haikus는 쉽다, 내가 주목할 것이다
솔루션은 잘 문서화되고 기능 은 암묵적이다
그들은 너무 과도하고 싸구려
코딩은 너무 쉽다
나에게 라임 릭을 한 다음 투표하겠습니다.

// 실제로 하이쿠를 좋아합니다


1
+1 세계 최고의시.
Fenton

얼마나 많은 시간이 함께 운율 뭔가 발견 했는가 notevote?
new123456 2011-06-28

@ new123456 코트? 해자 외호? 인용문? 보트? 염소? 운반? 흙손? 크로아티아 사람? (좋아, 마지막 하나는 스트레칭입니다)
PaulMcG

@PaulMcGuire 좋아요,하지만 코드가 뜨지 않나요? 나는 문맥에서 운율이 맞는 것을 의미했습니다.).
new123456 2013

그럼 몇 가지 코드 확실히 염소 의)
BenjaminRH

5

모든 하이쿠의 음절 수가 같지는 않지만 시작할 수 있습니다.

실제로 단어를 고르는면에서는 말의 일부가 내가 시작할 곳이 아닐 것이라고 생각합니다. 대신 Markov 체인을 살펴보고 기존 하이쿠에 대한 어휘를 훈련합니다.


하이쿠와 다른시에서 나온 단어의 쌍 또는 그 이상에 대한 markov 체인 제 생각에 꽤 괜찮을 것 같아요!
nlucaroni 2009

실제로 하이쿠는 음절 수가 같고 정의입니다. en.wikipedia.org/wiki/Haiku
Mnementh

흠, 이것도 읽어 보세요 : en.wikipedia.org/wiki/Haiku#Contemporary_English-language_haiku "17 음절 이하의 세 줄 (이하) 사용"
Jonik

3
bah! 현대 영어 하이쿠? 무슨 쓰레기.
Kevin

5

하이쿠 마을 , 우리는 쉽게 다양한 방법으로이 작업을 수행 할 수있는 기술을 가지고있다. 한 가지 아이디어는 단순히 글로벌 트위터 피드를 읽고 의도하지 않은 하이쿠를 감지하는 것입니다. 백엔드에도 사전이 있기 때문에 의심스러운 하이쿠를 만들 수는 있지만 품질이 부족할 것 같습니다.

별 등급 시스템이 있다면 기계 학습을 사용하여 '좋은'것이 무엇인지 결정할 수 있다고 생각합니다.


3
for (i is 0
and i is less than thirteen)
print s i plus plus

거기에 무한 루프가 있다고 생각합니다.
Niklas B.

@bobobobo-무한 루프를 해결하기 위해 통합되었습니다!
Fenton

2

"17 음절로 자신의 기분을 전달하는 것은 매우 다르다..." (위대한 John Cooper Clarke 내가 좋아하는 Beasley Street를 확인하십시오 )

컴퓨터에 대해 얼마나 차이가 있습니까? 논리는 기분을 모른다 :)


기분이 없으면 변수가 적기 때문에 훨씬 쉽습니다. 매번 무관심을 전달하면됩니다.
Fenton

2

읽을 수 있도록 사전을 음절 개수와 함께 명사, 동사, 형용사로 분리하십시오.

양식의 몇 가지 템플릿을 생각해보십시오.

[명사] [동사] "s"

[동사] a (n) [형용사] [명사]

[형용사] [명사]

사전을 아름다운 단어로 다듬습니다.


2

음절 개수로 주석이 달린 사전에서 추출한 하이쿠를 생성하는 유전 알고리즘을 구현 한 다음 사람들에게 비용을 지불하고 피트니스 함수 [기계적 터크가 도움이 될 것임]로 평가합니다. 시간이 지남에 따라 프로그램은 몇 가지 좋은 프로그램을 발전시켜야합니다.

편집하다:

피트니스에 유의 하면 필요한 GA가
CPU 속도로 진화
합니다.


나는 이것의 구현을보고 싶다. 유전 알고리즘은 나를 크게 흥미롭게합니다 ...
Erik Forbes


1

나는 구문 프로그래밍과 언어를 찾아보고 문법 구조에 대한 라이브러리를 찾으려고 노력할 것입니다. 거기에서 단어 개수와 음절 개수 제한을 추가하는 간단한 단계가 있어야합니다.


1

여기에서 어떤 사람들은 사전을 사용하고 Markov Chain을 사용하여 단어 시퀀스를 생성 할 것을 제안했습니다 . 이론적으로 실행 가능한 솔루션 인 것 같습니다. 특히 고차 Markov Chain (바이 또는 트라이 그램이 아님)을 사용하는 경우 더욱 그렇습니다.

하지만 실제로는 기존 하이쿠의 데이터베이스를 수집하고 단일 단어를 선택적으로 변경할 수 있다면 더 잘 작동 할 것이라고 생각합니다. 그 안에있는 를 합니다 (예 : 주어진 단어를 의미 적으로 관련된 다른 단어로 변경). 기존 하이쿠는 어떤 종류의 구조와 응집력을 제공하며, 새로운 하이쿠 (이전 하이쿠의 변형)를 만들려면 그 안에있는 작은 부분 만 (교환) 변경하면됩니다.

물론이 방법으로 완전히 새로운 하이쿠는 아니지만 적어도 독자들에게는 다소 즐거울 것입니다.


1

yy n 번 뒤에 사용 된 단어 xx와 같이 관계형 순서로 기존 하이쿠를 구문 분석합니다. 따라서 생성 할 때 xx가 yy 다음에 올 가능성은 (n / yy 이후에 사용 된 모든 단어 수의 합계)가됩니다. 이렇게하면 선택적으로 무작위 화되고 여전히 유효한 하이쿠가 될 수 있습니다.


이것은 마르코프 체인 뒤에있는 아이디어에 대한 적절한 설명입니다. 단어 y가 소스에서 시간의 75 % 단어 뒤에 오면 출력에서 ​​시간의 75 %가 y로 선택됩니다.
joeforker

그러나 세 단어 세트에서 더 잘 작동합니다.이 두 단어 뒤에 오는 단어는 무엇입니까?
그냥 내 정확한 OPINION

1

일본어로 하이쿠를 생성하는 프로그램을 작성하십시오. 음절 수를 측정하는 것이 훨씬 쉬울 것이며시의 원래 언어에 충실하게 머무르고 있습니다. 프로젝트에 융통성이 있다면 원래 일본어를 만들어 보는 것이 어떻습니까? 그 옆에 영어 단어를 단어 단위로 번역하여 보여주십시오. 아무리 말해도 신비스럽게 보일 것입니다.

어쨌든, 문제에 대한 다른 생각입니다.



0

각 단어의 음절 개수가 포함 된 사전 파일로 시작하겠습니다. 그런 다음 필요한 음절 / 줄에 추가되는 단어를 선택합니다.

임의의 단어가 아닌 시로 만드는 것에 관해서는 모르겠습니다.


시와 무작위 단어, 누가 그 차이를 알 수 있습니까? ;-)
joeforker 2009

텍스트 음성 변환 프로그램에는 발음 사전이 함께 제공됩니다.
joeforker 2009

0

Ian의 음절 개수에 대한 아이디어를 사용하는 것 외에도 단어를 품사별로 분류하고 구문을 생성 할 수 있습니다.


0

이야기의 의미 론적 sude에서 샘플링과 푸리에 변환을 사용합니다. 한 단어로 축소 된 세부 설명의 중요한 부분을 선택하고 독자에게 맡겨서 자신의 상상력으로 공백을 메 웁니다.


다양한 주파수의 사인파 또는 코사인 파의 합으로 스토리를 분해하는 방법을 확장하십시오.
joeforker 2009

음, 샘플링의 아이디어는 무엇입니까? 관심 범위에서 가장 높은 주파수의 두 배 이상인 주파수로 신호를 샘플링합니다. 이렇게 추출 된 법령 정보가 있으면 손실없이 아날로그 입력을 재구성 할 수 있습니다 (관심 범위 내에서)
Boris Pavlović

이것과 유사하게 중요한 동사, 명사, 형용사는 어떤 설명에서 모퉁이 돌이고 다른 모든 것은 남겨 둡니다. 이 단어들을 의미있는 배열로 작성하면 하이쿠를 얻을 수 있습니다
Boris Pavlović

0

컴퓨터에서 고품질 하이쿠를 출력하는 알고리즘은 다음과 같이 작동합니다.

설정 단계

loop:
  find the email address of a world-renowned writer of haiku
  confirm that this person is willing to generate haiku on demand
until sucker^H^H^H^H^H^Hwriter is found

실행 단계

loop:
  wait for a haiku request
  when a haiku request is received, email the previously-stored master and ask for a haiku
  wait for the haiku to return by reply
  output haiku

물론이 기본 아키텍처에 적용 할 수있는 다양한 개선 사항이 있습니다. 예를 들어 설정 단계를 확장하여 하이쿠 전문가 을 설정할 수 있습니다 . 실행 단계는 유휴 시간 동안 하이쿠를 생성하고 향후 수요에 대비하여 캐시하는 데 사용할 수 있습니다. 이러한 조정의 세부 사항은 학생을위한 연습으로 남겨집니다.


-1

나는이 질문을 좋아한다. 그것은 매우 상상력이 풍부합니다. 아래 답변.


많은 사람들이 마르코프 체인을 제안했지만 저는 그것이 가능할 것이라고 생각하지 않습니다. 음절이 PHONEMES인지 지능적으로 알아야하고 음절이 끝나는 곳을 알아야합니다.

당신이 이것을 한 적이 있다면 나는 놀랄 것입니다.


어떤 시점에서 당신이 사용하는 단어가 실제로 영어에서 무엇을 의미하는지 찾아보고 싶을 수도 있습니다.
그냥 내 정확한 OPINION
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.