Nltk for biginer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Nltk for biginer

on

  • 11,539 views

 

Statistics

Views

Total Views
11,539
Views on SlideShare
4,486
Embed Views
7,053

Actions

Likes
6
Downloads
38
Comments
0

8 Embeds 7,053

http://d.hatena.ne.jp 6330
http://blog.restartr.com 675
http://webcache.googleusercontent.com 41
http://wiki.onakasuita.org 2
http://translate.googleusercontent.com 2
http://search.yahoo.co.jp 1
http://www.google.com 1
http://v.restartr.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Nltk for biginer Presentation Transcript

  • 1. にこにこテキストマイニング勉強会 初めての NLTKーツイートでの累積頻度ー 早川 敦士
  • 2. http://www.slideshare.net/gepuro/ に資料が公開されています。
  • 3. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 4. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 5. 自己紹介 早川 敦士電気通信大学電気通信学部 システム工学科 二年 TwitterID: @gepuroテキストマイニング初心者 プログラミング初心者
  • 6. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 7. NLTK について Natural Language Toolkit の略 ペンシルバニア大学で、コンピュータ言語学コーパスの一部として作成 ● 単純化 ● 一貫性 ● 拡張性 ● モジュール性 を目標にデザインされた。
  • 8. NLTK について 単純化 退屈で面倒な作業を少なくするユーザーへ NLP の実用知識を与える 直感的なフレームワーク
  • 9. NLTK について 一貫性一貫したインターフェイスとデータ構造 推測しやすいメソッド名
  • 10. NLTK について 拡張性新しいソフトウェアモジュールが容易に対応可能であるような構造
  • 11. NLTK について モジュール性ツールキットの他の部分の理解を必要なしで、独 立して利用できるコンポーネント
  • 12. NLTK について 要は、使いやすいように 作った
  • 13. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 14. ツイートの取得 ぺちゃくちゃ Reader で取得 Windows で使用可能です。python-twitter なるものがあるそうだけど、 知識不足の為、断念。 一度目の挫折 orz
  • 15. ツイートの取得 まずは、ダウンロード。しみず工房 http://pcbase.web.infoseek.co.jp/ 過去の投稿を取得後、 csv ファイルに出力
  • 16. ツイートの取得 csv ファイルには、● 何番目のツイートか ● 発言ユーザー ● ツイート内容● ツイートの投稿時間 ● 謎の数字
  • 17. ツイートの取得 今回、使用した情報は、 自分のツイート内容です。投稿時間等の他の情報は使用しませんでした。
  • 18. ツイートの取得Python で csv を使おうとしたら苦戦しました。 ↓ Google Document を使用した。 二度目の挫折 orz
  • 19. ツイートの取得必要な無いツイート以外の内容を削除したのち、 tcv 形式で出力しました。 これで、とりあえず一段落。
  • 20. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 21. MeCab で分かち書き分かち書きするなら、 MeCab でしょ!
  • 22. MeCab で分かち書きという訳で、 MeCab のインストール $ sudo apt-get install mecab Ubuntu10.10 で動作確認
  • 23. MeCab で分かち書き$ mecab -Owakati input.tcv -o twitter.txt これで分かち書きされる。
  • 24. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 25. NLTK を用いて累積頻度プロット まずは、インストールを、 $ sudo apt-get install python-nltk 参考書を見ながら、 プログラムを書いてみました。
  • 26. NLTK を用いて累積頻度プロット#!/usr/bin/pythonimport sysimport nltkfrom nltk.book import *from nltk.corpus import PlaintextCorpusReaderreload(sys)sys.setdefaultencoding(utf-8)corpus_root = /home/dedicatus545/Dropbox/Documents/nlp/wordlist = PlaintextCorpusReader(corpus_root,twitter.txt,encoding=utf-8)fdist = FreqDist(wordlist.words(twitter.txt))fdist.plot(40,cumulative=True)
  • 27. NLTK を用いて累積頻度プロット
  • 28. NLTK を用いて累積頻度プロット 文字化け!!
  • 29. NLTK を用いて累積頻度プロット しかも、文字化けだけで無く、 y 軸が割合では無く、 カウントで表示されている。 三度目の挫折 orz
  • 30. NLTK を用いて累積頻度プロット しかし、ここは譲ることができない。 という訳で、文字化けの修正と、 y 軸を割合で表示できるよう にしました。
  • 31. NLTK を用いて累積頻度プロット どうやら、NLTK ツールキットの内部的な問題なので、 ライブラリにパッチを当ててみました。
  • 32. NLTK を用いて累積頻度プロット グラフ出力のメソッドは、/usr/lib/pymodules/python2.6/nltk/probability.py を参照してます。
  • 33. NLTK を用いて累積頻度プロット 変更した内容は、 ascii コードでの処理を utf-8 に変更 累積の割合で表示できるように、引数を追加 フォントの指定による文字化けの回避です。http://www.mma.club.uec.ac.jp/~hayakawa/nltk_probability_plot.txt に掲載しました。
  • 34. NLTK を用いて累積頻度プロット#!/usr/bin/pythonimport nltkfrom nltk.book import *from nltk.corpus import PlaintextCorpusReadercorpus_root = /home/dedicatus545/Dropbox/Documents/nlp/wordlist = PlaintextCorpusReader(corpus_root,twitter.txt,encoding=utf-8)fdist = FreqDist(wordlist.words(twitter.txt))fdist.plot(40,cumulative=True,percent=True)   # 上位 40 単語でプロットを実行しました。
  • 35. NLTK を用いて累積頻度プロット
  • 36. NLTK を用いて累積頻度プロット助詞や句読点で大半を占めていることが分かる。 自分のツイートの特徴的なものが 出てこなかった。
  • 37. NLTK を用いて累積頻度プロット そこで、上位 100 語を出力してみた。 fdist.tabulate(100) で表示される。
  • 38. NLTK を用いて累積頻度プロット 特徴的な語は、 Http, 今日、何、時間、僕、 勉強、 R 、 fkhr 、 mlka 、 けど、良い、アニメ、明日 頻度順
  • 39. NLTK を用いて累積頻度プロット アニメ!
  • 40. NLTK を用いて累積頻度プロット しかし、アニメより、 勉強という語の方が出現頻度が高くて、 安心しました。
  • 41. AGENDA●自己紹介●NLTK について●ツイートの取得●MeCab でツイートの分かち書き●NLTK を用いて累積頻度プロット●参考資料
  • 42. 参考資料 出版  ORELLY   入門 自然言語処理Steven Bird, Ewan Klein, Edward Loper 著萩原 正人、中山 敬広、水野 貴明 訳
  • 43. おわりご清聴ありがとうございました。