AI

[K-digital] 프로젝트형 AI 서비스 개발 교육 Day 10

Supreme_YS 2021. 1. 15. 18:50

20210115 TIL

'''
palindrom (회문)
단어를 거꾸로 읽어도 제대로 읽는 것과 같은 단어 또는 문장
예) level, sos, rotator, 'nurses run'
기준이 필요 ( 중앙을 기준으로 해서 첫 글자와 마지막 글자를 비교 )
반복문
// - 몫을 취하는 연산자
'''

str = 'jslim9413'
idx = len(str) // 2 # 중앙값 찾기
print(str[idx])

def isPalindrom() :
    isFlag = True
    word = input('회문 검사를 위한 단어를 입력하세요 :')
    for idx in range(len(word) // 2) :
        if word[idx] != word[-1 - idx] :
            isFlag = False # 같지 않으면 False
            break
    return isFlag

def reversedPalindrom() :
    word = input('회문 검사를 위한 단어를 입력하세요 : ')

    print( type(reversed(word)) , reversed(word))
    print( list(word) , list(reversed(word)))
    print(list(word) == list(reversed(word)))

# palindrom_word.txt 팡리의 단어를 읽어서 회문인 단어만 출력?
def palindromFile() :
    with open(file = './word/palindrome_words.txt', mode='r', encoding='utf-8') as file :
        for line in file :
            line = line.strip('\n')
            if line == line[::-1] :
                print(line)


# 특정 문자열에서 N - gram 개의 연속된 요소를 추출한다면?
# 자연어처리
# hello -> 2 n gram -> he / el / ll / lo

text = 'hello'
for idx in range(len(text) - 1) :
    # print('idx - ', idx)
    print(text[idx], text[idx+1], sep='')

# 문장이 입력됐을 때, 2n gram 을 한다면?
text = 'this is python script'
textList = text.split()
print(textList)
print( type(textList))

for idx in range(len(textList) - 1) :
    # print('idx - ', idx)
    print(textList[idx], textList[idx+1])

# zip() 함수
num = [1, 2, 3, 4]
name = ['hong', 'gil', 'dong', 'guy']

dic = {}
for key, value in zip(num, name) : # 튜플형식으로 넘겨주는데
    dic[key] = value # 보통 이것처럼 dict 형식으로 key-value 식으로 많이 활용된다.

print(dic)

'''
input 함수를 이용해서 문자열을 입력받고
예시 ) python is a programming language that lets your work quickly
input 함수를 이용해서 gram의 숫자를 입력받는다. 예) 2
입력된 숫자에 해당하는 단어 N-gram을 튜플 형식으로 출력하는 함수 
만일 입력된 문자열의 단어 갯수가 입력된 정수 미만이라면 예외를 발생시킨다.
'''

def zipNgram() :
    text = input('문자열을 입력하세요 : ')
    gram = int(input('N-gram 숫자를 입력하세요 : '))
    textList = text.split()

    # for idx in range(len(textList) - gram + 1) :
    #     print(textList[idx:idx+gram])

    # 만일 zip함수를 이용하게 된다면?
    ngram = zip(*[ textList[idx:] for idx in range(gram)])
    # print(list(ngram))
    for idx in ngram :
        print(idx)