Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Collecting corpus

14,412 views

Published on

  • Be the first to comment

Collecting corpus

  1. 1. 第 3 回さくさくテキストマイニング勉強会 テキストマイニングの前の コーパス収集 早川 敦士
  2. 2. http://www.slideshare.net/gepuro/ に資料が公開されています。
  3. 3. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  4. 4. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  5. 5. 自己紹介 早川 敦士電気通信大学電気通信学部 システム工学科 三年 TwitterID: @gepuro 統計に興味津々なお年頃コンピュータサークルに所属今年から英語サークルにもテキストマイニング初心者
  6. 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
  7. 7. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  8. 8. 前回の振り返り第二回さくさくテキストマイニング勉強会では、 NLTK●を使用して条件付き頻度分布を作成した。条件付きとは、異なる条件ごとに計算されていること●を意味する。Twitter のパブリックタイムラインと自分の TL の比較●を行った。
  9. 9. 条件付き頻度分布のプロット
  10. 10. 前回の振り返り苦労した事●Twitter からデータを取得するのに、予想以上の●時間がかかったこと。分析対象としていないデータを取り除くこと●(日本語の抽出、ノイズの除去)そこで、今回はコーパス収集を目的に発表させて頂きます。
  11. 11. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  12. 12. テキストマイニングに必要なものテキストマイニングを行う前には、大量のテキスト●データを必要とする。しかしながら、これらを取得するには手間がかかる。●身近なテキストデータを手軽に取得したい!●
  13. 13. テキストマイニングに必要なもの 身近なテキストデータの例 Twitter ブログ wikipedia ニュースサイト 2ch 等の掲示板 などなど・・・ 今回は、ブログ、ニュース、 2ch 、 pdf から コーパスを集めてみました。
  14. 14. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  15. 15. はてなダイアリーから はてなダイアリーでは、最近更新のあったブロ グを xml 形式で公開しています。 http://d.hatena.ne.jp/changes.xml 他には、はてなキーワード API やキーワード連 想語 API などを公開しています。 この xml ファイルからはてなダイアリーの URL を取得して、巡回します。 xml は EXtensible Markup Language の略
  16. 16. はてなダイアリーから 作成したプログラムは、 http://d.hatena.ne.jp/gepuro/20110604 に公開しています。 システムコールを使用したので、 linux からで ないと使えないです。 windows から使用する場 合は、 xml 取得の箇所を変更してください。
  17. 17. はてなダイアリーから 取得の流れ1.はてなダイアリーの更新順一覧をダウンロード2.リンク部分を解析3.リンク先のブログへアクセス4.ブログ内のリンクを解析し、各記事をダウン ロードする。
  18. 18. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  19. 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. 20. googlenews から 作成したプログラムは、 http://d.hatena.ne.jp/gepuro/20110604/1307146937 に公開しました。 プログラムの流れ googlenews の RSS を取得したのち、そこに示さ れるページにアクセスする。 Python で、 feedparser というライブラリを使 用する事によって、 RSS を取得した。
  21. 21. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  22. 22. 2ch から カテゴリ毎にスレッド一覧を得る事ができる。 例: http://kamome.2ch.net/anime/subback.html ここに示されるスレッドを巡回して、コーパスを収集した 作成したプログラムは、 http://d.hatena.ne.jp/gepuro/20110604/1307146938 に公開しました。
  23. 23. 2ch から 2ch 等の掲示板では、投稿者名(例:名無し) や投稿日時などが大量に含まれているので、解 析する前にこれらの情報を取り除いた方が良い ケースがあるので、注意するべき。 AA( アスキーアート)を正確に解析できるよう になれたら良いですね。良い方法がありました ら、ご教授願います。 何もしない状態では、記号ばかりが混入してし まいます。
  24. 24. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  25. 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. 26. pdf から PDFMiner のインストール方法 # easy_install pdfminer または、 公式サイトよりソフトウェアをダウンロードして、イ ンストールする。
  27. 27. AGENDA●自己紹介●前回の振り返り●テキストマイニングに必要なもの●はてなダイアリーから●google news から●2ch から●pdf から●ゴミ取りの例●参考資料
  28. 28. ゴミ取りの例 今回書いたスクリプトによって、収集した html ファ イルを解析できる状態にする html ファイルより正規表現を使って p = re.compile(r<.*?>) text = p.sub(,html) のようにしてタグの削除すと、 <script>...</script> の ... 部分が残ってしまった。
  29. 29. ゴミ取りの例 html ファイルに対して、直接 MeCab にかけて、タ グ等をバラバラにする。 その後、各行ごとに対して、日本語かどうかを判別 して、タグ等の情報を取り除いた。 作成したプログラムは http://d.hatena.ne.jp/gepuro/20110604/1307151973 に公開しました。
  30. 30. ゴミ取りの例 とても高い精度で、 html に含まれる必要の無い情報 を削除することができた。 デメリット:削除するべきで無い英語が削除される。 日本語だけを残すには、文字コードを使用した判別し た。 「 ISO 8859 」という文字コードに変更できない、か つ、 shift-jis に変更できる。 この状態では、「」や。のような句読点が含まれたま まなので、解析にかける前にさらにゴミ取りをする必 要がある。
  31. 31. ゴミ取りの例 とても高い精度で、 html に含まれる必要の無い情報 を削除することができた。 デメリット:削除するべきで無い英語が削除される。 日本語だけを残すには、文字コードを使用した判別し た。 「 ISO 8859 」という文字コードに変更できない、か つ、 shift-jis に変更できる。 この状態では、「」や。のような句読点が含まれたま まなので、解析にかける前にさらにゴミ取りをする必 要がある。
  32. 32. ゴミ取りの例 Python では、 Beatutiful Soup や lxml のよう に、 html ファイルを扱う為のライブラリがありま す。 lxml で、 html タグの削除を行いましたが、 <script> の部分が残ってしまいました。 Beatutiful Soup では試していません。
  33. 33. 参考資料 出版  ORELLY   入門 自然言語処理Steven Bird, Ewan Klein, Edward Loper 著 萩原 正人、中山 敬広、水野 貴明 訳
  34. 34. おわりご清聴ありがとうございました。

×