Я пытаюсь завершить проект по обучению тексту для класса машинного обучения.Мой учитель дал мне следующую функцию, и я не понимаю, почему я получаю ошибку, которую я получаю.Предполагается, что эта функция берет строку слов, удаляет знаки пунктуации и стоп-слова и возвращает новую строку.
def review_to_words( raw_review ):
# Function to convert a raw review to a string of words
# The input is a single string (a raw movie review), and
# the output is a single string (a preprocessed movie review)
#
# 1. Remove HTML
review_text = BeautifulSoup(raw_review).get_text()
#
# 2. Remove non-letters (punctuation)
letters_only = re.sub("[^a-zA-Z]", " ", review_text)
#
# 3. Convert to lower case, split into individual words
words = letters_only.lower().split()
#
# 4. In Python, searching a set is much faster than searching
# a list, so convert the stop words to a set
stops = set(stopwords.words("english"))
#
# 5. Remove stop words
meaningful_words = [w for w in words if not w in stops]
#
# 6. Join the words back into one string separated by space,
# and return the result.
return( " ".join( meaningful_words ))
clean_review = review_to_words(first1000["review"][0] )
В следующей строке указано, что произошла ошибка ключа 'review':1004 *
clean_review = review_to_words(first1000["review"][0] )
first1000 - это переменная, установленная на:
first1000 = data["review"][0:1000]
Мой набор данных - это файл .tsv, содержащий несколько тысяч обзоров фильмов из imdb.Переменная 'review' - это всего лишь одна проверка из этого набора данных.
Опять же, эта функция должна принимать строку слов, удалять знаки пунктуации и стоп-слова и возвращать новую строку.Я не уверен, что происходит, потому что я просмотрел код, и он выглядит хорошо для меня.
РЕДАКТИРОВАТЬ: Что я слышу из ответов до сих пор, мои данные словарьсписки.Это звучит правильно.Каждый отзыв представляет собой список слов, а весь набор данных представляет собой список отзывов.Но теперь мне нужно найти способ подсчитать количество списков в словаре.Сейчас у меня есть:
num_reviews = count(train_reviews["reviews"])
print(num_reviews)
, где train_reviews ["reviews"] - это подмножество моих данных.Это все еще словарь списков.Мне нужно посчитать, сколько списков есть в train_reviews.Я не получил ошибку с этим кодом, но я также не получил никакого вывода.Я точно знаю, что это должно было привести к выводу команды print, поэтому я в замешательстве.
PS Если мне нужно задать совершенно новый вопрос, чтобы написать о новой проблеме стот же код, пожалуйста, просто скажите мне, и я буду помнить это в будущем.