def noun_count(file_name): f = open("C:/Users/leevi/Downloads/%s.txt" % (file_name), 'r', encoding='UTF8') text_raw = f.read() p = re.compile('[a-zA-Z가-힣0-9]+') text_list = p.findall(text_raw) text = ' '.join(text_list) twitter = Twitter() twitter.add_dictionary([ '스쉐', '오직스쉐', '테크노', '셀엔듀라', '디스커버리', '비글', '뉴발', '키작녀', '코디', '데일리', '데일리룩', '치즈윅', '슈펜', '내셔널지오그래픽', '코르테즈', '캔버스', '버켄', '어글리', '아쿠아', 'white', 'black', '어글리슈즈', '아쿠아슈즈', '쪼리', '슬리퍼', '글라이더', '슬립온', '티허트', '파츠', '스니커즈', '밸크로', '스탬핑', '트위즈', '다이나쿤', 'descent', 'nike', '나이키', '아디다스', '뉴발란스', '아식스', '오니츠카타이거', '아식스타이거', '푸마', '휠라', '리복', '반스', '스케쳐스', '컨버스', '크록스', '라코스테', '라코스떼', '브룩스', '써코니', '테바', 'TEVA', '킨', 'KEEN', '버켄스탁', '슈콤마보니', '닥터마틴', '츄바스코', '수이코크', '케즈', 'Keds', '수페르가', '슈페르가', '데상트', '르꼬끄', '르꼬끄스포르티브', '엄브로', '러닝화', '밧슈', '샌달', '고프코어', '벌키', '청키' ], 'Noun') nouns = twitter.nouns(text) count = Counter(nouns) a = [] b = [] for k in count.items(): a.append(k[0]) b.append(k[1]) df1 = pd.DataFrame({'단어': a, '빈도수': b}) df1 = df1.sort_values(by='빈도수', ascending=False) print(df1) df1.to_excel('C:/Users/leevi/Downloads/%s_noun_count.xlsx' % (file_name), index=False)
def main(): root = 'C:/Users/leevi/Desktop/데상트_3월/' file_name_list = ['스타일쉐어_content만.txt'] new_word = add_new_word(root) twitter = Twitter() twitter.add_dictionary(new_word, 'Noun') for file_name in file_name_list: noun_count(root, file_name, twitter) print('noun parsing 저장완료')
import pandas as pd from konlpy.tag import Twitter from collections import Counter from konlpy.utils import pprint from ckonlpy.tag import Twitter import nltk from nltk import Text root = 'C:/Users/leevi/Desktop/데상트_3월/_무신사/' file_name = '무신사_리뷰_18.txt' f = open(root + file_name, 'r', encoding='UTF8') text = f.read() twitter = Twitter() twitter.add_dictionary({'백팩','가격대비'}, 'Noun') twitter.add_dictionary({'일하면서'}, 'Adjective') twitter.add_dictionary({'듭니다'}, 'Verb') words = [] pos_category = [] for i in df1['word']: words.append(i[0]) pos_category.append(i[1]) df2 = pd.DataFrame({'word': words, 'pos': pos_category, 'count': df1['count']}) df3 = df2.sort_values(by='count', ascending=False) print(df3) #twitter.tagset
print("%s : %d" % (i, container[i])) c = collections.Counter("hello Julia") print(c) ### dictionary 형으로 나옴! c.keys() c.values() list(c.keys()) ct = collections.Counter() with open("c:\data\Julia.txt", "r") as f: for i in f: ct.update(i.rstrip().lower()) print(ct) ### 컨테이너 안의 빈도 수가 기본적으로 내림차순으로 되어 있음 for i, c in ct.most_common(5): ### 상위 5개 추출 print("%s : %d" % (i, c)) # 7) 사용자 사전 ## pip install customized_konlpy from konlpy.tag import Twitter ### Kkma보다 Twitter가 속도가 더 빠름! twitter = Twitter() txt = "텍스트 마이닝은 텍스트 형태의 데이터를 수학적 알고리즘에 기초하여 수집, 처리, 분석, 요약하는 연구기법을 통칭하는 용어이다." collections.Counter(twitter.nouns(txt)) ### 일부 단어가 사전에 포함되어 있지 않음 ## 일부 단어들을 사전에 추가 from ckonlpy.tag import Twitter twitter = Twitter() twitter.add_dictionary('마이닝', 'Noun') ### 단어 추가! collections.Counter(twitter.nouns(txt))
for i, c in ct.most_common(5): print("%s : %d"%(i,c)) # ============================================================================= # 사용자 구축 사전 만들기 pip install customized_konlpy # ============================================================================= # anaconda prompt에서 실행 pip install customized_konlpy # from konlpy.tag import Twitter twitter = Twitter() # txt = "텍스트 마이닝은 텍스트 형태의 데이터를 수학적 알고리즘에 기초하여 수집, 처리, 분석, 요약하는 연구기법을 통칭하는 용어이다." #container 로 담아서 명사수 세기 collections.Counter(twitter.nouns(txt)) #사용자 구축사전 #add_dictionary는 지속되지 않기 때문에 add_dictionary()코드를 같이 가지고 돌려야 한다. from ckonlpy.tag import Twitter twitter = Twitter() twitter.add_dictionary('마이닝','Noun') #단어 추가한 후 container.Counter로 명사수 세기 collections.Counter(twitter.nouns(txt))