跳转至

11 何去何从


在前面 10 章中学习大量的新工具来帮助读者调查社交网络。读者应该已经大致了解了社交媒体生态系统,并为收集和分析数据打下了坚实的技术基础。在最后一章中还需了解一些其他资源,这些资源可以帮助读者加深知识,增强编码能力,并成为更好的数据科学家。

编码风格

与写散文一样,每个人都有自己的代码编写风格。例如,在本书中编写的代码旨在传达概念并帮助读者浏览 Python 和所需的库。这表明这些代码虽然功能强大,但也很冗长:把分析代码分解为步骤,并详细说明了每一步,比如使用变量在不同时间点存储数据框,或者创建新列来筛选的数据。这种风格的代码非常好,因为可以帮助读者(和其他协同工作的人)理解分析过程的每个阶段。但是当开始编写更长的、更复杂的脚本或 Jupyter Notebook 时,读者可能希望使用比本书前 10 章中的代码风格更加紧凑的语法。

当转向更复杂的分析并开始使用越来越多的库时,将不得不学习如何阅读各种各样的编码风格。在第 5 章重写维基百科抓取脚本时,我们简要地接触了编写可重用代码的思想。但是要编写干净、智能和有效的代码,还需要进行很多处理。编码是一个远比媒体所展示的孤立,反社会的编程者更具有协作性的过程。例如,库的作者可以从数百(有时数千)其他使用他们库的编码人员的反馈中获益。程序员总是使用别人的工作来增强自己的程序,而使用别人的代码的第一步就是要能够理解它!

以下是一些有用的资源,这些资源关于如何用 Python 和 Pandas 编写清洁的代码,以及如何在 Jupyter Notebook 中生成可重复的数据分析。虽然不是一个全面的指南,但是一个很好的开始:

●通用 Python 样式指南(https://docs.python- guide.org/writing/style/)和数据科学家样式指南(http://columbia-applied-data-science.github.io/pages/lowclass -python- style-guide.html)。

●《Think Python,2nd Edition》(第二版),由 Allen B.Downey 撰写(O\'Reilly,2015 年),可根据作者网站(https://greenteapress.com/wp/think-python-2e/上的 Creative Commons 许可免费获得)

●索非亚·海斯勒(Sofia Heisler)撰写的文章"优化 Pandas 代码的快速入门指南"(https://engineering.upside.com/a-beginners-guide-to-optimize-pandas-code-for-speed-c09ef2c6a4d6/

●Jeremy Singer-Vine 的文章"我们在共享数据分析方面学到的知识"(https://www.opennews.org/articles/what-weve-learned-about-sharing-our-data-analysis/

在本书中使用的库和工具已经在 Python 用户中经受住了时间的考验,但是新的库总会不断出现,并且其功能可能比现有的库更好。开源编程语言的本质是根据用户的需要不断发展。当读者继续旅程时,可以通过查找由所在行业的人维护的博客和论坛来了解 Python 的最新趋势。作为一个动态学习 Python 的人,作者可以证明查找有关 Python 和特定库(如:Pandas)资源的价值。

统计分析

在本书数据分析过程中使用到统计分析领域的一些基本概念。但是,对原社交数据进行像均值和中位数分析、聚合和重采样这样的概念,仅代表了在社交网络可用的数据集上运行的统计分析中的一小部分。

以下资源可以帮助读者发展统计分析技能:

●《统计会犯错》,Alex Reinhart 的书(No Starch Press,2015 年),涵盖了统计分析中的一些主要失误以及如何从中学习(https://nostarch.com/statsdonewrong/

●查尔斯·惠兰(Charles Wheelan)所著的《赤裸裸的统计学》,通过相关示例通常是有趣的介绍了统计学(https://books.wwnorton.com/books/Naked- Statistics /)

●Hadley Wickham 的学术论文"Tidy Data",提出了"整理"数据或重组数据以进行更有效的数据分析的有用方法(https://www.jstatsoft.org/article/view/v059i10

其他类型的分析

还有一些更先进的分析方法。这些方法尤其适用于社交网络数据,在过去几年里产生了极好的研究成果。

其中一个领域是自然语言处理(NLP)。自然语言处理是把文本转换为数据进行分析的过程。通过 Python 获得许多自然语言处理方法,包括自然语言工具包 NLTK(https://www.nltk.org/)和 spaCy(https://spacy.io/)。这些库让我们可以把文本分解成较小的部分,例如单词,词干,句子或短语,然后进行进一步的分析。例如,读者能会计算给定数据集中特定单词的出现次数,并研究它们与其他关键短语的关系,来了解人们如何在社交网络上讨论特定主题,其语音在特定社区内和每个新闻事件周围的演变。什么单词与特定新闻现象有关?各个团体的词汇差异如何?每个社区是否使用不同的语言讨论同一件事?基于身份类别,共同的政治和其他文化因素,越来越多的团体正在网上形成,这些团体最终形成了通用的词汇,节奏和意识形态。自然语言处理可以帮助我们更好地了解这些团体的成员如何聚集在一起,如何用自己的语言形成一个新的信息世界。

另一个蓬勃发展的领域是机器学习,是人工智能(artificial intelligence)的一个子集。机器学习已部署在从 Google 搜索栏的自动完成文本到保险估算的所有内容中。在科学研究中,机器学习也可以成为对社交网络进行"分类"的强大工具。简而言之,机器学习通过将一堆数据导入程序并让其从该数据中找到模式来进行工作。例如,如果把第 10 章中有关 Twitter 上的虚假代理的某些数据提供给机器学习算法,然后可以向该算法提供新数据来查看新数据是否可以根据第一个数据集中的模式把某些帐户归类为虚假代理。虽然这不是发现虚假公众人物的必经之路,但可能有助于缩小查阅大量推文的范围。

以下是有关自然语言处理和机器学习的一些建议资源:

●Steven Bird,Ewan Klein 和 Edward Loper 撰写的《Natural Language Processing with Python》是 NLP 的出色在线入门文章(https://www.nltk.org/book /)

●"spaCy 101:Everything You Need to Know",spaCy 的有用入门教程(https://spacy.io/usage/spacy-101

●"An Introduction to Machine Learning with scikit-learn",为刚开始使用机器学习的人提供了有关 scikit-learn 库的教程(https://scikit-learn.org/stable/tutorial/basic/tutorial.html)

总结

在 10 章的课程中,读者只能学到很多东西。与任何技能一样还需发展和磨练技能的空间,使这些技能适应所从事的特定领域。本书旨在为读者提供扎实的基础,以便在此基础上对社交媒体生态系统进行分析。 最重要的是:作者希望能激发读者对于社交媒体世界及更好地了解在线人类行为的好奇心。本书只展示了在很短的时间内观察到的社交媒体的影响,希望本书能使读者能够了解未来几年的影响。



回到顶部