Как установить nltk python windows

Обновлено: 07.07.2024

На момент написания этой статьи в Интернете было активно 1 907 223 370 веб-сайтов, и в секунду отправлялось 2 722 460 электронных писем. Это невероятно огромный объем данных. Пользователь не может получить представление о таких огромных объемах данных. Более того, большая часть этих данных либо избыточна, либо не содержит много полезной информации.

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

Резюмирование текста – это поддомен обработки естественного языка (NLP), который занимается извлечением резюме из огромных фрагментов текста. Существует два основных типа методов, используемых для обобщения текста: методы, основанные на НЛП и методы, основанные на глубоком обучении. В этой статье мы увидим простую технику резюмирования текста, основанную на НЛП. Мы не будем использовать какие-либо библиотеки машинного обучения. Скорее мы просто будем использовать библиотеку Python NLTK для обобщения статей Википедии.

Шаги обобщения текста

Я объясню этапы реферирования текста с помощью методов НЛП на примере.

Итак, продолжайте работать. Продолжайте стремиться. Никогда не сдавайся. Семь раз падай, восемь вставай. Легкость – большая угроза для прогресса, чем трудности. Итак, продолжайте двигаться, продолжайте расти, продолжайте учиться. Увидимся на работе.

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

Как преобразовать абзацы в предложения?

Предварительная обработка текста

  1. Продолжать работать.
  2. Продолжай стремиться.
  3. Никогда не давай.
  4. Упасть семь раз получить восемь.
  5. Облегчить большую угрозу прогрессировать трудности.
  6. Продолжай двигаться продолжай расти продолжай учиться.
  7. Посмотреть работу.

Токенизация предложений

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

Как найти взвешенную частоту?

Далее нам нужно найти взвешенную частоту встречаемости всех слов. Для этого нужно, разделить его частоту на частоту наиболее часто встречающегося слова. Следующая таблица содержит взвешенные частоты для каждого слова:

Слово Частота Взвешенная частота
ease 2 0.40
eight 1 0.20
fall 1 0.20
get 1 0.20
give 1 0.20
greater 2 0.40
growing 1 0.20
hardship 2 0.40
keep 5 1.00
learning 1 0.20
moving 1 0.20
never 1 0.20
progress 2 0.40
see 1 0.20
seven 1 0.20
striving 1 0.20
threat 2 0.40
time 1 0.20
work 1 0.20
working 1 0.20

Поскольку слово «keep» имеет самую высокую частоту, равную 5, взвешенная частота всех слов была рассчитана путем деления их количества появлений на 5.

Замена слова взвешенной частотой в оригинальных предложениях

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

Выражение Сумма взвешенных частот
So, keep working 1 + 0.20 = 1.20
Keep striving 1 + 0.20 = 1.20
Never give up 0.20 + 0.20 = 0.40
Fall down seven times, get up eight 0.20 + 0.20 + 0.20 + 0.20 + 0.20 = 1.0
Ease is a greater threat to progress than hardship 0.40 + 0.40 + 0.40 + 0.40 + 0.40 = 2.0
Ease is a greater threat to progress than hardship 0.40 + 0.40 + 0.40 + 0.40 + 0.40 = 2.0
So, keep moving, keep growing, keep learning 1 + 0.20 + 1 + 0.20 + 1 + 0.20 = 3.60
See you at work 0.20 + 0.20 = 0.40

Сортировка предложений в порядке убывания суммы

Последний шаг – отсортировать предложения в порядке, обратном их сумме. Наиболее часто встречающиеся предложения резюмируют текст. Например, посмотрите на предложение с наибольшей суммой взвешенных частот:

So, keep moving, keep growing, keep learning

Вы легко можете понять, о чем идет речь. Точно так же вы можете добавить предложение со второй по величине суммой взвешенных частот, чтобы получить более информативное резюме. Взгляните на следующие предложения:

So, keep moving, keep growing, keep learning. Ease is a greater threat to progress than hardship.

Эти два предложения довольно хорошо резюмируют сказанное в абзаце.

Обобщение статей

Теперь мы знаем, как работает процесс реферирования текста с помощью очень простой техники НЛП. В этом разделе мы будем использовать библиотеку NLTK в Python, чтобы резюмировать статью в Википедии.

Получение статей из Википедии

Прежде чем мы сможем обобщить статьи Википедии, нам нужно получить их из Интернета. Для этого мы воспользуемся парочкой библиотек. Первая библиотека, которую нам нужно скачать, – это Beautiful soup, который является очень полезной утилитой Python для парсинга веб-страниц. Выполните следующую команду в командной строке, чтобы загрузить служебную программу Beautiful Soup.

