[[TopPage]] +NLTK --pythonの対話シェルモード python --対話シェルモードで次のコマンドを入力する import nltk nltk.download() ---NLTK Downloader d) Download l) List c) Config h) Help q) Quit --------------------------------------------------- --- d) Download l) List c) Config h) Help q) Quit Downloader> d ---Download which package (l=list; x=cancel)? Identifier> book +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) [#v6d7fa08] --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