Рубрики
Без рубрики

Создание собственной книги по обработке естественного языка

Фильтрующее слово из статей. Теги с Python, NLP.

Когда вы хотите узнать новый язык, WordBook незаменим. В этой статье я пытался создать собственную книгу книги из транснации подкастов. Наклоняясь слова, которые инженеры часто используют более эффективно о моем исследовании.

Я пытался использовать обработку на естественном языке в первый раз. Пожалуйста, не иди слишком сильно на меня.

1. Найти статьи или транскрипты о вашем новом языке.

Я нашел изменяемый файл Подкасты стенограммы https://github.com/thechangelog/transcripts/tree/master/gotime Я буду использовать эти тексты на этот раз.

2. Очищение

Подготовка

>>> from nltk import sent_tokenize, word_tokenize, pos_tag
>>> text = "We've got a great show lined up today. This is our first episode, so we're gonna do some brief introductions"

nltk.sent_takenize.

Мы можем получить разделенные слова из текста, которое использует предложение Tokenizer.

>>> sent_tokenize(text)
["We've got a great show lined up today.", "This is our first episode, so we're gonna do some brief introductions"]

nltk.word_tokedize.

Структура этих предложений, которые разделены и Word_Tokenize функций отдельно от предложения и получают токенизированные слова.

>>> [word_tokenize(sent) for sent in sent_tokenize(text)]
[['We', "'ve", 'got', 'a', 'great', 'show', 'lined', 'up', 'today', '.'], ['This', 'is', 'our', 'first', 'episode', ',', 'so', 'we', "'re", 'gon', 'na', 'do', 'some', 'brief', 'introductions']]

nltk.pos_tag

POS_TAG предоставляет часть речевой теггера для заданного списка токенов.

>>> [pos_tag(word_tokenize(sent)) for sent in sent_tokenize(text)]
[[('We', 'PRP'), ("'ve", 'VBP'), ('got', 'VBD'), ('a', 'DT'), ('great', 'JJ'), ('show', 'NN'), ('lined', 'VBD'), ('up', 'RP'), ('today', 'NN'), ('.', '.')], [('This', 'DT'), ('is', 'VBZ'), ('our', 'PRP$'), ('first', 'JJ'), ('episode', 'NN'), (',', ','), ('so', 'IN'), ('we', 'PRP'), ("'re", 'VBP'), ('gon', 'VBG'), ('na', 'TO'), ('do', 'VB'), ('some', 'DT'), ('brief', 'NN'), ('introductions', 'NNS')]]

Вы можете получить описание о теге, указанном в функции post_tag https://stackoverflow.com/questions/15388831/what-are-all-Possible-Pos-tags-of-nltk.

3. Лемматизируйте слова

Мы должны изменить данные кортежа для лемматизации. («Мы», «VBD») -> («Мы», «V»)

Вы можете получить слова лемматизации. Алгоритм WordNetLemMatizer Muny для использования. Мы должны дать теги на лемматизировать функцию явно

>>> lemmatizer = nltk.stem.WordNetLemmatizer()
>>> lemmatizer.lemmatize("better", pos=nltk.corpus.wordnet.ADJ)
'good'

FYI: get_wordnet_pos Функция Полезно для изменения данных для погибги.

Я тоже пытался Стэнфорд Коренлп. Это выглядит лучше, чем Wordnet. https://github.com/stanfordnlp/stanfordnlp

>>> import stanfordnlp
>>> stanfordnlp.download('en')
>>> nlp = stanfordnlp.Pipeline()
>>> text = "We've got a great show lined up today. This is our first episode, so we're gonna do some brief introductions"
>>> doc = nlp(text)
>>> print([w.lemma for w in doc.sentences[1].words])
['this', 'be', 'we', 'first', 'episode', ',', 'so', 'we', 'be', 'go', 'to', 'do', 'some', 'brief', 'introduction']

Я облако становится более лучшим лемматизированным словами, чем раньше (например. WordNetLemmatizer: «Собираюсь» => «Гон», Стэнфордкоренлп: «Собираюсь» => «Иди»)

Я могу получить разлученные и лемматизированные слова через любые этапы. На следующем этапе я пытаюсь перечислить слова и создать полезную книгу книги.

Оригинал: “https://dev.to/8pockets/making-own-wordbook-by-natural-language-processing-4ia5”