Выполняет ли keras-tokenizer задачу лемматизации и stemming? - PullRequest
0 голосов
/ 12 июня 2019

Обеспечивает ли Keras Tokenizer такие функции, как определение границ и лемметизация? Если это так, то как это сделать? Нужно интуитивное понимание. Кроме того, что делает text_to_sequence в этом?

1 Ответ

0 голосов
/ 12 июня 2019

Может быть некоторая путаница, что делает токенизатор , соответственно, что такое токенизация .Токенизация разбивает строку на более мелкие объекты, такие как слова или отдельные символы.Следовательно, они также называются токенами . Википедия предоставляет хороший пример:

The quick brown fox jumps over the lazy dog становится:

<sentence>
  <word>The</word>
  <word>quick</word>
  ...
  <word>dog</word>
</sentence>

Лемматизация ( группирует воедино наклоненные формы слова -> ссылка ) или основа ( процесс приведения слов с перегибом (или иногда производных) к их основанию слова -> ссылка ) - это то, что вы делаете во время предварительной обработки.Токенизация может быть частью процесса предварительной обработки до или после (или обоих) лемматизации и обработки.

В любом случае, Keras не является платформой для полноценной предварительной обработки текста.Следовательно, вы подаете уже очищенные, лемматизированные и т. Д. Данные в Keras. Относительно вашего первого вопроса: Нет, Keras не предоставляет таких функциональных возможностей, как лемматизация или определение по стеммингу.

Что понимает Keras под Предварительная обработка текста подобно здесь, в документах - функциональность для подготовки данных для подачи в модель Keras (например, в последовательную модель).Вот, например, почему Keras-Tokenizer делает это:

Этот класс позволяет векторизовать текстовый корпус, превращая каждый текст в последовательность целых чисел (каждое целое число являетсяиндекс токена в словаре) или в вектор, где коэффициент для каждого токена может быть двоичным, основанным на количестве слов, основанном на tf-idf ...

Например, векторизациейвходные строки и преобразование их в числовые данные, которые вы можете передать в качестве ввода в, в случае Keras, нейронной сети.

Что означает text_to_sequence, можно извлечь из этого: [...] последовательность целых чисел (каждое целое число является индексом токена в словаре) [...] .Это означает, что ваши прежние строки могут впоследствии быть последовательностью (например, массивом) числовых целых чисел вместо фактических слов.

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

Кроме того, text_to_word_sequence() ( docs ) также обеспечивает такую ​​токенизацию, но не векторизует ваши данные в числовые векторы и возвращает массив вашихтокенизированные строки.

Преобразует текст в последовательность слов (или токенов).

...