Что такое НЛТК?
Natural Language Toolkit (NLTK) — ведущая платформа для создания программ на Python для работы с данными на человеческом языке (обработка естественного языка). Он сопровождается книгой, в которой объясняются основные понятия, лежащие в основе задач языковой обработки, поддерживаемых инструментарием. NLTK предназначен для поддержки исследований и преподавания в НЛП или в смежных областях, включая эмпирическую лингвистику, когнитивные науки, искусственный интеллект, поиск информации и машинное обучение.
Библиотека содержит
- Лексический анализ: Word и текстовый токенизатор
- н-грамм и словосочетания
- Тэггер части речи
- Древовидная модель и текстовый чанкер для захвата
- Распознавание именованных объектов
Загрузить и установить
1. Вы можете скачать NLTK отсюда в Windows
2. После установки NLTK запустите интерпретатор Python, чтобы установить данные, необходимые для дальнейшей работы.
import nltk
nltk.download()
Он состоит из около 30 сжатых файлов, требующих около 100 МБ дискового пространства. Если возникает проблема с дисковым пространством или сетью, вы можете выбрать только то, что вам нужно.
Как только данные загружены на ваш компьютер, вы можете загрузить некоторые из них, используя интерпретатор Python.
from nltk.book import *
Основные операции в тексте
from __future__ import division
from nltk.book import *
#Enter their names to find out about these texts
print text3
#Length of a text from start to finish, in terms of the words and punctuation symbols that appear.
print 'Length of Text: '+str(len(text3))
#Text is just the set of tokens
#print sorted(set(text3))
print 'Length of Token: '+str(len(set(text3)))
#lexical richness of the text
def lexical_richness(text):
return len(set(text)) / len(text)
#percentage of the text is taken up by a specific word
def percentage(word, text):
return (100 * text.count(word) / len(text))
print 'Lexical richness of the text: '+str(lexical_richness(text3))
print 'Percentage: '+ str(percentage('God',text3));
Теперь мы выберем «text3» под названием «Книга Бытия», чтобы опробовать возможности NLTK. Приведенный выше пример кода показывает:
- Название текста
- Длина текста от начала до конца
- Количество токенов текста. (Токен — это техническое имя для последовательности символов. Текст — это просто набор токенов, которые он использует, поскольку в наборе все дубликаты сворачиваются вместе.)
- Вычислить меру лексической насыщенности текста (количество отдельных слов по общему количеству слов)
- Как часто слово встречается в тексте (подсчитайте, какой процент текста занимает конкретное слово)
Примечание.
В Python 2 начните с __future__ import для деления.
Вывод приведенного выше фрагмента кода
Поиск текста
- Count (слово) — поддержка подсчета слова в тексте
- Согласие (слово) — дать каждое вхождение данного слова, а также некоторый контекст.
- Аналог (слово) — добавление термина, похожего на название текста
- Common_contexts ([word]) — контексты разделяются двумя или более словами
from nltk.book import * #names of the Text print text3 #count the word in the Text print "===Count===" print text3.count("Adam") #'concordance()' view shows us every occurrence of a given word, together with some context. #Here 'Adam' search in 'The Book of Genesis' print "===Concordance===" print text3.concordance("Adam") #Appending the term similar to the name of the text print "===Similar===" print text3.similar("Adam") #Contexts are shared by two or more words print "===Common Contexts===" text3.common_contexts(["Adam", "Noah"])
Вывод примера кода:
Теперь мне нужны сюжетные слова, которые распределены по тексту, такие как «Бог», «Адам», «Ева», «Ной», «Аврам», «Сара», «Иосиф», «Сим», «Исаак».
text3.dispersion_plot(["God","Adam", "Eve", "Noah", "Abram","Sarah", "Joseph", "Shem", "Isaac"])
Ссылки
[1] Bird, Steven; Klein, Ewan; Loper, Edward (2009). Natural Language Processing with Python. O’Reilly Media Inc. ISBN 0-596-51649-5.