<jupyter_start><jupyter_text>기사 합치기<jupyter_code>temp = []
for file in os.listdir():
    if '크롤링.csv' in file:
        temp.append(file)
table = pd.DataFrame()
for file in temp:
    try:
        data = pd.read_csv(file, encoding = 'cp949', index_col = 0).fillna('')
    except:
        data = pd.DataFrame()
    if len(data)==0:
        continue
    table = pd.concat([table, data])
    
table = table.reset_index()
del table['index']   
table['date'] = table['date'].str.replace('.', '').astype(int)
table['body'] = table['body'].str.lstrip().str.rstrip()


table.to_csv('신문기사모음.csv', encoding = 'cp949', index = False)<jupyter_output>C:\Users\USER\.conda\envs\NLP\lib\site-packages\ipykernel_launcher.py:17: FutureWarning: The default value of regex will change from True to False in a future version. In addition, single character regular expressions will *not* be treated as literal strings when regex=True.<jupyter_text><jupyter_code>okt = Okt()
wordTypeOkt=okt.tagset
print(wordTypeOkt)
data = pd.read_csv('신문기사모음.csv', encoding = 'cp949')
text = data.body

for i, document in enumerate(text):

    # okt = Okt()
    clean_words = []
    for word in okt.pos(document, stem=True): #어간 추출
        if word[1] not in ['Josa', 'Eomi', 'Punctuation', 'Foreign', 'Suffix' ,'URL', 'Conjunction']: #조사, 어미, 구두점, 외국어/기호, url 제외 
            clean_words.append(word[0])
    # print(clean_words) 
    document = ' '.join(clean_words)
    # print(document) 
    text[i] = document

print(text[0], text[1])
# tokenize 
okt=Okt()
tokens = []
stopwords = ['하다', '되다', '있다', '들다', '들', '기자', '오다', '돼다', '년']

'''각 기사별로 토큰들 나눠서 리스트로 만들기'''
# [ [1번 기사의 토큰들], [2번 기사의 토큰들], [3번 기사의 토큰들]... [n번 기사의 토큰들] ]
for line in text:
    tokens.append(okt.morphs(line))

    
'''
tokens -> 각 기사별 토큰 list를 모아놓은 list   (list를 모은 list)
'''

'''
처리하려는 list(tokens)에서 그대로 삭제하는 작업을 진행하면 문제가 생길것 같아,

tokens_processed 

라는 새로운 dict를 만들었어요 
'''
tokens_processed = {}


# 기사 하나하나 마다 [토큰 리스트]에 담긴 한글자짜리 토큰 제거
temp_index = 0
for lst in tokens:
    ''' 여기서 각 기사 한줄 한줄씩 처리함 '''
    
    
    # 딕셔너리에 담을 때 표시하기 위한 인덱스....
    
    
    # 딕셔너리에 담을 토큰들 모아놓는 리스트....
    temp_words_list = []
    
    
    for wd in lst:
        ''' 여기서 기사별 [토큰list] 속 단어(토큰)들을 처리함 '''
        
        if len(wd) < 2:
            # 한글자 짜리면 무시하고 지나침
            continue
            
        if wd in stopwords:
            # 불용어에 해당하는 단어면 무시하고 지나침
            continue
        
        # 둘다 해당하지 않으면 임시 리스트에 담기
        temp_words_list.append(wd)
    
    
    # 필터링한 데이터 저장
    tokens_processed[temp_index] = temp_words_list
    temp_index +=1

    ''' 
      0 : [ 기사1 토큰리스트 ]
      1 : [ 기사2 토큰리스트 ]
      2 : [ 기사3 토큰리스트 ]
    ...
    122 : [ 기사122 토큰리스트 ]
    
    (temp_index)    :  (temp_wors_list) 
    이런 형식으로 dictionary(tokens_processed)에 저장
    
    '''
    

# 만들어진 딕셔너리
tokens_processed<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13928329952670723, 'fraction_numerical': 0.011832319134550372, 'mean_word_length': 2.302455357142857, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '627972', 'license': 'MIT', 'n_tokens_mistral': 1444, 'n_tokens_neox': 1638, 'n_words': 285, 'path': 'Topic Modeling/NLP - preprocessing.ipynb', 'repo_name': 'jeunbeen/nlp-covid19-ventures', 'size': '2958'}