23

私はNLTK word_tokenizerを使用して文を単語に分割しています。

この文をトークン化したい:

في_بيتنا كل شي لما تحتاجه يضيع ...ادور على شاحن فجأة يختفي ..لدرجة اني اسوي نفسي ادور شيء 

私が書いているコードは次のとおりです。

import re
import nltk

lex = u" في_بيتنا كل شي لما تحتاجه يضيع ...ادور على شاحن فجأة يختفي ..لدرجة اني اسوي نفسي ادور شيء"

wordsArray = nltk.word_tokenize(lex)
print " ".join(wordsArray)

問題は、word_tokenize関数が単語で分割されないことです。代わりに、文字で分割され、出力は次のようになります。

"ف ي _ ب ي ت ن ا ك ل ش ي ل م ا ت ح ت ا ج ه ي ض ي ع ... ا د و ر ع ل ى ش ا ح ن ف ج أ ة ي خ ت ف ي .. ل د ر ج ة ا ن ي ا س و ي ن ف س ي ا د و ر ش ي ء"

何か案は ?

私がこれまでに到達したこと:

ここのテキストを試してみると、文字でトークン化されているように見えました。ただし、他のトークナイザーが正しくトークン化しました。word_tokenizeそれは英語専用という意味ですか?それはほとんどのNLTK機能に当てはまりますか?

4

2 に答える 2

11

私は常にを使用することをお勧めしnltk.tokenize.wordpunct_tokenizeます。http://text-processing.com/demo/tokenize/でNLTKトークナイザーの多くを試して、自分の目で確かめることができます。

于 2012-10-24T00:02:57.597 に答える
2

これは私のコードで得られる出力ですが、ユニコードはpython 2ではうまくいかず、3.5を使用したことを思い出します

nltk.word_tokenize('في_بيتنا كل شي لما تحتاجه يضيع ...ادور على شاحن فجأة يختفي ..لدرجة اني اسوي نفسي ادور شيء ')

['في_بيتنا'、'كل'、'شي'、'لما'、'تحتاجه'、'يضيع'、'...'、'ادور'、'على'、'شاحن'、'فجأة'、'يختفي' 、'..لدرجة'、'اني'、'اسوي'、'نفسي'、'ادور'、'شيء']

于 2017-05-17T15:17:13.860 に答える