nltk.tokenize.casual and emojis

Я пытаюсь токенизировать простую строку:

Вот улыбающееся лицо:

Мой код:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from nltk.tokenize.casual import TweetTokenizer

s = u"Here is a smiling face: !"

s1 = TweetTokenizer().tokenize(s)
print (s1)

И вот что я получаю:

[u'Here', u'is', u'a', u'smiling', u'face', u':', u'\ud83d', u'\ude00', u'!']

Разве смайлик не должен возвращаться как ОДИН жетон (это из-за "узкого телосложения"?)? И как мне объединить \ud83d и \ude00 и распечатать их, чтобы я мог видеть, что результаты содержали улыбающееся лицо???

Я использую Python 2.7 и NLTK 3.0.5 на OS X Yosemite 10.10.5.

Благодарю.

0 ответов

Вы можете просто обновить свой NLTK и он должен работать.

# upgrade nltk
pip install nltk --upgrade

Если по-прежнему не работает, возможно, сейчас самое время переключиться на Python3 в качестве опоры для Python2 и связанные библиотеки не поддерживаются.

Другие вопросы по тегам