파이썬 초보자는 WordCloud에서 놀고 싶습니다 2

10166 단어 파이썬Mac초보자

마지막까지



지난번은, janome의 기본을 보면서 .txt내의 문장을 분할했다.

이번에는 불필요한 품사의 소거와 사용된 단어의 횟수, 복합 명사화를 해 나간다.

참고로 하고 있는 사이트는 이쪽↓
htps : //에서. 응 kmk. 메/py 텐-쟈의 메-트토리아 l/

Analyzer 프레임워크



Analyzer 프레임워크를 사용하면 이번에 하고 싶은 것을 모두 할 수 있는 것 같다.
그 밖에도, 대문자 소문자의 변환, 출력하는 품사의 지정을 할 수 있다는 것.

불필요한 품사 삭제



불필요한 품사를 지우려면 POSStopFilter를 사용합니다.
from janome.tokenizer import Tokenizer
#今回使うモジュール達↓
from janome.analyzer import Analyzer
from janome.charfilter import *
from janome.tokenfilter import *

f = open("sample.txt", "r", encoding="UTF-8")
text = f.read()

t = Tokenizer()

# ここから変わってる
char_filters = [UnicodeNormalizeCharFilter(),
                RegexReplaceCharFilter("","")]
token_filters = [POSStopFilter(["助詞", "記号"]), # POSStopFilter 表示しない
                 ExtractAttributeFilter("surface")]

a = Analyzer(char_filters = char_filters, 
             token_filters = token_filters)

for token in a.analyze(text):
    print(token)

덧붙여서, import *를 잘 모르고, 스스로 좋아하게 변수처럼 넣어도 좋을까라고 생각하면 제대로 의미가 있었다. 그렇다, 유석에 초학자 너무.


Python의 「from import *」의 사용법을 현역 엔지니어가 해설【초보자용】 부터 인용

실행 결과


むかし
むかし
ある
ところ
おじいさん
おばあさん
住ん
い
まし
た
.
.
.

조사도 기호(보이지 않지만)도 확실히 사라지고 있다.

사용되는 단어 수



사용되는 단어를 계산하려면 TokenCountFilter()를 사용합니다.
from janome.tokenizer import Tokenizer
from janome.analyzer import Analyzer
from janome.charfilter import *
from janome.tokenfilter import *

f = open("sample.txt", "r", encoding="UTF-8")
text = f.read()

t = Tokenizer()

char_filters = [UnicodeNormalizeCharFilter(),
                RegexReplaceCharFilter("","")]
token_filters = [ExtractAttributeFilter("surface")]

a = Analyzer(token_filters=[POSStopFilter(["助詞", "記号"]), 
                            TokenCountFilter()])

g_count = a.analyze(text)

for i in g_count:
    print(i)

POSStopFilter([ ])는 a = Analyzer( ) 쪽에서도 지정할 수 있는 것 같기 때문에, token_filters 쪽을 지우고 있다. (반대로라면 화가 버린다)
TokenCountFilter()는 문장에 넣어야 한다.

실행 결과


('むかし', 2)
('ある', 2)
('ところ', 1)
('おじいさん', 6)
('おばあさん', 9)
('住ん', 1)
('い', 2)
('まし', 18)
('た', 25)
.
.
.

복합 명사화



복합 명사로 하려면 Compound NounFilter를 사용한다.
POSStopFilter를 사용하여 기호만 지웁니다.
from janome.tokenizer import Tokenizer
from janome.analyzer import Analyzer
from janome.charfilter import *
from janome.tokenfilter import *

f = open("sample.txt", "r", encoding="UTF-8")
text = f.read()

t = Tokenizer()

char_filters = [UnicodeNormalizeCharFilter(),
                RegexReplaceCharFilter("","")]
token_filters = [ExtractAttributeFilter("surface")]

a = Analyzer(token_filters=[POSStopFilter(["記号"]), 
                            CompoundNounFilter()])

for token in a.analyze(text):
    print(token)

실행 결과


むかしむかし  名詞,複合,*,*,*,*,むかしむかし,ムカシムカシ,ムカシムカシ
ある  連体詞,*,*,*,*,*,ある,アル,アル
ところ   名詞,非自立,副詞可能,*,*,*,ところ,トコロ,トコロ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
おじいさん 名詞,一般,*,*,*,*,おじいさん,オジイサン,オジーサン
と 助詞,並立助詞,*,*,*,*,と,ト,ト
おばあさん 名詞,一般,*,*,*,*,おばあさん,オバアサン,オバーサン
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
住ん  動詞,自立,*,*,五段・マ行,連用タ接続,住む,スン,スン
で 助詞,接続助詞,*,*,*,*,で,デ,デ
い 動詞,非自立,*,*,一段,連用形,いる,イ,イ
まし  助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.
.
.

요약



이번에는 품사 소거, 단어 카운트, 복합 명사화를 해갔다. 그 밖에도 사용할 수 있는 것은 있기 때문에, 그 때마다 사용해 가면 좋다고 생각한다.
다음 시간은, 무엇을 할 것인가? WordCloud로 들어가도 좋을지도 모른다.

좋은 웹페이지 즐겨찾기