2016-01-11 24 views
5

文章を単語に分割するのにnltkを使用しています。例えばnltkを使用して単語をトークン化するときにアポストロフィーで分割しないようにする

nltk.word_tokenize("The code didn't work!") 
-> ['The', 'code', 'did', "n't", 'work', '!'] 

トークン化はワード境界を分割する際にうまく機能します。単語からの句読点の分割]がありますが、ときには分割が多くなり、単語の末尾にある修飾語句が別々の部分として扱われます。たとえば、didn'tdidn'tの部分に分割され、i'veI'veに分割されます。明らかに、これは、そのような単語が、nltkが使用している元のコーパスで2つに分割され、場合によっては望ましいことがあるためです。

この動作がオーバーライドされている方法はありますか?可能性としては、nltk'sMWETokenizerが複数の単語をフレーズに集約する方法と同じように、ただしこの場合はワードコンポーネントを単語に集約するだけです。

また、ワードパーツを分割しない別のトークナイザがありますか?

答えて

7

これは、実際にworking as expectedです:正しい/期待される出力である

。単語のトークン化では、収縮は意味があるので2つの単語とみなされます。

異なるnltkトークナイザが異なり英語収縮を扱います。

関連する問題