All Articles

nltkのtokenize.RegexpTokenizer()に引数を与えてtokenizeの条件を設定する

普通にnltk.tokenize.word_tokenize(text)としても良いのだがこれだと、

‘I’m a student.’ -> [‘I’, “'m”, ‘a’, ‘student’, ‘.’]

となって場合によっては都合が悪い。

そんな時はnltk.tokenize.RegexpTokenizerを使うと自分で分け方を正規表現を用いて指定できる。

上の分を例にして考えると、

from nltk.tokenize import RegexpTokenizer

tokenizer = RegexpTokenizer("[\w']+")

tokenizer.tokenize("I'm a student.")

とすると

[“I’m”, ‘a’, ‘student’]

になる。

句読点などを残したい際にはand演算子で正規表現を加えていくと良い。

tokenizer = RegexpTokenizer("[\w']+|[\.]")

[参考サイト]

impythonist

Published 16 Jun 2016