형태소 분석은 데스크톱을 구성하는 데 도움이?
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~
Reference
이 문제에 관하여(형태소 분석은 데스크톱을 구성하는 데 도움이?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takatsukaband/items/d397f97cee69105dfbac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)