니트족 자연 언어 처리 100개 노크:39
6261 단어 Python
또한log의 설정을 x좌표 y좌표와 함께 도표 제작 함수로 한다.
gridoption도 넣었어요.
출력 결과가 있는지 없는지는 모르겠지만 어쨌든 먼저 높여야 한다(일요일에도 확인해야 한다).
그나저나 우선 아버지의 법칙은 무엇일까...
"""
39. Zipfの法則
単語の出現頻度順位を横軸,その出現頻度を縦軸として,両対数グラフをプロットせよ.
"""
import MeCab
from pprint import pprint
import collections
from n30_execise import maping_morphology
from n31_execise import load_mecab_file
from n36_execise import extract_type_all,extract_frequent_words
from n37_execise import create_words_frequency_graph
import matplotlib.pyplot as plt
import pandas as pd
# TODO:freq_count 出現頻度の順序化
def freq_to_order(freq_count):
freq_count = list(freq_count)
uniq_freq = list(set(freq_count))
uniq_freq.sort(reverse=True)
freq_order_list = []
for index,_uniq in enumerate(uniq_freq):
for _frequency in freq_count:
if _uniq == _frequency:
freq_order_list.append(int(index+1))
else:
continue
return freq_order_list
if __name__ == "__main__":
# ファイルパス
mecab_file = "neko.txt.mecab"
# neko.txt.mecabを読み込む
mecab_text = load_mecab_file(mecab_file)
# 形態解析後のマッピングリスト
analyzed_list = maping_morphology(mecab_text)
# 表層形だけを取り出したリストを作成する
surface_list = extract_type_all(analyzed_list)
# 出現頻度の高い値とその回数を取り出す
freq_value,freq_count = extract_frequent_words(surface_list)
print(freq_count)
freq_order_list = freq_to_order(freq_count)
print(freq_order_list)
# グラフ作成
create_words_frequency_graph(freq_order_list,freq_count,graph='line',title="出現頻度順序と出現頻度の両対数グラフ(Zipfの法則)",xlabel="出現頻度の順序",ylabel="出現頻度",log_log=True,_grid=True)
# HACK:イメージとしてデータがある場所の上に値が表示されるようにしたい。
결과 내보내기
Reference
이 문제에 관하여(니트족 자연 언어 처리 100개 노크:39), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/humuhimi/items/3738855e2762d826e5f4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(니트족 자연 언어 처리 100개 노크:39), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/humuhimi/items/3738855e2762d826e5f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)