f。 NLTK github issue #1214、NLTK =にかなりの数の代替トークナイザがあります。)
@jonsafari toktok tokenizerのNLTKポートを使用して:
>>> import nltk
>>> nltk.download('perluniprops')
[nltk_data] Downloading package perluniprops to
[nltk_data] /Users/liling.tan/nltk_data...
[nltk_data] Package perluniprops is already up-to-date!
True
>>> nltk.download('nonbreaking_prefixes')
[nltk_data] Downloading package nonbreaking_prefixes to
[nltk_data] /Users/liling.tan/nltk_data...
[nltk_data] Package nonbreaking_prefixes is already up-to-date!
True
>>> from nltk.tokenize.toktok import ToktokTokenizer
>>> toktok = ToktokTokenizer()
>>> sent = u"¿Quién eres tú? ¡Hola! ¿Dónde estoy?"
>>> toktok.tokenize(sent)
[u'\xbf', u'Qui\xe9n', u'eres', u't\xfa', u'?', u'\xa1Hola', u'!', u'\xbf', u'D\xf3nde', u'estoy', u'?']
>>> print " ".join(toktok.tokenize(sent))
¿ Quién eres tú ? ¡Hola ! ¿ Dónde estoy ?
>>> from nltk import sent_tokenize
>>> sentences = u"¿Quién eres tú? ¡Hola! ¿Dónde estoy?"
>>> [toktok.tokenize(sent) for sent in sent_tokenize(sentences, language='spanish')]
[[u'\xbf', u'Qui\xe9n', u'eres', u't\xfa', u'?'], [u'\xa1Hola', u'!'], [u'\xbf', u'D\xf3nde', u'estoy', u'?']]
>>> print '\n'.join([' '.join(toktok.tokenize(sent)) for sent in sent_tokenize(sentences, language='spanish')])
¿ Quién eres tú ?
¡Hola !
¿ Dónde estoy ?
あなたは、コードを少しハックしてhttps://github.com/nltk/nltk/blob/develop/nltk/tokenize/toktok.py#L51でu'\xa1'
を追加する場合は、あなたが得ることができる必要があります:
[[u'\xbf', u'Qui\xe9n', u'eres', u't\xfa', u'?'], [u'\xa1', u'Hola', u'!'], [u'\xbf', u'D\xf3nde', u'estoy', u'?']]
は、私にはよさそうだが、あなたは必要なことこれを行うには、nltkの部分のエラーのように見えるかもしれません。おそらくあなたに報告してください。 – Copperfield
ご質問に関しては、SOとgithubの間のクロスポストを避けてください。https://github.com/nltk/nltk/issues/1558 – alvas