korean:mecab:python_tfidf
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| korean:mecab:python_tfidf [2021/11/06 23:33] – [RSSフィードからのリンク取得および記事の処理] yoshi | korean:mecab:python_tfidf [2021/12/13 23:32] (現在) – [やること] yoshi | ||
|---|---|---|---|
| 行 24: | 行 24: | ||
| 韓国の新聞社サイトで公開されているRSSフィードを使って,リストにある記事を取得し,名詞類(普通名詞,固有名詞,語根)のTF-IDFを計算します.その上で,リスト中の記事から10本をランダムに選び,TF-IDF上位10語を列挙します. | 韓国の新聞社サイトで公開されているRSSフィードを使って,リストにある記事を取得し,名詞類(普通名詞,固有名詞,語根)のTF-IDFを計算します.その上で,リスト中の記事から10本をランダムに選び,TF-IDF上位10語を列挙します. | ||
| - | ここでは例として,경향신문(京郷新聞)の[[https:// | + | ここでは例として,경향신문(京郷新聞)の[[https:// |
| - | * [[https:// | + | * [[https:// |
| - | * [[https:// | + | * [[https:// |
| * [[http:// | * [[http:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| 付記した理由から,ここでは경향신문を取り上げることにします.他のRSSを利用する場合,適宜読み替えてください. | 付記した理由から,ここでは경향신문を取り上げることにします.他のRSSを利用する場合,適宜読み替えてください. | ||
| 行 42: | 行 47: | ||
| from sklearn.feature_extraction.text import TfidfVectorizer | from sklearn.feature_extraction.text import TfidfVectorizer | ||
| import pandas as pd | import pandas as pd | ||
| - | from k2jamo | + | import |
| </ | </ | ||
| 行 69: | 行 74: | ||
| soup = BeautifulSoup(html.content, | soup = BeautifulSoup(html.content, | ||
| # 경향신문向け | # 경향신문向け | ||
| - | articles = soup.find_all('p', class_ = 'content_text' | + | articles = soup.select('p.content_text' |
| # 중앙일보向け | # 중앙일보向け | ||
| # articles = soup.select('# | # articles = soup.select('# | ||
| 行 79: | 行 84: | ||
| なお,記事本文が格納されている要素はサイトによって異なります.ここまで分かっている中では,중앙일보(中央日報)の場合,「경향신문向け」としてある次の行をコメントアウトして,'' | なお,記事本文が格納されている要素はサイトによって異なります.ここまで分かっている中では,중앙일보(中央日報)の場合,「경향신문向け」としてある次の行をコメントアウトして,'' | ||
| - | > [2021/11/06 追加] 한겨레(ハンギョレ)は'' | + | > [2021/11/06 追加] |
| + | > | ||
| + | > 한겨레(ハンギョレ) '' | ||
| + | > 노컷뉴스(ノーカットニュース・CBS) '' | ||
| ===== MeCabによる解析 ===== | ===== MeCabによる解析 ===== | ||
| 行 126: | 行 134: | ||
| for i in range(len(rss_list)): | for i in range(len(rss_list)): | ||
| print(" | print(" | ||
| - | text = substitute_main(news_scraping(rss_list[i].link.text)) | + | text = k2jamo.substitute(news_scraping(rss_list[i].link.text)) |
| text = extract(text) | text = extract(text) | ||
| titles.append(rss_list[i].title.text) | titles.append(rss_list[i].title.text) | ||
| 行 157: | 行 165: | ||
| </ | </ | ||
| - | 結果は以下の通り. | + | 実行結果は以下の通り.フィードの項目(item)数が10以下だとエラーになります.'' |
| <code bash> | <code bash> | ||
| > python handic_mecab.py | > python handic_mecab.py | ||
| + | processing: 1 / 54 | ||
| Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER. | Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER. | ||
| ...中略... | ...中略... | ||
| + | processing: 54 / 54 | ||
| Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER. | Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER. | ||
| 안철수 출마와 김동연, 제3지대 가능성은 | 안철수 출마와 김동연, 제3지대 가능성은 | ||
| 行 276: | 行 286: | ||
| </ | </ | ||
| - | 文字コード関連のエラーが出ますが,だいたいうまくいっているようです.中央日報の方の記事を使う場合,このエラーは出ませんでした. | + | 文字コード関連のエラーが出ますが,だいたいうまくいっているようです.경향신문以外の記事を使う場合,このエラーは出ませんでした. |
| 大統領選挙(대선)が近づいて,各党の候補者選び(경선)が熱を帯びていることもあり,それぞれの記事で取り扱われている候補者(후보)の名前(윤, | 大統領選挙(대선)が近づいて,各党の候補者選び(경선)が熱を帯びていることもあり,それぞれの記事で取り扱われている候補者(후보)の名前(윤, | ||
| 行 282: | 行 292: | ||
| ===== 終わりに ===== | ===== 終わりに ===== | ||
| - | [[korean: | + | [[korean: |
| - | + | ||
| - | RSSフィートの項目数が多いと時間がかかりますが,処理中の内容,残り項目数を表示するなど,あるといいかもしれません. | + | |
| {{indexmenu_n> | {{indexmenu_n> | ||
korean/mecab/python_tfidf.1636209207.txt.gz · 最終更新: 2021/11/06 23:33 by yoshi