概要
前回までのあらすじ
- 入力したURL(yah○○ニュース)から本文を抽出
- 抽出した本文から名詞を抜き出し
- 抜き出した出力はこんなかんじ
今回やること
- グラフ化して、単語の出現頻度を確認する
- グラフ化はpandasのDataFrameから行う
SourceCode
url = u'https://headlines.yahoo.co.jp/hl?a=20190419-00000057-it_nlab-sci'
response = urllib.request.urlopen(url)
data = response.read().decode('utf-8')
soup = BeautifulSoup(data)
main = soup.find('p',class_="ynDetailText yjDirectSLinkTarget")
text = main.text
token_filters = [POSKeepFilter('名詞'), TokenCountFilter()]
a = Analyzer(token_filters=token_filters)
df = pd.DataFrame(index=[],columns=['name','counts'])
for k, v in a.analyze(text):
add_list = pd.Series([k,v],index=df.columns)
df = df.append(add_list,ignore_index=True)
plt.rcParams['figure.facecolor'] = 'white'
df.index = df.name
df[df.counts > 2].sort_values('counts',ascending=False).plot(kind='bar',figsize=(15,5))
まとめ
- 1つの記事で名詞の出現頻度を知ることができるようになった。
- アライさんがでてくることはわかりやすいが、他の「Twitter」や「アカウント」などの出現回数が少ないため、なんの記事なのかこれだけでは判断が難しいかもしれない。
- 次はクローリングして、名詞を収集してなにかできないか模索する。