형태소 분석은 데스크톱을 구성하는 데 도움이?

1. 소개



문자×기계 학습에 흥미를 가져와 개인 범위의 용도를 생각해, 폴더 정리에 사용할 수 있을까 생각해 검토를 시작했습니다.
이번 검토에서는 폴더 구성 & text의 읽기 → mecab × wordcloud를 실시하고 있습니다. 그 결과 특정 계층 이하를 wordcloud로 정리할 수 있었습니다.

2.알았던 것



형태소 해석을 사용하면 빈출 단어의 경향을 알 수 있으므로, 아래의 조건화에서는 파일 정리가 가능한 느낌을 잡았습니다.
· text/csv 또는 의미있는 파일 이름이 모두 지정됩니다.
・무법지대의 데스크탑이 되어 있어, 사람이 시간을 들여도 관리할 수 있을 것 같지 않다.
→ 각 파일을 용어가 유사한 것끼리 같은 폴더로 구분한다.

다만, 관리된 PC에서는 실용성이 없을 것이라고 생각해, 검토 일시 STOP했습니다. (개인 PC/공유 PC 모두, 무법 지대인 PC를 본 적이 없다...)

3. 참고 문헌



· 형태소 분석 라이브러리 mecab의 설치 방법
h tps:// 퀵했다. 작은 m/메논/있어 MS/f041b7C46543f38f78f7
· mecab 사용 방법
htps : // 코 m / 이와시 군 / ms / 18613 에에 168651
※또한 설치의 환경 설정이 복잡? 일보다 Docker 기사도 많이 있어 챌린지 했습니다만, mecab 인스톨이 그다지 번거롭지 않거나 호스트-Docker 간 파일 전달이 개인적으로 귀찮았으므로, 이번은 Docker는 제외했습니다.

4. 소스



· 폴더 계층 및 파일 로드
import glob
import re
import os
import pandas as pd

#各層のfile名のみ抽出
list =[os.path.basename(p) for p in glob.glob('C:/Users/takat/Desktop/各種memo/**/*', recursive=True)
       if os.path.isfile(p)]

#textのみ、開いて文字列取得
for p in glob.glob('C:/Users/takat/Desktop/各種memo/**/*', recursive=True):
    if '.txt' in p:
        f = open(p,'r',encoding="utf-8",errors='ignore')
        list.insert(0,f.read()) # 1行毎にファイル終端まで全て読む(改行文字も含まれる)
        f.close()        
dflist = pd.DataFrame(list, index=range(len(list)),columns=["file"])

· mecab을 사용 (상기 URL과 거의 같은 내용)
%matplotlib inline
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
import MeCab
import pandas as pd
#create mecab list
class_num = 0
word_classes = [u'名詞',u'動詞',u'形容詞',u'副詞',u'助詞',u'助動詞']

word_class = word_classes[class_num]
def create_mecab_list(text):
    mecab_list =[]
    mecab = MeCab.Tagger("-Ochasen")
    mecab.parse("")
 #   encoding = text.encode('utf-8')
    mecab.parse('')
    node = mecab.parseToNode(text)
    while node:
        if len(node.surface)>1:
            if node.feature.split(",")[0]==word_class:
                morpheme = node.surface
                mecab_list.append(morpheme)
        node = node.next
    return mecab_list
newstext = " ".join(create_mecab_list(",".join(dflist.file)))


· wordcloud를 표시 (상기 URL과 거의 같은 내용)
wordcloud = WordCloud(
    max_font_size=140,
    relative_scaling=.5,
    width=1000,
    height=1000,
    stopwords = word_class,
    font_path='ipaexg.ttf'
    ).generate(newstext)
#fontファイルはipynbと同じ階層に保管もしくはパスを入れる
plt.figure(figsize=(10,10),dpi=200)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()


5.출력



자신의 머리 속이 표시되는 것 같고 부끄럽다. . .
LINE이나 메일을 wordcloud로 만드는 것을 만들면 폭사할 것 같다.
적어도 술자리에서의 대화를 GCP라든지로 문자 일으키면서 wordcloud 갱신시켜 가면 재미있을 것 같아?


6. 다음 액션



자동으로 정리하고 싶어지는 PC를 찾을 때까지 일단 검토 STOP~

좋은 웹페이지 즐겨찾기