nltkを使ってみた

こんにちは。

Pythonの自然言語処理モジュールnltkを使ってみた。

よくやる操作
txt -> sent -> tokens -> [token, postag]

1.txt -> sent

fp = open(filename)
raw_text = nltk.filestring(fp)
sentences = nltk.sent_tokenize(raw_text)

以下と等価

sentences = nltk.sent_tokenize(nltk.filestring(open(filename)))

2.sent -> tokens

tokens = [nltk.word_tokenize(sent) for sent in sentences]

3.tokens -> (token, pos)

tokenpos = nltk.pos_tag(tokens)

まとめ

1-3は以下のコードと等価。

[nltk.pos_tag(tokens) for tokens in [nltk.word_tokenize(sent) for sent in nltk.sent_tokenize(nltk.filestring(open(filename)))]]

今まで自分で書いてたのがあほらしくなった(/_;)。
これを「再発明」というのですね。
今度からやりたいことを実現するツールがあるかチェックしないとな。
「思いついたことのほとんどはもう既に誰かがやっている。」

疑問

ngram作りたいんですけど、nltkにはtrigramまでしかない?

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中