论文部分内容阅读
关键词:网络爬虫;自然语言处理;动态企业画像
1绪论
企业级画像系统是以企业为主体,通过对企业规模、经营范围、公司人数、注册资本、财务状况、招聘状态、最新业务动态等信息进行采集和分析,构建出不同标签的企业画像。企业画像的内容可以根据具体的应用场景进行定制化设定。企业画像的标签可以是一个公司的发展阶段(初创、成熟、衰退),可以通过财务状况而判断出来的公司的健康程度,亦可以是公司的发展方向等,从而为B2B业务的企业画像提供更多维度来帮助企业进行精准营销,优化推广渠道,以及实时调整市场战略。在此,尝试利用大数据与机器学习构建一个企业级画像系统,并且实现精准实時地更新企业画像,从而可对以B2B业务为主的公司起到一定的辅助作用。
2数据采集
通过网络爬虫获取实时数据。
(1)爬取网站。由于企业级画像主要会涉及公司信息,目前提供公司信息的主要平台有天眼查、IT桔子、企查查等,而公司的最新动态以及最新科技新闻可通过新浪网、腾讯网、今日头条等获取。这些网站所提供的数据都为公开数据,不存在商业敏感问题,且数据质量较高,还能够提供较为完整的企业信息,但有些网站需付费使用,而有些网站有反爬虫机制,因此需要结合特定的应用场景以及成本预算,选择合适的网站进行爬取。根据数据库的性能以及业务需求,制定合理的爬取范围以及爬取时间,如要实现实时动态的企业画像,则需要较高的数据库配置以及模型训练所需要的内存空间。
(2)爬取内容。企业画像的维度通常包括企业行业的分类、企业所处阶段(初创、成熟、衰退)、企业健康指数、公司主营业务变更、企业最新舆情等。其中企业行业分类通常可以按照主要经营业务、经营范围、企业简介等信息中的关键词,例如“娱乐”“工业”“医药”等进行分类;企业所处阶段通常需要获取公司创立时间、注册资本、财务报表等数据进行判定;企业健康指数需要通过公司招聘信息、申请专利数、盈利状况等数据进行计算;公司主营业务变更以及最新舆情可以通过公司在新闻网站发布的官方新闻获取。
(3)爬虫技术。针对网络爬虫的工具有很多,由于Python语言优美,代码简单,模块功能强大,现已成为数据挖掘、机器学习、人工智能首选编程语言。其中Python Scrapy网络爬虫框架由于灵活性高、社区人数多、文档完善,所以被广泛使用。由于部分网站存在大量JavaScript以及加密信息的反爬虫壁垒,可能会涉及需要更多的破解方法来进行爬虫,可利用sele-nium+chromdriver模拟chrolTle浏览器获得渲染后的页面,再使用PyQuery对源码进行解析,解决JavaScript加载问题,针对文字图片加密,可以通过文字坐标解密方法进行文字解密操作,从而最终获取文字信息,常见的反爬虫机制及应对如下表所示。
(4)数据预处理。由于企业画像涉及的数据维度较多,数据错综复杂,文本数据质量无法保证,因此需要进行数据预处理,经过数据验证(公司信息验证)、数据整理(公司信息整合)、数据清洗(公司信息过滤),最终整合成结构化数据入库,具体流程如图1所示。
3企业画像
基于自然语言处理实现企业级画像。自然语言处理(Nature Language Processing,NLP)是采用计算机方法来理解和使用人类语言的技术与思想,现阶段,自然语言的应用场景主要包括机器翻译、文本分类、信息抽取、语音识别、情感分析、主题分析、舆情检测和智能问答等。其中,企业画像主要会用到信息抽取、文本分类、舆情监测等算法对文本进行建模,这些算法的建模流程通常为:文本分词、去停用词、关键词提取、模型训练。
(1)文本分词。针对中文文本分词,可以使用jieba分词器,该工具是一款开源的,使用较为广泛、分词效果较好的分词器。它基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG),采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型(Hidden Markov Model,隐马尔可夫模型),使用了Viterbi算法,并且jieba支持自定义专业词典和未登录词典。jieba分词器另外一个强大的功能是,它可以提供自定义词典的接口,用户可以根据自己的需要,将自定义的词典导入到jieba字典库,之后的分词可以根据用户自定义的词典进行分词。
(2)去停用词。分好词后,根据具体的应用场景需要将文本中大量出现的语气助词、标点符号、连接词、量词等在文本模型训练前从文本中过滤掉,然而有些应用场景需要保留量词,所以并没有一个固定的停用词表来适用于所有场景,所有的停用词表需要根据实际情况人为输入。停用词列表
(3)关键词提取。经过分词和去停用词之后的文本,还会存在大量的低频词汇或非核心词汇,这些词通常数据量较大,不仅会带来存储的浪费,而且也不利于文本模型的训练,所以通常在文本模型训练前,需要先从文本中提取出核心关键词,再对这些关键词进行模型训练。常用的关键词提取算法包括TF-IDF、LDA、LSI、TextRank等。例如TF-IDF(termfrequency-inverse document frequency,词频-逆向文件频率)是一种用于信息检索与文本挖掘的常用加权技术,TF-IDF是一种统计模型,用以评估一个词在一个文本中的重要程度,词的重要性会随着它在当前文本中出现的次数成正比增加,同时会随着它在整个语料库中出现的次数成反比下降,其中TF(Term-Frequency)是当前文本中的词频统计,IDF(InverseDocument Frequency)是逆向文档频率统计,具体算法公式如图3所示。
(4)模型训练。关于文本训练的模型有很多,通常要根据不同的业务场景选择合适的模型训练,针对公司画像可能会涉及的场景包括信息抽取、文本分类、舆情监测等,可以用到的模型有word2vec,LSTM,TextRNN+Attention,BERT等,所有模型都会涉及词向量的概念(Word Embedding),它是由实数组成的固定维数的向量,每个词条对应一个词向量,通过模型训练(如图4所示)最终可以将词条映射到对应的词向量上,然后将词向量作为输入变量放到不同模型比如分类模型、计算相似度模型、聚类模型中进行最终模型的训练。
(5)企业画像。通过网络爬虫获取到的结构化数据,经过数据清洗后可直接入库,包括公司名称、注册资本、注册城市、注册时间、财务报表、招聘人数、申请专利、员工人数等信息,并可作为企业基础信息,用以确定企业所处阶段、企业健康指数、企业标签等。非结构化的文本数据经过模型训练后转化成结构化数据再入库,如文本分类模型可以确定企业所属行业、企业最新舆情动态;关键词提取模型可以构建企业新闻词云,了解企业的最新动态和发展方向;文本相似度模型可以查询到具有相似属性的公司,实现企业问聚类进行群体分析;企业倾向性模型可以预测企业是否有购买某项产品或服务的可能性,从而促成精准营销;企业生命周期管理模型可以实时洞悉企业价值(历史价值、当前价值、潜在价值),从而挖掘出企业所有可能机会点;销售漏斗报告模型可以实时观察企业忠诚度以及流失度,从而调整企业营销策略;企业产品推荐模型可以通过计算企业用户销售行为,从而定制化的推荐高可能性购买产品。根据以上结构化数据和模型结果最终可以得到企业级画像。整体架构如图5所示。
4结论
由于市场上有关企业画像的方法论和系统不够普及,导致以B2B业务为主的公司很少像B2C公司一样对客户进行画像,从而进行精准营销,为此本文基于大数据与机器学习技术构建了动态企业画像系统,尽管设计的系统已经通过验证性实验具备一定的可行性,但以上都只是基于PC端做的相关研究,并没有实时收集海量数据以及大规模进行模型训练,因此还不能确定企业画像在海量数据上的表现,因此接下来会尝试搭建或租用阿里云、AWS、Azure云平台进行海量数据的验证。
1绪论
企业级画像系统是以企业为主体,通过对企业规模、经营范围、公司人数、注册资本、财务状况、招聘状态、最新业务动态等信息进行采集和分析,构建出不同标签的企业画像。企业画像的内容可以根据具体的应用场景进行定制化设定。企业画像的标签可以是一个公司的发展阶段(初创、成熟、衰退),可以通过财务状况而判断出来的公司的健康程度,亦可以是公司的发展方向等,从而为B2B业务的企业画像提供更多维度来帮助企业进行精准营销,优化推广渠道,以及实时调整市场战略。在此,尝试利用大数据与机器学习构建一个企业级画像系统,并且实现精准实時地更新企业画像,从而可对以B2B业务为主的公司起到一定的辅助作用。
2数据采集
通过网络爬虫获取实时数据。
(1)爬取网站。由于企业级画像主要会涉及公司信息,目前提供公司信息的主要平台有天眼查、IT桔子、企查查等,而公司的最新动态以及最新科技新闻可通过新浪网、腾讯网、今日头条等获取。这些网站所提供的数据都为公开数据,不存在商业敏感问题,且数据质量较高,还能够提供较为完整的企业信息,但有些网站需付费使用,而有些网站有反爬虫机制,因此需要结合特定的应用场景以及成本预算,选择合适的网站进行爬取。根据数据库的性能以及业务需求,制定合理的爬取范围以及爬取时间,如要实现实时动态的企业画像,则需要较高的数据库配置以及模型训练所需要的内存空间。
(2)爬取内容。企业画像的维度通常包括企业行业的分类、企业所处阶段(初创、成熟、衰退)、企业健康指数、公司主营业务变更、企业最新舆情等。其中企业行业分类通常可以按照主要经营业务、经营范围、企业简介等信息中的关键词,例如“娱乐”“工业”“医药”等进行分类;企业所处阶段通常需要获取公司创立时间、注册资本、财务报表等数据进行判定;企业健康指数需要通过公司招聘信息、申请专利数、盈利状况等数据进行计算;公司主营业务变更以及最新舆情可以通过公司在新闻网站发布的官方新闻获取。
(3)爬虫技术。针对网络爬虫的工具有很多,由于Python语言优美,代码简单,模块功能强大,现已成为数据挖掘、机器学习、人工智能首选编程语言。其中Python Scrapy网络爬虫框架由于灵活性高、社区人数多、文档完善,所以被广泛使用。由于部分网站存在大量JavaScript以及加密信息的反爬虫壁垒,可能会涉及需要更多的破解方法来进行爬虫,可利用sele-nium+chromdriver模拟chrolTle浏览器获得渲染后的页面,再使用PyQuery对源码进行解析,解决JavaScript加载问题,针对文字图片加密,可以通过文字坐标解密方法进行文字解密操作,从而最终获取文字信息,常见的反爬虫机制及应对如下表所示。
(4)数据预处理。由于企业画像涉及的数据维度较多,数据错综复杂,文本数据质量无法保证,因此需要进行数据预处理,经过数据验证(公司信息验证)、数据整理(公司信息整合)、数据清洗(公司信息过滤),最终整合成结构化数据入库,具体流程如图1所示。
3企业画像
基于自然语言处理实现企业级画像。自然语言处理(Nature Language Processing,NLP)是采用计算机方法来理解和使用人类语言的技术与思想,现阶段,自然语言的应用场景主要包括机器翻译、文本分类、信息抽取、语音识别、情感分析、主题分析、舆情检测和智能问答等。其中,企业画像主要会用到信息抽取、文本分类、舆情监测等算法对文本进行建模,这些算法的建模流程通常为:文本分词、去停用词、关键词提取、模型训练。
(1)文本分词。针对中文文本分词,可以使用jieba分词器,该工具是一款开源的,使用较为广泛、分词效果较好的分词器。它基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG),采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型(Hidden Markov Model,隐马尔可夫模型),使用了Viterbi算法,并且jieba支持自定义专业词典和未登录词典。jieba分词器另外一个强大的功能是,它可以提供自定义词典的接口,用户可以根据自己的需要,将自定义的词典导入到jieba字典库,之后的分词可以根据用户自定义的词典进行分词。
(2)去停用词。分好词后,根据具体的应用场景需要将文本中大量出现的语气助词、标点符号、连接词、量词等在文本模型训练前从文本中过滤掉,然而有些应用场景需要保留量词,所以并没有一个固定的停用词表来适用于所有场景,所有的停用词表需要根据实际情况人为输入。停用词列表
(3)关键词提取。经过分词和去停用词之后的文本,还会存在大量的低频词汇或非核心词汇,这些词通常数据量较大,不仅会带来存储的浪费,而且也不利于文本模型的训练,所以通常在文本模型训练前,需要先从文本中提取出核心关键词,再对这些关键词进行模型训练。常用的关键词提取算法包括TF-IDF、LDA、LSI、TextRank等。例如TF-IDF(termfrequency-inverse document frequency,词频-逆向文件频率)是一种用于信息检索与文本挖掘的常用加权技术,TF-IDF是一种统计模型,用以评估一个词在一个文本中的重要程度,词的重要性会随着它在当前文本中出现的次数成正比增加,同时会随着它在整个语料库中出现的次数成反比下降,其中TF(Term-Frequency)是当前文本中的词频统计,IDF(InverseDocument Frequency)是逆向文档频率统计,具体算法公式如图3所示。
(4)模型训练。关于文本训练的模型有很多,通常要根据不同的业务场景选择合适的模型训练,针对公司画像可能会涉及的场景包括信息抽取、文本分类、舆情监测等,可以用到的模型有word2vec,LSTM,TextRNN+Attention,BERT等,所有模型都会涉及词向量的概念(Word Embedding),它是由实数组成的固定维数的向量,每个词条对应一个词向量,通过模型训练(如图4所示)最终可以将词条映射到对应的词向量上,然后将词向量作为输入变量放到不同模型比如分类模型、计算相似度模型、聚类模型中进行最终模型的训练。
(5)企业画像。通过网络爬虫获取到的结构化数据,经过数据清洗后可直接入库,包括公司名称、注册资本、注册城市、注册时间、财务报表、招聘人数、申请专利、员工人数等信息,并可作为企业基础信息,用以确定企业所处阶段、企业健康指数、企业标签等。非结构化的文本数据经过模型训练后转化成结构化数据再入库,如文本分类模型可以确定企业所属行业、企业最新舆情动态;关键词提取模型可以构建企业新闻词云,了解企业的最新动态和发展方向;文本相似度模型可以查询到具有相似属性的公司,实现企业问聚类进行群体分析;企业倾向性模型可以预测企业是否有购买某项产品或服务的可能性,从而促成精准营销;企业生命周期管理模型可以实时洞悉企业价值(历史价值、当前价值、潜在价值),从而挖掘出企业所有可能机会点;销售漏斗报告模型可以实时观察企业忠诚度以及流失度,从而调整企业营销策略;企业产品推荐模型可以通过计算企业用户销售行为,从而定制化的推荐高可能性购买产品。根据以上结构化数据和模型结果最终可以得到企业级画像。整体架构如图5所示。
4结论
由于市场上有关企业画像的方法论和系统不够普及,导致以B2B业务为主的公司很少像B2C公司一样对客户进行画像,从而进行精准营销,为此本文基于大数据与机器学习技术构建了动态企业画像系统,尽管设计的系统已经通过验证性实验具备一定的可行性,但以上都只是基于PC端做的相关研究,并没有实时收集海量数据以及大规模进行模型训练,因此还不能确定企业画像在海量数据上的表现,因此接下来会尝试搭建或租用阿里云、AWS、Azure云平台进行海量数据的验证。