전체 글
-
문제 13. col1.txt와 col2.txt를 병합NLP/NLP100 2021. 1. 4. 18:27
12번 문제에서 만든 col1.txt와 col2.txt를 병합하고, 원래 파일의 1열과 2열을 탭으로 구분하여 텍스트 파일에 저장하시오. 확인을 위해 paste 명령을 사용하시오. import pandas as pd f1 = pd.read_csv("/Users/p1zz4/Downloads/col1.txt", header=None) f2 = pd.read_csv("/Users/p1zz4/Downloads/col2.txt", header=None) df = pd.concat((f1,f2),axis=1) df.to_csv("/Users/p1zz4/Downloads/13.txt", sep='\t',index=False,header=None)
-
문제 12. 첫번째 열을 col.txt에, 두번째 열을 col2.txt에 저장NLP/NLP100 2021. 1. 4. 18:26
각 행의 첫번째 열을 추출하여 col1.txt에, 두번째 열을 추출하여 col2.txt에 각각 저장하시오. 확인을 위해 cut 명령을 사용하시오. import pandas as pd df = pd.read_csv('/Users/p1zz4/Downloads/popular-names.txt', sep='\t', header=None) df[0].to_csv('/Users/p1zz4/Downloads/col1.txt', index=False, header=False) df[1].to_csv('/Users/p1zz4/Downloads/col2.txt', index=False, header=False) [출력 결과]
-
문제 11. 탭을 공백으로 변환NLP/NLP100 2021. 1. 4. 18:25
모든 탭을 공백 문자로 변환하시오. 확인을 위해 sed명령어, tr명령어, expand명령어를 사용하시오. datapath = "/Users/p1zz4/Downloads/popular-names.txt" with open(datapath) as p: f = [line.replace("\t", " ").rstrip() for line in p] print(f[:10]) # 전체 출력하느라 오래걸리므로 일부만 출력해서 확인 [확인] - sed (base) P1ZZ4:Downloads p1zz4$ sed "s/\t/ /g" re_popular-names.txt - tr (base) P1ZZ4:Downloads p1zz4$ tr '\tr' ' ' < re_popular-names.txt - expand (bas..
-
문제 10. 몇 줄짜리 파일NLP/NLP100 2021. 1. 4. 18:22
기본 파이썬 문제인 1장을 마치고 UNIX 명령인 2장으로 넘어왔다. 2장에 대한 설명은 다음과 같다. popular-names.txt는 미국에서 태어난 아기의 "이름", "성별", "인원 수", "나이" 데이터를 탭을 구분자로 사용, 저장한 파일이다. 아래와 같이 처리할 프로그램을 작성하고, popular-names.txt를 입력 파일로도 실행하시오. 또한, 동일한 동작이 UNIX명령어로도 가능한지 실행하여 확인하시오. 파일이 몇 줄인지 구하시오. 확인을 위해서 wc명령어를 사용하시오. datapath = "/Users/p1zz4/Downloads/popular-names.txt" with open(datapath) as p: print(sum(1 for line in p)) (base) P1ZZ4:D..
-
문제 09. TypoglycemiaNLP/NLP100 2021. 1. 4. 18:20
공백으로 구분된 단어의 나열 문자열을 이용, 각 단어의 첫 글자와 마지막 글자는 남기고 그 이외의 문자의 순서를 랜덤으로 섞는 프로그램을 작성하시오. 단, 길이가 4 이하인 단어에 대해서는 섞는 과정을 생략하시오. 적당한 영어 문장을(e.g. "I couldn't believe that i could actually understand what i was reading: the phenomenal power of the human mind.) 이용하여 실행 결과를 확인하시오. import random s = "I couldn’t believe that I could actually understand what I was reading : the phenomenal power of the human min..
-
문제 08. 암호문NLP/NLP100 2021. 1. 4. 18:19
주어진 문자열의 각 문자를 아래의 사양에 따라 변환하는 cipher라는 이름의 함수를 구현하시오. 영소문자일 경우, (219 - 문자 코드) 문자로 변환 기타 문자는 그대로 출력 이 함수를 사용하여, 영어로 된 문장을 암호화한 후 복호화하시오. def cipher(p): return "".join([chr(219 - ord(c)) if c.islower() else c for c in p]) p = "i am p1zz4!" print(cipher(p)) print(cipher(cipher(p))) [출력 결과] r zn k1aa4! i am p1zz4!
-
문제 06. 집합NLP/NLP100 2021. 1. 4. 18:17
"paraparaparadise"와 "paragraph"에 포함되는 문자 Bigram의 집합을 각각, X와 Y로 구하고, X와 Y의 합집합, 곱집합, 차집합을 구하시오. 그리고, "se"라는 Bigram이 X와 Y 중 어느 집합에 포함되는지 확인하시오. Xs = "paraparaparadise" Ys = "paragraph" def ngram(idx, n): return [idx[i:i+n] for i in range(len(idx)-n+1)] X = set(ngram(Xs,2)) Y = set(ngram(Ys,2)) print(f'union: {X | Y}') #합집합 print(f'intersection: {X & Y}') #교집합 print(f'difference of sets: {X - Y}') ..