Что лучше использовать keras.preprocessing.tokenizer или nltk.tokenize - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над проблемой мультиклассовой классификации с Keras.Пытался использовать Keras tokenize, но думаю, что nltk.tokenizer будет лучшим решением для моей проблемы.Я не нашел ни одной статьи, которая могла бы описать разницу в этих двух токенизаторах, в чем разница и точность предварительной обработки текста между ними?

1 Ответ

1 голос
/ 03 апреля 2019

По умолчанию они оба используют токенизацию на основе регулярных выражений. Разница заключается в их сложности:

  • Keras Tokenizer просто заменяет определенные знаки пунктуации и разделяет оставшийся пробел.
  • NLTK Tokenizer использует токенайзер Treebank использует регулярные выражения для токенизации текста, как в Penn Treebank. Эта реализация является портом сценария tokenizer sed, написанного Робертом Макинтайром. и доступный в http://www.cis.upenn.edu/~treebank/tokenizer.sed.

Они оба очень быстрые, так как они просто запускают регулярные выражения. Если у вас есть очень простой текст с не слишком большим количеством знаков препинания или неупорядоченных символов, то Keras может быть самым простым выбором.

Если вы действительно хотите использовать нейронную сеть, которая может правильно анализировать числа, даты и т. Д. И потенциально выполнять тегирование части речи, вы можете использовать распознавание сущностей:

  • Stanford CoreNLP , который предоставляет полный конвейер для обработки текста, поиска зависимостей, распознавания прав доступа и т. Д.
  • SpaCy также является полным конвейером Python NLP, который дает вам аналогичные результаты, а также загружает соответствующие векторы слов, такие как GloVe.

Вышеуказанные два медленнее, чем любые методы на основе регулярных выражений, но это зависит от исходного текста, который вы хотите обработать.

...