컴퓨터 하이쿠
당신
을 위해 프로그램 을 작성하는 방법
컴퓨터 하이쿠
당신
을 위해 프로그램 을 작성하는 방법
답변:
시도하지 마십시오
시는
금속 및 비트와 잘 섞이지 않습니다
더 진지하게, 좋은 하이쿠 (심지어 나쁜 하이쿠)는 음절을 세는 것보다 의미와 이미지를 압축하는 것에 더 가깝습니다. 일반적으로 자연에서 수집 한 주제를 기반으로합니다. 임의의 단어 생성과 음절 계산은 의미없는 의미를 측정하지만시는 아닙니다 ...
먼저, Markov chains 를 살펴보고 , 두 번째로 Virtual Muse 라는 컴퓨터 생성시에 관한 책이 있습니다 .
Haikus는 쉽다, 내가 주목할 것이다
솔루션은 잘 문서화되고 기능 은 암묵적이다
그들은 너무 과도하고 싸구려
코딩은 너무 쉽다
나에게 라임 릭을 한 다음 투표하겠습니다.
// 실제로 하이쿠를 좋아합니다
note
와 vote
?
모든 하이쿠의 음절 수가 같지는 않지만 시작할 수 있습니다.
실제로 단어를 고르는면에서는 말의 일부가 내가 시작할 곳이 아닐 것이라고 생각합니다. 대신 Markov 체인을 살펴보고 기존 하이쿠에 대한 어휘를 훈련합니다.
에 하이쿠 마을 , 우리는 쉽게 다양한 방법으로이 작업을 수행 할 수있는 기술을 가지고있다. 한 가지 아이디어는 단순히 글로벌 트위터 피드를 읽고 의도하지 않은 하이쿠를 감지하는 것입니다. 백엔드에도 사전이 있기 때문에 의심스러운 하이쿠를 만들 수는 있지만 품질이 부족할 것 같습니다.
별 등급 시스템이 있다면 기계 학습을 사용하여 '좋은'것이 무엇인지 결정할 수 있다고 생각합니다.
"17 음절로 자신의 기분을 전달하는 것은 매우 다르다..." (위대한 John Cooper Clarke 내가 좋아하는 Beasley Street를 확인하십시오 )
컴퓨터에 대해 얼마나 차이가 있습니까? 논리는 기분을 모른다 :)
음절 개수로 주석이 달린 사전에서 추출한 하이쿠를 생성하는 유전 알고리즘을 구현 한 다음 사람들에게 비용을 지불하고 피트니스 함수 [기계적 터크가 도움이 될 것임]로 평가합니다. 시간이 지남에 따라 프로그램은 몇 가지 좋은 프로그램을 발전시켜야합니다.
편집하다:
피트니스에 유의 하면 필요한 GA가
CPU 속도로 진화
합니다.
당신의 프로그램은
은유와 이미지를
이해하고 창의적이어야합니다.
여기에서 어떤 사람들은 사전을 사용하고 Markov Chain을 사용하여 단어 시퀀스를 생성 할 것을 제안했습니다 . 이론적으로 실행 가능한 솔루션 인 것 같습니다. 특히 고차 Markov Chain (바이 또는 트라이 그램이 아님)을 사용하는 경우 더욱 그렇습니다.
하지만 실제로는 기존 하이쿠의 데이터베이스를 수집하고 단일 단어를 선택적으로 변경할 수 있다면 더 잘 작동 할 것이라고 생각합니다. 그 안에있는 를 합니다 (예 : 주어진 단어를 의미 적으로 관련된 다른 단어로 변경). 기존 하이쿠는 어떤 종류의 구조와 응집력을 제공하며, 새로운 하이쿠 (이전 하이쿠의 변형)를 만들려면 그 안에있는 작은 부분 만 (교환) 변경하면됩니다.
물론이 방법으로 완전히 새로운 하이쿠는 아니지만 적어도 독자들에게는 다소 즐거울 것입니다.
yy n 번 뒤에 사용 된 단어 xx와 같이 관계형 순서로 기존 하이쿠를 구문 분석합니다. 따라서 생성 할 때 xx가 yy 다음에 올 가능성은 (n / yy 이후에 사용 된 모든 단어 수의 합계)가됩니다. 이렇게하면 선택적으로 무작위 화되고 여전히 유효한 하이쿠가 될 수 있습니다.
각 단어의 음절 개수가 포함 된 사전 파일로 시작하겠습니다. 그런 다음 필요한 음절 / 줄에 추가되는 단어를 선택합니다.
임의의 단어가 아닌 시로 만드는 것에 관해서는 모르겠습니다.
이야기의 의미 론적 sude에서 샘플링과 푸리에 변환을 사용합니다. 한 단어로 축소 된 세부 설명의 중요한 부분을 선택하고 독자에게 맡겨서 자신의 상상력으로 공백을 메 웁니다.
컴퓨터에서 고품질 하이쿠를 출력하는 알고리즘은 다음과 같이 작동합니다.
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
물론이 기본 아키텍처에 적용 할 수있는 다양한 개선 사항이 있습니다. 예를 들어 설정 단계를 확장하여 하이쿠 전문가 풀 을 설정할 수 있습니다 . 실행 단계는 유휴 시간 동안 하이쿠를 생성하고 향후 수요에 대비하여 캐시하는 데 사용할 수 있습니다. 이러한 조정의 세부 사항은 학생을위한 연습으로 남겨집니다.
나는이 질문을 좋아한다. 그것은 매우 상상력이 풍부합니다. 아래 답변.
많은 사람들이 마르코프 체인을 제안했지만 저는 그것이 가능할 것이라고 생각하지 않습니다. 음절이 PHONEMES인지 지능적으로 알아야하고 음절이 끝나는 곳을 알아야합니다.
당신이 이것을 한 적이 있다면 나는 놀랄 것입니다.