Удаление языка платного доступа из фрагмента текста (панды)Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Удаление языка платного доступа из фрагмента текста (панды)

Сообщение Гость »

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

"Из сотен тысяч борцов средней школы лишь небольшой процент знает, что значит выиграть титул штата. {{Elided}} является частью этого процента. Юниор из Ричмонда присоединился к этой группе, выиграв… Премиум-контент доступен только подписчикам. Пожалуйста, войдите здесь, чтобы получить доступ к контенту, или перейдите сюда, чтобы приобрести подписку."

и моя пользовательская функция:

Код: Выделить всё

import re
import string
import nltk
from nltk.corpus import stopwords

# function to detect paywall-related text
def detect_paywall(text):
paywall_keywords = ["login", "subscription", "purchase a subscription", "subscribers"]
for keyword in paywall_keywords:
if re.search(r'\b{}\b'.format(keyword), text, flags=re.IGNORECASE):
return True
return False

# function for text preprocessing
def preprocess_text(text):
# Check if the text contains paywall-related content
if detect_paywall(text):
# Remove paywall-related sentences or language from the text
sentences = nltk.sent_tokenize(text)
cleaned_sentences = [sentence for sentence in sentences if not detect_paywall(sentence)]
cleaned_text = ' '.join(cleaned_sentences)
return cleaned_text.strip()  # Remove leading/trailing whitespace

# Tokenization
tokens = nltk.word_tokenize(text)
# Convert to lowercase
tokens = [token.lower() for token in tokens]
# Remove punctuation
table = str.maketrans('', '', string.punctuation)
stripped = [w.translate(table) for w in tokens]
# Remove stopwords
stop_words = set(stopwords.words('english'))
words = [word for word in stripped if word.isalpha() and word not in stop_words]
return ' '.join(words)
Я пытался изменить список слов для обнаружения, но безрезультатно. Однако я обнаружил, что удаление «подписчиков» из списка удаляет второе предложение языка платного доступа. Но это не совсем идеально, потому что еще остается вторая половина.
Функция также противоречива, поскольку она работает с этим фрагментом текста (поскольку он удалит язык платного доступа), но не с один выше.

Из сотен тысяч борцов средней школы лишь небольшой процент знает, что значит выиграть титул штата. {{Elided}} является частью этого процента. Юный Ричмонд присоединился к этой группе, выиграв… Премиум-контент доступен только подписчикам. Пожалуйста, войдите здесь, чтобы получить доступ к контенту, или перейдите сюда, чтобы приобрести подписку.


Подробнее здесь: https://stackoverflow.com/questions/781 ... ext-pandas
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»