Еще одна важная библиотека, которая нам нужна для синтаксического анализа XML и HTML, – это библиотека lxml. Выполните следующую команду в командной строке, чтобы загрузить lxml:

Теперь позвольте некоторому коду Python извлекать данные из Интернета. Статья, которую мы собираемся очистить, – это статья в Википедии об искусственном интеллекте. Выполните следующий скрипт:

В приведенном выше скрипте мы сначала импортируем важные библиотеки, необходимые для извлечения данных из Интернета. Затем мы используем функцию urlopen из утилиты urllib.request для очистки данных. Затем нам нужно вызвать функцию чтения для объекта, возвращаемого функцией urlopen, чтобы прочитать данные. Для анализа данных мы используем объект BeautifulSoup и передаем ему очищенный объект данных, то есть статью и парсер lxml.

В статьях Википедии весь текст статьи заключен в теги <p>. Чтобы получить текст, нам нужно вызвать функцию find_all для объекта, возвращаемого BeautifulSoup. Имя тега передается функции как параметр. Функция возвращает все абзацы в статье в виде списка. Все абзацы были объединены для воссоздания статьи.

После того, как статья будет очищена, нам нужно провести некоторую предварительную обработку.

Предварительная обработка

Первый шаг предварительной обработки – удаление ссылок из статьи. Следующий скрипт удаляет квадратные скобки и заменяет полученные несколько пробелов одним пробелом. Взгляните на скрипт ниже:

Объект article_text содержит текст без скобок. Однако мы не хотим удалять что-либо еще из статьи, поскольку это исходная статья. Мы не будем удалять другие числа, знаки препинания и специальные символы из этого текста, так как мы будем использовать этот текст для создания резюме, а взвешенная частота слов будет заменена в этой статье.

Чтобы очистить текст и вычислить взвешенные частоты, мы создадим еще один объект. Взгляните на следующий скрипт:

Теперь у нас есть два объекта article_text, который содержит исходную статью, и formatted_article_text, который содержит отформатированную статью. Мы будем использовать formatted_article_text для создания гистограмм взвешенных частот для слов и заменим эти взвешенные частоты словами в объекте article_text.

Преобразование текста в предложения

На этом этапе мы предварительно обработали данные. Затем нам нужно разделить статью на предложения. Мы будем использовать объект rticle_text для токенизации статьи в предложение, поскольку оно содержит точки. Formatted_article_text не содержит знаков препинания и поэтому не может быть преобразован в предложения с использованием точки в качестве параметра.

Следующий скрипт выполняет токенизацию предложения:

Как найти взвешенную частоту появления?

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

В приведенном выше скрипте мы сначала сохраняем все английские стоп-слова из библиотеки nltk в переменную стоп-слов. Затем мы перебираем все предложения, а затем соответствующие слова, чтобы сначала проверить, являются ли они стоп-словами.

Если нет, мы переходим к проверке, существуют ли слова в словаре word_frequency, то есть word_frequencies, или нет. Если слово встречается впервые, оно добавляется в словарь в качестве ключа, и его значение устанавливается на 1. В противном случае, если слово ранее существовало в словаре, его значение просто обновляется на 1.

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

Подсчет баллов

Теперь мы рассчитали взвешенные частоты для всех слов. Пришло время подсчитать баллы для каждого предложения, добавив взвешенные частоты слов, встречающихся в этом конкретном предложении. Следующий скрипт подсчитывает оценки предложений:

В приведенном выше скрипте мы сначала создаем пустой словарь sentence_scores. Ключами этого словаря будут сами предложения, а значениями – соответствующие баллы предложений. Затем мы перебираем каждое предложение в списке предложений и преобразуем предложение в слова.

Затем мы проверяем, существует ли слово в словаре word_frequencies. Эта проверка выполняется, так как мы создали список proposition_list из объекта article_text. С другой стороны, частота слов рассчитывалась с использованием объекта formatted_article_text, который не содержит стоп-слов, чисел и т. д.

Нам не нужны очень длинные предложения в резюме, поэтому мы рассчитываем оценку только для предложений, содержащих менее 30 слов (хотя вы можете настроить этот параметр для своего собственного варианта использования).

Затем мы проверяем, существует ли предложение в словаре phrase_scores или нет. Если предложение не существует, мы добавляем его в словарь фразеологизмов в качестве ключа и присваиваем ему взвешенную частоту первого слова в предложении в качестве его значения. Напротив, если предложение существует в словаре, мы просто добавляем взвешенную частоту слова к существующему значению.

Получение резюме

Теперь у нас есть словарь proposition_scores, который содержит предложения с соответствующей оценкой. Подводя итог статье, мы можем взять верхние N предложений с наивысшими баллами. Следующий скрипт извлекает 7 самых популярных предложений и выводит их на экран.

