Токенизация
Что такое токенизация?? Короче говоря, он разбивает тексты на слова или предложения…
Здесь мы рассмотрим различные токенизаторы, которые мы можем использовать в НЛП ………
- Белое пространство
text = 'Earth was born around 4.54 billion years ago.'
print(text.split())
# output
# ['Earth', 'was', 'born', 'around', '4.54', 'billion', 'years', 'ago.']
2. Конкретное разделение
То же, что и пробел, но здесь мы даем splitлюбой сплиттер, какой захотим.
text = 'Egypt, a country linking northeast Africa with the Middle East, dates to the time of the pharaohs.'
print(text.split(','))
# output
# ['Egypt', ' a country linking northeast Africa with the Middle East', ' dates to the time of the pharaohs.']
3. НЛТК
NLTK — это ведущая платформа для создания программ Python для работы с данными человеческого языка. Есть много токенизаторов, которые мы можем использовать
l) word_toknizer: решает проблему в функции разделения:
ll) sent_tokenize: он использует разделенный текст в качестве моделей, которые он обучал ранее.
lll) wordpunct_tokenize: Здесь он разделяет все слова и знаки препинания.
lV) TreebankWordTokenizer: с другой стороны, он разбивает текст, как эти знаки препинания ?!.,;, это множество общих правил для английских слов.
V) TweetTokenizer: он разбивает текст как на эти знаки препинания ?!.,;, так и на смайлики.
Vl) MWETokenizer: здесь мы можем добавить токен по своему усмотрению, поскольку этот токенизатор add_mweпозволяет нам это сделать .
4. TextBlob
TextBlob — библиотека Python (2 и 3) для обработки текстовых данных . Он предоставляет простой API для погружения в общие задачи обработки естественного языка (NLP), такие как маркировка частей речи, извлечение именной фразы, анализ тональности, классификация, перевод и многое другое.
from textblob import TextBlob
text="""But I'm glad you'll see me as I am. Above all, I wouldn't want people to think that I want to
prove anything. I don't want to prove anything, I just want to live; to cause no evil to anyone but myself.
I have that right, haven't I? Leo Tolstoy """
blob_object= TextBlob(text) # Word tokenization of the text
text_words = blob_object.words # To see all tokens
print(text_words) # To count the number of tokens
print(len(text_words))
# output
# ['But', 'I', "'m", 'glad', 'you', "'ll", 'see', 'me', 'as', 'I', 'am', 'Above', 'all', 'I', 'would', "n't", 'want', 'people', 'to', 'think', 'that', 'I', 'want', 'to', 'prove', 'anything', 'I', 'do', "n't", 'want', 'to', 'prove', 'anything', 'I', 'just', 'want', 'to', 'live', 'to', 'cause', 'no', 'evil', 'to', 'anyone', 'but', 'myself', 'I', 'have', 'that', 'right', 'have', "n't", 'I', 'Leo', 'Tolstoy']
# 55
5. просторный
spaCy — это бесплатная библиотека с открытым исходным кодом для обработки естественного языка в Python . Он включает в себя NER, теги POS, анализ зависимостей, векторы слов и многое другое.
6. Генсим
Gensim: это библиотека с открытым исходным кодом на питоне, написанная Радимом Рехуреком, которая используется в неконтролируемом тематическом моделировании и обработке естественного языка . Он предназначен для извлечения смысловых тем из документов. Он может обрабатывать большие текстовые коллекции.
7. Керас
Keras — библиотека с открытым исходным кодом, одна из самых надежных сред глубокого обучения. Для выполнения токенизации мы используем: метод text_to_word_sequence из класса Class Keras.preprocessing.text. Отличительной особенностью Keras является преобразование алфавита в нижний регистр перед его токенизацией, что может значительно сэкономить время.
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.text import text_to_word_sequence
text = "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe. #Albert Einstein"
tokinzer = Tokenizer(num_words=20) # as recommended we put here the max text length we have
tokinzer.fit_on_texts(text)
tokens = text_to_word_sequence(text)
print(tokens)
# output
# ['two', 'things', 'are', 'infinite', 'the', 'universe', 'and', 'human', 'stupidity', 'and', "i'm", 'not', 'sure', 'about', 'the', 'universe', '', 'albert', 'einstein']
8. Токенизация на основе подслов
Популярная токенизация — это токенизация на основе подслов, которая представляет собой решение между токенизацией на основе слов и символов. Основная идея состоит в том, чтобы решить проблемы, с которыми сталкиваются токенизация на основе слов (очень большой размер словаря, большое количество токенов OOV и разные значения очень похожих слов) и токенизация на основе символов (очень длинные последовательности и менее значимые отдельные токены).
Алгоритмы токенизации на основе подслов используют следующие принципы.
- Не разбивайте часто используемые слова на более мелкие подслова.
- Разделите редкие слова на более мелкие значащие подслова.
Проблемы
Давайте обсудим проблемы и ограничения задачи токенизации.
Как правило, эта задача используется для текстов, написанных на английском или французском языках, где эти языки разделяют слова с помощью пробелов или знаков препинания для определения границ предложений. К сожалению, этот метод неприменим для других языков, таких как китайский, японский, корейский, тайский, хинди, урду, тамильский и другие. Эта проблема создает необходимость разработки общего инструмента токенизации, объединяющего все языки.
Другое ограничение связано с токенизацией арабских текстов, поскольку арабский язык имеет сложную морфологию. Например, одно арабское слово может содержать до шести различных токенов, таких как слово «عقد» (eaqad).
Заключение
Мы говорили о токенизации и многих методах, которые мы можем использовать, поскольку мы видим, что в этой области проводится много типов исследований, и она растет, и есть много проблем, с которыми сталкивается НЛП, но мы увидим, что в будущем эти проблемы будут решены.
вы можете увидеть код по этой ссылке

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































