More Related Content Similar to Collecting corpus Similar to Collecting corpus (20) More from Atsushi Hayakawa More from Atsushi Hayakawa (20) Collecting corpus5. 自己紹介
早川 敦士
電気通信大学電気通信学部
システム工学科 三年
TwitterID: @gepuro
統計に興味津々なお年頃
コンピュータサークルに所属
今年から英語サークルにも
テキストマイニング初心者
6. 自己紹介
はてなダイアリー
http://d.hatena.ne.jp/gepuro/
サークル
Microcomputer Making Association
http://wiki.mma.club.uec.ac.jp/
http://wiki.mma.club.uec.ac.jp/hayakawa
13. テキストマイニングに必要なもの
身近なテキストデータの例
Twitter
ブログ
wikipedia
ニュースサイト
2ch 等の掲示板
などなど・・・
今回は、ブログ、ニュース、 2ch 、 pdf から
コーパスを集めてみました。
15. はてなダイアリーから
はてなダイアリーでは、最近更新のあったブロ
グを xml 形式で公開しています。
http://d.hatena.ne.jp/changes.xml
他には、はてなキーワード API やキーワード連
想語 API などを公開しています。
この xml ファイルからはてなダイアリーの URL
を取得して、巡回します。
xml は EXtensible Markup Language の略
16. はてなダイアリーから
作成したプログラムは、
http://d.hatena.ne.jp/gepuro/20110604
に公開しています。
システムコールを使用したので、 linux からで
ないと使えないです。 windows から使用する場
合は、 xml 取得の箇所を変更してください。
17. はてなダイアリーから
取得の流れ
1.はてなダイアリーの更新順一覧をダウンロード
2.リンク部分を解析
3.リンク先のブログへアクセス
4.ブログ内のリンクを解析し、各記事をダウン
ロードする。
19. googlenews から
google ニュースでは、最新トピック等を RSS で
取得することができる。
http://news.google.com/news?ned=us&ie=UTF-8&oe=UTF-8&q=&output=atom&num=30&hl=ja
また、 Yahoo!JAPAN では、 http://public.news.yahoo.co.jp/rss/
でニュースを取得することができる。
20. googlenews から
作成したプログラムは、
http://d.hatena.ne.jp/gepuro/20110604/1307146937
に公開しました。
プログラムの流れ
googlenews の RSS を取得したのち、そこに示さ
れるページにアクセスする。
Python で、 feedparser というライブラリを使
用する事によって、 RSS を取得した。
22. 2ch から
カテゴリ毎にスレッド一覧を得る事ができる。
例: http://kamome.2ch.net/anime/subback.html
ここに示されるスレッドを巡回して、コーパスを収集した
作成したプログラムは、
http://d.hatena.ne.jp/gepuro/20110604/1307146938
に公開しました。
23. 2ch から
2ch 等の掲示板では、投稿者名(例:名無し)
や投稿日時などが大量に含まれているので、解
析する前にこれらの情報を取り除いた方が良い
ケースがあるので、注意するべき。
AA( アスキーアート)を正確に解析できるよう
になれたら良いですね。良い方法がありました
ら、ご教授願います。
何もしない状態では、記号ばかりが混入してし
まいます。
25. pdf から
Pdf からテキストデータを抽出する。
PDFMiner を使用しました。
http://www.unixuser.org/~euske/python/pdfminer/index.html
使い方
$ pdf2txt -o output.txt input.pdf
また、
$pdf2txt -o output.html input.pdf
とすることで、 html 形式に出力することもできる。
26. pdf から
PDFMiner のインストール方法
# easy_install pdfminer
または、
公式サイトよりソフトウェアをダウンロードして、イ
ンストールする。
28. ゴミ取りの例
今回書いたスクリプトによって、収集した html ファ
イルを解析できる状態にする
html ファイルより正規表現を使って
p = re.compile(r'<.*?>')
text = p.sub('',html)
のようにしてタグの削除すと、 <script>...</script>
の ... 部分が残ってしまった。
29. ゴミ取りの例
html ファイルに対して、直接 MeCab にかけて、タ
グ等をバラバラにする。
その後、各行ごとに対して、日本語かどうかを判別
して、タグ等の情報を取り除いた。
作成したプログラムは
http://d.hatena.ne.jp/gepuro/20110604/1307151973
に公開しました。
30. ゴミ取りの例
とても高い精度で、 html に含まれる必要の無い情報
を削除することができた。
デメリット:削除するべきで無い英語が削除される。
日本語だけを残すには、文字コードを使用した判別し
た。
「 ISO 8859 」という文字コードに変更できない、か
つ、 shift-jis に変更できる。
この状態では、「」や。のような句読点が含まれたま
まなので、解析にかける前にさらにゴミ取りをする必
要がある。
31. ゴミ取りの例
とても高い精度で、 html に含まれる必要の無い情報
を削除することができた。
デメリット:削除するべきで無い英語が削除される。
日本語だけを残すには、文字コードを使用した判別し
た。
「 ISO 8859 」という文字コードに変更できない、か
つ、 shift-jis に変更できる。
この状態では、「」や。のような句読点が含まれたま
まなので、解析にかける前にさらにゴミ取りをする必
要がある。
32. ゴミ取りの例
Python では、 Beatutiful Soup や lxml のよう
に、 html ファイルを扱う為のライブラリがありま
す。
lxml で、 html タグの削除を行いましたが、 <script>
の部分が残ってしまいました。
Beatutiful Soup では試していません。
33. 参考資料
出版 O'RELLY
入門 自然言語処理
Steven Bird, Ewan Klein, Edward Loper 著
萩原 正人、中山 敬広、水野 貴明 訳