Мне нужен способ удалить общие слова в приведенном выше содержимом веб-страницы. как интегрировать такой метод.
third_headers = ' '.join([r.text for r in soup.find_all('h3')]) third_headers
Я получил вывод - «Аналитика данных HTML и CSS Учебники по XML XML-учебники Программирование JavaScript на стороне сервера Веб-построение Аналитика данных XML-учебники HTML CSS JavaScript Программирование на стороне сервера XML Наборы символов Упражнения Викторины Курсы Сертификаты Пример примера Объяснение»
Нужен новый вывод без общих слов (удаленные общие слова из корпуса общих слов)
Нет, у меня нет такого корпуса. Я не знаю, как связать корпус, чтобы удалить общие слова, которые позже будут обработаны.
Что именно вы подразумеваете под общими словами? Вы должны вывести результат, который вам не нужен. Как выглядит ожидаемый результат?
Ожидаемый результат должен быть приведенным выше абзацем без общих слов. Общие слова могут быть ( и , если , да , нет и т. д.) из общего корпуса слов.
Ну осталось только найти такой корпус. Остальное фильтрует
Ваш вопрос, как найти такой корпус тогда? Если нет, если я могу предположить, что у нас есть корпус, скажем, в виде списка, я могу исправить ответ
Предполагая, что корпус используется для фильтрации абзаца без общих слов, это то, что мне нужно. И как связать корпус, чтобы отфильтровать текст без общих слов.
Я не уверен, что понимаю. Я добавлю свой ответ, посмотрим, нужно ли это вам.
В принципе, чтобы удалить все общие слова из любого способа и отфильтровать необычные слова, будет достаточно.
Предположим, у нас есть корпус общих слов в списке под названием CORPUS
:
raw = 'HTML and CSS Data Analytics XML Tutorials JavaScript Programming Server Side Web Building Data Analytics XML Tutorials HTML CSS JavaScript Programming Server Side XML Character Sets Exercises Quizzes Courses Certificates Example Example Explained'
CORPUS = ["And", "So", "If", "etc."] # assumed to have
corpus = [w.lower() for w in CORPUS] # to lowercase
words = raw.split()
processed = [w for w in words if w.lower() not in corpus]
print(processed)
Несколько предложений: я бы использовал raw.split()
без каких-либо аргументов, которые также будут разделяться на новые строки и не будут давать вам пустые токены в случае последовательных пробелов. Эти «общие слова» в НЛП называются стоп-слова. Вы можете получить их, например, с помощью from nltk.corpus import stopwords; corpus = stopwords.words('english')
.
Спасибо. Я обновился до raw.split()
. Также полезно знать о nltk.corpus import stopwords
У вас есть такой корпус общеупотребительных слов? Если да, то какова его форма и тип?