TopPage

  1. NLTK
    • pythonの対話シェルモード
      	python
    • 対話シェルモードで次のコマンドを入力する
      	import nltk
      	nltk.download()
      • NLTK Downloader
      • d) Download l) List c) Config h) Help q) Quit
        	Downloader> d
      • Download which package (l=list; x=cancel)?
        	Identifier> book
  1. NLTK Japanese Corpora - NLTKで使える日本語コーパス
    • http://lilyx.net/pages/nltkjapanesecorpus.html
      	wget http://nlp.kuee.kyoto-u.ac.jp/~hasimoto/KNBC_v1.0_090925.tar.bz2
      	tar xjvf KNBC_v1.0_090925.tar.bz2
      	mv KNBC_v1.0_090925 knbc
      	mv knbc nltk_data/corpora
      	cd nltk_data/corpora/ <--- ディレクトリ移動
      	ls <-- このディレクトリ knbc

NLTKのドキュメントで関係ありそうな箇所(筆跡:Ashihara)

  • SyntaxCorpusReader?:http://nltk.googlecode.com/svn/trunk/doc/api/nltk.corpus.reader.api.SyntaxCorpusReader-class.html
    • SyntaxCorpusReader?を継承してKNPCorpusReader?は構築されている。
  • CorpusReader?:http://nltk.googlecode.com/svn/trunk/doc/api/nltk.corpus.reader.api.CorpusReader-class.html
    • SyntaxCorpusReader?の継承元(スーパークラス)です。サブクラスの中で使えるものがあるかもしれません。
    • 上記のサブクラス一覧:対象コーパスごとに継承して使っているようです。
             * SyntaxCorpusReader
             * , xmldocs.XMLCorpusReader
             * , cmudict.CMUDictCorpusReader
             * , plaintext.PlaintextCorpusReader
             * , tagged.TaggedCorpusReader
             * , chunked.ChunkedCorpusReader
             * , conll.ConllCorpusReader
             * , ieer.IEERCorpusReader
             * , ipipan.IPIPANCorpusReader
             * , indian.IndianCorpusReader
             * , nombank.NombankCorpusReader
             * , ppattach.PPAttachmentCorpusReader
             * , propbank.PropbankCorpusReader
             * , senseval.SensevalCorpusReader
             * , string_category.StringCategoryCorpusReader
             * , wordlist.WordListCorpusReader
             * , switchboard.SwitchboardCorpusReader
             * , timit.TimitCorpusReader
             * , toolbox.ToolboxCorpusReader
             * , wordnet.WordNetCorpusReader
             * , wordnet.WordNetICCorpusReader
             * , ycoe.YCOECorpusReader
  • NLTK Japaneseの動作について
    • KNBC_v1.0_090925をknbcという名前に変更(コマンド:mv KNBC_v1.0_090925 knbc)
    • nltk_dataの下ではなく、nltk_data/corporaの下に置く。(コマンド:mv knbc nltk_data/corpora)
  • NLTK Japaneseでnltk.Text.generate()を使う。
    • knbcorpus.pyのdemo関数の下にでも追加してみて下さい。
    • knbc = LazyCorpusLoader?('knbc/corpus1', KNBCorpusReader?, sorted(fileids, key=_knbc_fileids_sort), encoding='euc-jp') の下です。
         sents = knbc.words()
         sentList = []
         for sent in sents:
             for word in sent:
                 sentList.append(word.encode('utf-8'))#wordはunicode型なので文字型に変換する。
         text = nltk.Text(sentList)
         text.generate()
         >>>>>>出力例
         [ 携帯 電話 会社 識別 番号 を 知ら ない が 、 年
         ごと に 自動 で フォルダ 分け さ れて る みんな も
         お 勧め です 。 このような 居酒屋 は 不可欠です
         ね 。 [ スポーツ ] 運動 は 好きな 方 な のです
         が 、 携帯 電話 機種 の キー が 隣接 して おり 、
         それ は ひるがえせば 携帯 が 鎮座 して いて 充電
         の 持ち が 悪く なって きた 。 彼女 は ぼく が 彼
         ら の サービス を 実施 中 です 。 よく ドンくさい
         って 言わ れる 始末 。 ■ の 「 お 遊び 」 的な
         ツール から 緊急
    • unicode型について:http://lab.hde.co.jp/2008/08/pythonunicodeencodeerror.html