Задний план
28 мая, Пост на r/pataisisbeautiful Вдохновил меня узнать, как сделать слово облака. Будучи огромным поклонником Гарри Поттера, данные, которые я собирался использовать, был очевиден. Использование книг казалось слишком простым Поэтому я решил соскрести 250 историй от Fanfiction.net И сделайте слово облако от этих данных. Я разместил моя первая попытка r/pataisisbeautiful И на основе обратной связи я получил, я решил написать этот блог.
Весь исходный код (кроме файлов данных и вывода файлов) доступно здесь
Попытка 1.
Есть много подходов, которые я мог бы предпринять, чтобы подготовить данные. Я решил сначала скачать истории, а затем выполнять обработку в локальных файлах из-за моего медленного и ненадежного Интернета.
Scraping Fanfiction.
Я использовал простую комбинацию Python + Beautifulsoup, чтобы соскрести образовывать истории Fanfiction.net.net . Я отсортировал истории, основанные на их любимом количестве и отфильтровали их в истории, имеющие более 100 тысяч слов. ( Ссылка на URL ). Я соскребал первые 10 страниц, (у каждой страницы есть 25 историй), что привело к 250 историям. Мне потребовалось всего 10 часов (7 в один день, а 3 на следующий), чтобы соскрести все истории.
Обработка данных
Принимая подсказки от Оригинальный пост Я использовал NLTK для токеризации историй и удалил общие слова из корпуса английского стопоразвиков NLTK. Это была моя первая попытка сделать что-то подобное, и процесс изначально принимал 3-4 минуты за историю. После некоторой оптимизации я смог уменьшить время до 1-2 минуты за историю. Я разговаривал с другом о проблеме, и он предложил мне попробовать многопроцессировать. После добавления многопроцессора у меня была идея распределить нагрузку на два процессора (мой ноутбук и малина PI 4B). Я скопировал сценарий и 25% рассказов на PI и начал работу.
Дополнительный совет: экран это хорошая утилита для длительных рабочих мест через SSH
Мне потребовалось в час до обработки. Я не хотел сделать обработку снова, если мне нужно было удалить еще несколько слов Поэтому я решил сохранить данные частоты слова в файлы JSON. ( Действительно полезно в будущем)
Сделать слово облако
Я посмотрел на WordCloud Python Package и скопировал код из его примеров для генерации облака слова.
Чтобы сделать изображение маски, я загрузил несколько изображений из Интернета и использовал Inkscape, чтобы исправить их.
Обратная связь
После публикации первой попытки в Reddit & Twitter я получил много обратной связи. Общие среди них были запросы о том, почему Дафна чаще, и почему Рон менее часты (я отвечу как позже), предложения, чтобы удалить больше слов, чтобы сосредоточить его больше на словах, связанных с Гарри Поттером, и, чтобы показать некоторые другие визуализации, особенно сравнение книг и фанфикцию.
Попытка 2.
Найти больше сложных слов
В моей первой попытке я использовал CORPUS NLTK English Stopwords, который составляет всего 179 слов. Я искал более широкий список и оказался, используя индивидуальные 20 000 самых распространенных слов из Google-10000-Английский репозиторий Отказ Каковы были настраивания? Мне пришлось удалить несколько слов (например, волшебные, волшебные, палочка, подопечные, вампиры и т. Д.) И некоторые имена (Гарри, Рон, Фред, Артур и др.) Из списка 20 тысяч, так что они не удаляются из моего анализа. Хранение результатов обработки от моей первой попытки в файлах JSON сохранила меня от проведения другого часа обработки. Я только что удалил необходимые клавиши из каждого файла данных.
Гарри Поттер Канон книги
Я также загрузил текстовые версии 7 книг из где-то в Интернете, немного продуцируют их и применили тот же процесс, что и истории фанфикций для создания их данных. Используя эти данные, я смог сравнить вхождение некоторых слов в фанфике VS Canon. Поскольку у меня были данные и код, я решил сделать их соответствующие облака слова.
Визуализация от попытки 2
Часто встречающиеся слова в топ 250 фанфикций
Средняя частота возникновения слов на книгу или история
Топ 20. Наиболее встречающиеся слова в историях фанфики
Топ 20. Наиболее возникающие слова в книгах Гарри Поттера (исключая топ-20 из историй фанфиктов)
Код для создания вышеуказанных визуализаций
Важные результаты
Кто такой Дафна? Почему она так популярна в фанфике?
Имя Гермионы было вызвано. Тремин, она покинула камеру Энтони Голдштайн, Григори Гелла и Дафна Гринграсса . Студенты, которые уже были проверены, не вернулись позже, поэтому Гарри и Рон понятия не имели, как Гермиона сделала.
-> Гарри Поттер и порядок Феникса
Daphne Greengrass – почти не сущность в каноне, а пустой шифер для писателей фанфики. В Canon & большинству фанфикций она является сестрой Астории Гринграсса (еще одна почти несущественная), которая становится женой Драко Малфоя. В фанфиктах она обычно слияние из-за ее амбиций и гибели, а не из-за того, чтобы быть чистокровным суперменом. Ее семья изображена как светлая или серая, а поддержка “Лорд Поттер”. Она популярная спаривание в независимых историях Гарри.
Я будучи пустым личным персонажем – это благополучие писателей, которые хотят написать OC без явного упоминания.
Видео объяснение Daphne Greengrass и ее популярность
Что случилось с Роном?
Рон почти напротив Дафни. JKR такая прекрасная писал Рона, что многие писатели фанатов не могут написать добрый Рон. В каноне Рон недостаточно, но также очень смешной, смелый и верный своим друзьям. В фанфикциях, особенно в том, где Гарри очень отличается от Canon (независимый, супер-питание, лорд-Поттер и т. Д.), Гарри обычно игнорирует Рон (если расходится перед Хогвартсом) или автор делает много рон, чтобы оправдать Гарри, расставив свою дружбу Отказ
Бонусные визуализации
7 Книги Canon:
Философский камень
Я пытался использовать изображение 9 3/4. Слово quirrell и Griphook часто посещаются в этой книге и потеряют свою частоту в будущих книгах.
Тайная комната
Я использовал образ DOBBY свободный эльф. Вы будете слова, как DOBBY, Lockhart (Я ненавижу этого парня), многожуальный, парсельтун, оправки, грязные колодки, что делает внешний вид в этой книге.
Узник Азкабана
Я использовал изображение зубов (джеймс »прозвище марок и формы анимага. Гарри Патронес) для этой книги. Слова, такие как Люпин, Сириус, Петтигрю, Демоменторы, Крукшанкс, Патронес начнут появляться.
Кубок огня
Я пытался использовать изображение Triewizard Trophy. Такие слова, такие как Cedric, Beauxbatons, Crood, Durmstrang начните.
Орден Феникса
Пытался использовать изображение Phoenix. Умбридж очень популярен в этой книге.
Принц полукровка
Я использовал образ князья кровью к этой книге. Помимо обычного, Slughorn – самое распространенное слово в этой книге.
Дары смерти
Я использовал образ мозговых решений для этого. Вы увидите, что «палочка» становится очень использоваться из-за «старшей палочки». Давки, плащ, Wandmaker появляются. Кроме того, Griphook возвращается.
Планы на будущее
Я планирую царапать AO3 в будущем, чтобы сделать еще один анализ. Я также могло создать некоторые другие слово облака из других популярных книг.
Ссылка:
- WordCloud Python Package
- NLTK.
- r/hpfanfiction.
- Снейп, Снейп, Северус Снейп – Музыкальное видео
Прочитайте это в моем блоге
Оригинал: “https://dev.to/haideralipunjabi/harry-potter-books-fanfiction-an-analysis-of-words-1hi7”