[Брендан Шиллингфорд, Яннис Ассасл, Крис Дайер]
Для этой практики вам будет предоставлена частично завершенная ноутбука IPython, интерактивную веб-вычислительную среду Python, которая позволяет нам смешивать текст, код и интерактивные графики.
Мы будем обучать модели Word2VEC по данным TED Talk и Wikipedia, используя реализацию Word2VEC, включенную в пакет Python gensim . После обучения моделей мы проанализируем и визуализируем ученые вторжения.
На лабораторной рабочей станции клонируйте практическое хранилище и запустите . install-python.sh Сценарий оболочки . install-python.sh в терминале для установки Anaconda с Python 3 и пакетами, необходимыми для этого практического.
Запустите ipython notebook в каталоге репозитория и откройте ноутбук practical.ipynb в вашем браузере.
Код для загрузки набора данных и предварительной обработки он предварительно написан, чтобы сэкономить время. Тем не менее, ожидается, что вам необходимо выполнить такую задачу на будущих практических языках, учитывая необработанные данные. Прочитайте это и убедитесь, что вы это понимаете. Часто кто -то использует библиотеку, такую как nltk для упрощения этой задачи, но мы не сделали этого здесь и вместо этого решили использовать регулярные выражения через re Python.
Составьте список наиболее распространенных слов и их возникновения. Взгляните на топ -40 слов. Возможно, вы захотите использовать класс sklearn.feature_extraction.text Module CountVectorizer или класс collections Counter .
Возьмите верхние 1000 слов и постройте гистограмму их количества. Код построения для интерактивной гистограммы уже приведен в ноутбуке.
Руководство: Покажите гистограмму распределения частот.
Теперь, когда у нас есть обработанный список предложений, давайте проведем обучение Word2VEC. Начните с прочтения документации Gensim для Word2VEC по адресу https://radimrehurek.com/gensim/models/word2vec.html, чтобы выяснить, как использовать класс Word2Vec . Учитесь встраивания в min_count=10 так что нечастые слова игнорируются. Процесс обучения должен занять менее полминуты.
Если ваш обученный экземпляр Word2Vec называется model_ted , вы сможете проверить размер словарного запаса, используя len(model_ted.vocab) , который должен быть около 14427. Попробуйте использовать метод most_similar() , чтобы вернуть список самых похожих слов «человек» и «компьютер».
Руководство: Найдите еще несколько слов с интересными и/или удивительными ближайшими соседями.
Руководство: Найдите интересный кластер в сюжете T-SNE.
Необязательно, для увлеченных студентов: попробуйте вручную забрать два вектора слова, используя оператор индексации, как описано в документации Генсима, а затем компьютером их косинусные расстояния (напомним, что он определяется как np.dot() и np.linalg.norm() , см. Документацию Numpy для получения подробной информации. Сравните это с расстоянием, рассчитанным по функциям Генсима.
Мы предоставили код загрузки/предварительной обработки (аналогично предыдущему коду) для набора данных Wikitext-2. Код использует случайную подвыборку данных, поэтому он сопоставим по размеру с данными TED Talk.
Повторите тот же анализ, что и выше, но в этом наборе данных.
Руководство: Найдите несколько слов с похожими ближайшими соседями.
Руководство: Найдите интересный кластер в сюжете T-SNE.
Handin: Существуют ли какие -либо заметные различия между вставками, изученными по данным по сравнению с полученными в данных TED Talk Data?
Если у вас есть дополнительное время, попробуйте выполнить кластеризацию K-средних (например, с помощью sklearn.cluster.kmeans ) на встраивании, настраивая количество кластеров, пока не получите интересные или значимые кластеры.
Смотрите жирную жирную жидкость « Хандин: » детали выше. На бумаге или в устной форме показать практическому демонстранту ваш ответ на них, чтобы получить подписание.