НЛП | Как работает токенизация текста, предложения, слов

Опубликовано: 25 Июля, 2021

Обработка естественного языка (NLP) - это область информатики, искусственного интеллекта, информационной инженерии и взаимодействия человека с компьютером. В этой области основное внимание уделяется тому, как программировать компьютеры для обработки и анализа больших объемов данных на естественном языке. Это сложно выполнить, поскольку процесс чтения и понимания языков намного сложнее, чем кажется на первый взгляд.

Токенизация - это процесс разметки или разделения строки текста на список токенов. Можно рассматривать токен как части, например слово - это токен в предложении, а предложение - это токен в абзаце.

Ключевые моменты статьи -

  • Токенизация текста в предложения
  • Предложения в слова токенизация
  • Предложения с использованием токенизации регулярных выражений

Код # 1: Токенизация предложения - разделение предложений в абзаце




from nltk.tokenize import sent_tokenize
  
text = "Hello everyone. Welcome to GeeksforGeeks. You are studying NLP article"
sent_tokenize(text)

Выход :

['Привет всем.',
 'Добро пожаловать в GeeksforGeeks.',
 «Вы изучаете статью о НЛП»]

Как работает sent_tokenize
Функция sent_tokenize использует экземпляр PunktSentenceTokenizer из nltk.tokenize.punkt module , который уже обучен и, таким образом, очень хорошо знает, какими символами и знаками препинания отмечать конец и начало предложения.

Код №2: PunktSentenceTokenizer - когда у нас есть огромные блоки данных, их можно эффективно использовать.




import nltk.data
# Loading PunktSentenceTokenizer using English pickle file
tokenizer = nltk.data.load( 'tokenizers/punkt/PY3/english.pickle' )
tokenizer.tokenize(text)

Выход :

['Привет всем.',
 'Добро пожаловать в GeeksforGeeks.',
 «Вы изучаете статью о НЛП»]


Код № 3: Обозначить предложение на другом языке - Можно также токенизировать предложение на разных языках, используя другой файл рассола, кроме английского.




import nltk.data
spanish_tokenizer = nltk.data.load( 'tokenizers/punkt/PY3/spanish.pickle' )
text = 'Hola amigo. Estoy bien.'
spanish_tokenizer.tokenize(text)

Выход:

['Привет, друг.', 
 'Я в порядке.']


Код №4: Токенизация слов - разделение слов в предложении.




from nltk.tokenize import word_tokenize
text = "Hello everyone. Welcome to GeeksforGeeks."
word_tokenize(text)

Выход :

['Привет', 'всем', '.', 'Добро пожаловать', 'в', 'GeeksforGeeks', '.']

Как работает word_tokenize?
word_tokenize() - это функция-оболочка, которая вызывает tokenize () для экземпляра TreebankWordTokenizer class .

Код # 5: Использование TreebankWordTokenizer




from nltk.tokenize import TreebankWordTokenizer
  
tokenizer = TreebankWordTokenizer()
tokenizer.tokenize(text)

Выход :

['Привет', 'всем.', 'Добро пожаловать', 'в', 'GeeksforGeeks', '.']

Эти токенизаторы работают, разделяя слова с помощью знаков препинания и пробелов. И, как упоминалось в выходных данных кода выше, он не отбрасывает знаки препинания, позволяя пользователю решать, что делать с знаками пунктуации во время предварительной обработки.

Код № 6: PunktWordTokenizer - не отделяет знаки препинания от слов.




from nltk.tokenize import PunktWordTokenizer
tokenizer = PunktWordTokenizer()
tokenizer.tokenize( "Let's see how it's working." )

Выход :

['Let', 's', 'see', 'how', 'it', "s", 'working', '.']


Код №6: WordPunctTokenizer - отделяет знаки препинания от слов.




from nltk.tokenize import WordPunctTokenizer
tokenizer = WordPunctTokenizer()
tokenizer.tokenize( "Let's see how it's working." )

Выход :

['Let', "'",' s ',' see ',' how ',' it ', "'", 's', 'working', '.']


Код # 7: Использование регулярного выражения




from nltk.tokenize import RegexpTokenizer
tokenizer = RegexpTokenizer( "[w']+" )
text = "Let's see how it's working."
tokenizer.tokenize(text)

Выход :

[«Давайте», «посмотрим», «как», «это», «работает»]


Код # 7: Использование регулярного выражения




from nltk.tokenize import regexp_tokenize
text = "Let's see how it's working."
regexp_tokenize(text, "[w']+" )

Выход :

[«Давайте», «посмотрим», «как», «это», «работает»]

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.