dat.blog
dat
dat
nxdataka

データ分析の世界に惹かれて30代で分析会社に転職して3年目です。数学・統計学・機械学習・プログラミングと色々苦しみ&楽しみながら勉強中。ブログは自然言語処理の話題が多めになりそう?

livedoorニュースコーパスをcsvファイル形式で取得する

これは何?

自然言語処理を日本語で色々試してみよう、ってときに、手軽に使える言語資源を用意するのって中々に大変ですよね。
今回はlivedoorニュースコーパスを取得し、取り回しのしやすいcsvファイル形式(表形式)に変換するスクリプトを作ったので公開します。
記事のURL、日時、タイトル、本文、配信元が列になったcsvファイルの言語資源がほしい、って人はぜひ使ってください。

変換後のcsvはたとえばPythonで使うなら、こんな感じ↓にpandas.read_csvで読み込めます。

read_csv

使い方

gistでlivedoorニュースコーパスをcsvファイル形式で取得するPythonスクリプトを公開してます。
ダウンロードするなり、cloneするなり、forkするなりしてスクリプトを取得して実行してください。python3系なら多分OS問わず動きます。
もし気に入ったらスター押してってください。励みになります。

ちなみにスクリプトの本体はこんな感じです1

コード内容の解説というか覚え書きは時間できたら別記事で書きます 別記事で書きました。

何言ってるかわからんって人用

  1. 以下のリンクに行く https://gist.github.com/nxdataka/48a27b2e1c3f029e7f25e66dba4b6dde
  2. Download Zipを押下→ダウンロードしたzipファイルを解凍して中身(ldn2csv.py)を取得
  3. ターミナル(windowsならコマンドプロンプトとか)で下記のようにldn2csv.pyを実行2

    python ldn2csv.py

    または

    python3 ldn2csv.py
  4. カレントディレクトリにlivedoornews.csvが作られるので、あとはお好きにどうぞ

そもそもlivedoorニュースコーパスって何?

その名の通り、livedoorニュースの記事を収集したコーパスです。以下、概要を引用。

livedoor ニュースコーパス
■概要
本コーパスは、NHN Japan株式会社が運営する「livedoor ニュース」のうち、下記のクリエイティブ・コモンズライセンスが適用されるニュース記事を収集し、可能な限りHTMLタグを取り除いて作成したものです。
トピックニュースhttp://news.livedoor.com/category/vender/news/
Sports Watchhttp://news.livedoor.com/category/vender/208/
ITライフハックhttp://news.livedoor.com/category/vender/223/
家電チャンネルhttp://news.livedoor.com/category/vender/kadench/
MOVIE ENTERhttp://news.livedoor.com/category/vender/movie_enter/
独女通信http://news.livedoor.com/category/vender/90/
エスマックスhttp://news.livedoor.com/category/vender/smax/
livedoor HOMMEhttp://news.livedoor.com/category/vender/homme/
Peachyhttp://news.livedoor.com/category/vender/ldgirls/

出典元:https://www.rondhuit.com/download.html#ldcc

ライセンスはCCライセンスのBY-ND。出典元を明記して使う、改変して再配布しない、を守れば比較的自由に使えます。ありがたい。

tar.gzで配布されていて、解凍すると以下のように中にtextディレクトリ、直下にニュースメディア毎のディレクトリがあります。

ldcc-20140209
└─text
    ├─dokujo-tsushin
    ├─it-life-hack
    ├─kaden-channel
    ├─livedoor-homme
    ├─movie-enter
    ├─peachy
    ├─smax
    ├─sports-watch
    └─topic-news

そのニュースメディア毎のディレクトリの中に個別のニュース記事ファイルが置かれている、といった形式になっています。
また、ニュース記事ファイル本体のフォーマットは以下のようになっています。

1行目:記事のURL
2行目:記事の日付
3行目:記事のタイトル
4行目以降:記事の本文

慣れている人はこれだけでも十分使いやすいと思いますが、1つの表にまとまっていた方が取り回しはしやすい場面も多々あります。
てことで、上記のコーパスを取得・解凍・csvファイル形式に変換するPythonスクリプトを作ったので使ってみてね、という記事でした。


  1. 簡易スクリプトなのにやたらとloggingやargparseを使って作ってるのは、最近使い方を知ったので練習がてらです。変なとこがあったらぜひ突っ込みください。

  2. ldn2csv.pyをカレントディレクトリに置いて実行するか、保存場所までのパスを指定して実行してください。