본문 바로가기
[硏 Ⅰ] 연구하다 - 교양/프로그래밍

인공 언어 치환 프로그램 구상

by 천매 2021. 7. 20.

새로운 세계관에서 이야기를 쓰려고 할 때 ─ 심심한 사람은 인공 언어를 도입해볼 수 있겠다. 

 

다만 언어는 규범문법을 설정하는 것 이외에 중요한 것들이 있는데, 바로 어휘를 도입하는 것이다. 

 

그런데 이 과정이 이만저만 복잡하고 번거로운 것이 아니다. 

수많은 어휘들을 나름대로 재구성해야하는 작업은 매우 번거롭고 귀찮은 일이다. 

 

이에 따라 다음과 같은 방법을 하나 제시한다 : 


1. Lorem ipsum의 텍스트를 가져온다.

아무 의미 없는 단어의 나열이다. 

https://www.lipsum.com/feed/html

 

Lorem Ipsum - All the facts - Lipsum generator

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus et molestie tortor. Vestibulum a odio pulvinar, vulputate quam a, lacinia erat. Aliquam erat volutpat. Aenean a eleifend ante. Sed dapibus malesuada mollis. Vivamus congue erat vitae nulla

www.lipsum.com

예를 들어 :

Aliquam erat volutpat. In posuere id felis ut tempus. Nunc malesuada eget quam vel scelerisque. Suspendisse commodo dolor at urna ullamcorper convallis. Duis lacinia a urna a venenatis. Integer egestas gravida posuere. Nunc quis eros metus. Donec lacus ipsum, facilisis quis pharetra et, faucibus eu erat. Fusce quis nisi egestas, consectetur sapien quis, ullamcorper mauris. Quisque vel dui sed sem fringilla sodales. Sed tellus velit, suscipit vitae sapien vitae, congue dictum mi. Sed non bibendum mauris.

 

2. 단어들을 분리하여 모두 추출한다. 

 

3. 적당한 분류 기준 하에 품사들을 나눈다. 

2글자 이하인 것은 조사로, s로 끝나는 것은 동사로, t,m으로 끝나는 것은 형용사로, 마지막에 모음이 잇달아 오는 것을 부사로, 그 이외를 명사로 지정하면 다음과 같다. 

words = list(set(words))

marker = []
noun = []
verb = []
adj = []
adv = []

for word in words : 
    if len(word)<= 2 : 
        marker.append(word)
    elif word[-1]=='s' :
        verb.append(word)
    elif word[-1] in 'mt' :
        adj.append(word)
    elif (word[-1] in 'aeiou') and (word[-2] in 'aeiou') :
        adv.append(word)
    else : 
        noun.append(word)

 

 

마음에 드는 분류는 아니지만 적당히 완성되었다. 

 

그럼 이것들을 한국어 단어들에 대응시킬 수 있어야 한다. 

대응은 일관적이어야 하며, 복잡한 단어는 복잡한 단어에, 간단한 단어는 간단한 단어에 대응되어야 한다. 

그 알고리즘은 내일 이어서 제시한다. 

'[硏 Ⅰ] 연구하다 - 교양 > 프로그래밍' 카테고리의 다른 글

해보는 생각 ) 문체 인식  (0) 2021.08.03
6/29 HTML 연습  (0) 2021.06.29

댓글