You are currently viewing NLP | Как работает маркировка текста, предложения, слов

NLP | Как работает маркировка текста, предложения, слов

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

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

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

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

Код №1: Маркировка предложений – Разделение предложений в абзаце

from nltk.tokenize import sent_tokenize

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

Выход:

['Hello everyone.',
 'Welcome to ProgramBox.',
 'You are studying NLP article']

Как 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)

Выход:

['Hello everyone.',  'Welcome to ProgramBox.',  'You are studying NLP article'] 

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

import nltk.data

spanish_tokenizer = nltk.data.load('tokenizers/punkt/PY3/spanish.pickle')

text = 'Hola amigo. Estoy bien.'
spanish_tokenizer.tokenize(text)

Выход:

['Hola amigo.',   'Estoy bien.'] 

Код № 4: Маркировка слов – Разделение слов в предложении.

from nltk.tokenize import word_tokenize

text = "Hello everyone. Welcome to ProgramBox."
word_tokenize(text)

Выход:

['Hello', 'everyone', '.', 'Welcome', 'to', 'ProgramBox', '.']

Как word_tokenize работает?

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

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

from nltk.tokenize import TreebankWordTokenizer

tokenizer = TreebankWordTokenizer()
tokenizer.tokenize(text)

Выход:

['Hello', 'everyone.', 'Welcome', 'to', 'ProgramBox', '.'] 

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

Код № 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)

Выход:

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