В приведенном выше скрипте мы используем библиотеку heapq и вызываем ее функцию nlargest, чтобы получить 7 лучших предложений с наивысшими оценками.

Искусственный интеллект (ИИ), иногда называемый машинным интеллектом, – это интеллект, демонстрируемый машинами, в отличие от естественного интеллекта, проявляемого людьми и другими животными. В ИИ используется множество инструментов, включая варианты поиска и математической оптимизации, искусственные нейронные сети и методы, основанные на статистике, вероятности и экономике. Традиционные проблемы (или цели) исследований ИИ включают рассуждение, представление знаний, планирование, обучение, обработку естественного языка, восприятие и способность перемещать объекты и манипулировать ими.

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

Заключение

В этой статье объясняется процесс реферирования текста с помощью библиотеки NLTK в Python. В статье также кратко описан процесс парсинга статей с использованием библиотеки BeautifulSoap.

В этой части мы узнаем, как выполнить настройку NLTK через терминал (командная строка в windows).

Инструкция, приведенная ниже, основана на предположении, что у вас не установлен Python. Итак, первый шаг — установить Python.

Установка Python в Windows:


Примечание . Если вы не хотите загружать последнюю версию, вы можете посетить вкладку загрузки и просмотреть все выпуски.


Шаг 2) Нажмите на загруженный файл


Шаг 3) Выберите «Настроить установку»


Шаг 4) Нажмите ДАЛЕЕ


Шаг 5) На следующем экране

  1. Выберите дополнительные параметры
  2. Дайте выборочную установку. В моем случае папка на диске C выбрана для удобства работы
  3. Нажмите Установить



Шаг 7) Скопируйте путь к вашей папке Scripts.


Шаг 8) В командной строке Windows

  • Перейдите к местоположению папки pip
  • Введите команду для установки NLTK
  • Установка должна быть выполнена успешно


ПРИМЕЧАНИЕ : для Python2 используйте команду pip2 install nltk

Шаг 9) В меню «Пуск» Windows найдите и откройте PythonShell


Шаг 10) Вы можете проверить правильность установки, введя приведенную ниже команду


Если вы не видите ошибки, установка завершена.

Установка NLTK в Mac / Linux

Установка NLTK в Mac / Unix требует pip менеджера пакетов python для установки nltk. Если пункт не установлен, пожалуйста, следуйте инструкциям ниже, чтобы завершить процесс

Шаг 1) Обновите индекс пакета, введя следующую команду

Шаг 2) Установка pip для Python 3:

Вы также можете установить pip с помощью easy_install.

Теперь easy_install установлен. Запустите приведенную ниже команду для установки pip

Шаг 3) Используйте следующую команду для установки NLTK

Установка НЛТК через Анаконду


Примечание. Обратитесь к этому руководству за подробными инструкциями по установке Anaconda.

Шаг 2) В приглашении Anaconda

  1. Введите команду
  2. Просмотрите обновление пакета, понизьте версию, установите информацию и введите yes
  3. NLTK загружен и установлен


Набор данных NLTK

Модуль NLTK имеет множество доступных наборов данных, которые необходимо загрузить для использования. Более технически это называется корпус . Некоторые из примеров игнорируемых слов , Гутенберг , framenet_v15 , large_grammars и так далее.

Как скачать все пакеты НЛТК

Шаг 1) Запустите интерпретатор Python в Windows или Linux

Шаг 2)


ПРИМЕЧАНИЕ. Вы можете изменить местоположение загрузки, нажав «Файл»> «Изменить каталог загрузки».


Шаг 3) Для проверки установленных данных используйте следующий код

[‘The’, ‘Fulton’, ‘County’, ‘Grand’, ‘Jury’, ‘сказали’, …]


Запуск сценария НЛП

Мы собираемся обсудить, как скрипт NLP будет выполняться на нашем локальном ПК. На рынке представлено множество библиотек для обработки естественного языка. Поэтому выбор библиотеки зависит от ваших требований. Вот список библиотек НЛП .

Как запустить скрипт NLTK

Шаг 1) В вашем любимом редакторе кода скопируйте код и сохраните файл как « NLTKsample.py »


Объяснение кода:

  1. В этой программе целью было удалить все типы знаков препинания из данного текста. Мы импортировали «RegexpTokenizer», который является модулем NLTK. Он удаляет все выражения, символы, символы, цифры или все, что вы хотите.
  2. Вы только что передали регулярное выражение в модуль «RegexpTokenizer».
  3. Далее мы токенизировали слово с помощью модуля «токенизировать». Вывод сохраняется в переменной filterdText.
  4. И распечатал их, используя «print ()».

