Обработка естественного языка (НЛП) это область компьютерных наук, искусственного интеллекта, информационной инженерии и взаимодействия человека и компьютера. В этой области основное внимание уделяется тому, как программировать компьютеры для обработки и анализа больших объемов данных на естественном языке. Это трудно выполнить, так как процесс чтения и понимания языков гораздо сложнее, чем кажется на первый взгляд.
Токенизация это процесс токенизации или разделения строки, текста на список токенов. Можно думать о токене как о частях, например, слово-это токен в предложении, а предложение-это токен в абзаце.
Ключевые моменты статьи:
- Токенизация текста в предложения
- Токенизация предложений в слова
- Предложения, использующие маркировку регулярных выражений
Код №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']