关于数据科学:数据科学在文本分析中的应用-中英文-NLP上
在《后疫情时代,数据迷信赋能游览行业服务质量晋升》这篇博文中,咱们介绍了猫途鹰文本剖析我的项目的背景和解决方案,并展现了最终的剖析后果。接下来,对于中英文 NLP 感兴趣的读者,咱们会为大家具体解说数据采集、数据入库、数据清理和数据建模步骤中波及的原理和代码实现。因为篇幅的限度,上篇会重点解说数据采集、数据入库和数据清理这三个步骤,下篇则会解说数据建模的残缺流程。 数据采集1. 抓取工具剖析网页内容抓取是从互联网上获取数据的形式之一。对于应用 Python 进行网页抓取的开发者,比拟支流的工具有以下几种: Beautiful SoupBeautiful Soup 是几种工具中最容易上手的网页抓取库,它能够疾速帮忙开发者从 HTML 或 XML 格局的文件中获取数据。在这个过程中,Beautiful Soup 会肯定水平上读取这类文件的数据结构,并在此基础上提供许多与查找和获取数据内容相干的方程。除此之外,Beautiful Soup 欠缺、易于了解的文档和沉闷的社区使得开发者不仅能够疾速上手,也能疾速精通,并灵活运用于开发者本人的利用当中。 不过正因为这些工作个性,相较于其余库而言,Beautiful Soup也有比拟显著的缺点。首先,Beautiful Soup 须要依赖其余 Python库(如 Requests)能力向对象服务器发送申请,实现网页内容的抓取;也须要依赖其余 Python 解析器(如 html.parser)来解析抓取的内容。其次,因为Beautiful Soup须要提前读取和了解整个文件的数据框架以便之后内容的查找,从文件读取速度的角度来看,Beautiful Soup 绝对较慢。在许多网页信息抓取的过程中,须要的信息可能只占一小部分,这样的读取步骤并不是必须的。 ScrapyScrapy 是十分受欢迎的开源网页抓取库之一,它最突出的个性是抓取速度快,又因为它基于 Twisted 异步网络框架,用户发送的申请是以无阻塞机制发送给服务器的,比阻塞机制更灵便,也更节俭资源。因而,Scrapy 领有了以下这些个性: 对于 HTML 类型网页,应用XPath或者CSS表述获取数据的反对可运行于多种环境,不仅仅局限于 Python。Linux、Windows、Mac 等零碎都能够应用 Scrapy 库扩展性强速度和效率较高须要的内存、CPU 资源较少纵然 Scrapy 是功能强大的网页抓取库,也有相干的社区反对,但生涩难懂的文档使许多开发者望而生畏,上手比拟难。 SeleniumSelenium 的起源是为了测试网页应用程序而开发的,它获取网页内容的形式与其余库截然不同。Selenium 在结构设计上是通过自动化网页操作来获取网页返回的后果,和 Java 的兼容性很好,也能够轻松应答 AJAX 和 PJAX 申请。和 Beautiful Soup 类似,Selenium 的上手绝对简略,但与其余库相比,它最大的劣势是能够解决在网页抓取过程中呈现的须要文本输出能力获取信息、或者是弹出页面等这种须要用户在浏览器中有染指动作的状况。这样的个性使得开发者对网页抓取的步骤更加灵便,Selenium 也因而成为了最风行的网页抓取库之一。 因为在获取景点评论的过程中须要应答搜寻栏输出、弹出页面和翻页等状况,在本我的项目中,咱们会应用 Selenium 进行网页文本数据的抓取。 2. 网页数据和构造的初步理解各个网站在开发的过程中都有本人独特的构造和逻辑。同样是基于 HTML 的网页,即便 UI 雷同,背地的层级关系都可能天壤之别。这意味着理清网页抓取的逻辑不仅要理解指标网页的个性,也要对将来同一个网址的更新换代、同类型其余平台的网页个性有所理解,通过比拟类似的局部整顿出一个绝对灵便的抓取逻辑。 ...