Шаг 2) В командной строке

  • Перейдите к месту, где вы сохранили файл
  • Запустите команду Python NLTKsample.py


Это покажет вывод как:

[‘Hello’, ‘Guru99’, ‘You’, ‘have’, ‘build’, ‘a’, ‘very’, ‘good’, ‘site’, ‘and’, ‘I’, ‘love’, ‘ посещая ‘,’ ваш ‘,’ сайт ‘]

[Python] Установка библиотеки NLTK и руководство по часто задаваемым вопросам

Библиотека NLTK является наиболее часто используемой библиотекой с открытым исходным кодом NLP (обработка на естественном языке) в Python. Теперь давайте познакомимся с методом установки библиотеки в среде Windows.
Как и другие библиотеки, наиболее удобно устанавливать с помощью pip, введите в командной строке

Дождитесь окончания чтения, чтобы завершить установку.

Далее просмотрите и установите доступные пакеты nltk
Сначала введите его в командной строке python Введите интерпретатор Python, а затем введите следующий код


После успешного выполнения появится следующее окно

Здесь вы можете просмотреть и установить все доступные пакеты в библиотеке NLTK, выбрать все, а затем нажать кнопку «Загрузить» для установки одним щелчком мыши. Конечно, вы также можете выбрать нужные вам пакеты. Пакеты могут быть настроены, здесь мы выбираем пакет книги для установки.
После завершения загрузки и установки вернитесь к интерпретатору python. Вы можете использовать следующую команду, чтобы проверить, была ли установка успешной.


Если операция выполнена правильно, будет отображена следующая информация:

Теперь мы можем передать text1 , text2.concordance("hello") , nltk.similar("world") Подождите, пока код для просмотра и использования загруженных ресурсов. Конкретный метод использования NLTK выходит за рамки этой статьи, пожалуйста, обратитесь к другим материалам.
Следует отметить, что загрузка NLTK Downloader одним щелчком часто будет зависать, загрузка завершится неудачно, а в строке состояния появится отметка «устарела». В настоящее время необходимо приостановить только существующую загрузку. , А затем перейдите на страницу «Все пакеты», вручную дважды щелкните пакет, соответствующий корпусу карты, вы можете успешно завершить загрузку, конечно, вы также можете вручную управлять всем процессом, что является более хлопотным, но не будет никакого застрявшего явления.
Наконец, я желаю своим друзьям гладкой установки и использования.

  • Качаем anaconda. Устанавливаем.
  • Еще нам пригодится C/C++ tools от visual studio.
  • Теперь устанавливаем gensim. Именно для него нам и нужен c++.
  • Устанавливаем nltk.
  • При установке не забудьте качать библиотеки для Anaconda, а не для стандартного интерпретатора. Иначе все кончится крахом.
  • Качаем Анну Каренину в TXT.
  • Советую открыть файл и вырезать оттуда рекламу и заголовки. Потом сохранить в формате utf-8 .
  • Можно приступать к работе.

Первым делом надо скачать данные для nltk.

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

Туда же кидаем текст. Назовем файл anna.txt
Для обладателей PyCharm можно просто создать проект и в качестве интерпретатора выбрать анаконду, не создавая окружения.

Создаем скрипт train-I.py .

Теперь очередь токенизатора русских предложений.

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

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

Для интереса выведем количество предложений и парочку из них.

Теперь начинаем обучать модель. Не бойтесь это не займет и получасу — 20024 предложения для gensim просто расплюнуть.

Теперь сохраняем модель в файл.

Сохраняем файл. Чтобы запустить, тем кто работает в PyCharm или Spyder достаточно нажать run. Кто пишет вручную с блокнота или другого редактора придется запустить Anaconda Promt (для этого достаточно вбить это в поиск в меню), перейти в директорию со скриптом и запустить командой

Готово. Теперь вы можете с гордостью сказать, что обучали word2vec.

ЧАСТЬ ВТОРАЯ. Война и Мир

Как бы мы не старались, но Анны Каренины для обучении модели мало. Поэтому воспользуемся вторым произведением автора — Война и Мир.

Думаю, что эта часть не нуждается в объяснениях, так как в ней нет ничего нового.

Затем загружаем нашу модель, и скармливаем ей новые данные.

Здесь я немного остановлюсь. total_examples устанавливает количество слов, в нашем случае это весь словарь модели ( model.corpus_count ), включая новые. А `epochs количество итераций. Честное слово, сам не знаю, что значит model.iter взял из документации. Кто знает, напишите, пожалуйста, в комментариях — исправлю.

И снова сохраняем.

Не забудьте запустить.

ЭПИЛОГ. А где же тесты?

Читайте также: