Создание корпуса и запросы к нему с помощью gensim
Пришло время применить методы из предыдущего видео и создать свой первый словарь и корпус gensim!
Эти структуры данных помогут вам изучить частотность слов и выявить потенциально интересные темы в наборе документов. Для начала мы загрузили несколько дополнительных статей из Wikipedia в необработанном виде. Они были предобработаны: все слова приведены к нижнему регистру, токенизированы, а стоп-слова и знаки препинания удалены. Результат сохранён в виде списка токенов документов articles. Вам предстоит выполнить небольшую предобработку, а затем сформировать словарь и корпус gensim.
Это упражнение является частью курса
Введение в обработку естественного языка на Python
Инструкции к упражнению
- Импортируйте
Dictionaryизgensim.corpora.dictionary. - Инициализируйте
Dictionaryбиблиотекиgensim, передав в неё токены изarticles. - Получите идентификатор слова
"computer"изdictionary. Для этого используйте метод.token2id, который возвращает идентификаторы по тексту, и добавьте к нему.get(), который возвращает токены по идентификаторам. Передайте"computer"в качестве аргумента в.get(). - С помощью генератора списка, итерируясь по
articles, создайтеMmCorpusбиблиотекиgensimна основеdictionary.- В выходном выражении применяйте метод
.doc2bow()объектаdictionary, передаваяarticleв качестве аргумента.
- В выходном выражении применяйте метод
- Выведите первые 10 идентификаторов слов с частотами из пятого документа. Этот шаг уже выполнен за вас — нажмите «Отправить ответ», чтобы увидеть результат!
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import Dictionary
____
# Create a Dictionary from the articles: dictionary
dictionary = ____(____)
# Select the id for "computer": computer_id
computer_id = ____.____.get("____")
# Use computer_id with the dictionary to print the word
print(dictionary.get(computer_id))
# Create a MmCorpus: corpus
corpus = [____.____(____) for article in articles]
# Print the first 10 word ids with their frequency counts from the fifth document
print(corpus[4][:10])