如何找出各行业龙头?
要定义什么叫「行业」——这决定了我们要收集哪些指标、以及如何给各个指标赋权; 其次,要定义什么叫「龙头」——这决定了我们如何判断各个公司的综合实力; 最后,我们要建立一套搜索引擎来找到符合条件的公司 为了便于编程,我们把所有需要输入的项目都定义为文本串,用符号「$」标识——比如「$companyName$」表示公司名称,"$country$"代表国家/地区,"$industry$"则代表行业。为了简化的起见,这里只考虑了单个变量的情况,但程序可以很容易地添加对多字段的支持。
为了简单起见,我们假设需要寻找以下类型的「行业龙头」: 定义完变量后,我们就可以开始编程搜索引擎了。
对于搜索引擎来说,最重要的两个功能是: 这里我们只需要实现前两个即可。为了简化问题,这里直接使用字符串的“与(AND)”和“或(OR)”运算,实际上可以使用正则表达式或其他现代的数据库语法来实现更加复杂的功能。 基于上述算法,我们就可以编写一个能实现的搜索引擎了。
下面我们以查找“零售业”行业的龙头企业为例进行演示。 由于互联网数据以文本形式存在,因此我们首先需要构建一个词语分割器,将文本串切分成词元。 除了分词以外,我们需要构建其他几个模块: 其中,行业名称提取器的核心逻辑在于,先通过分词识别出可能的行业名词,然后通过其它手段进一步确认。具体而言,可以先判断词形,再判断词汇在语料中的出现频率,最后参考词典确定最终结果。而公司名匹配的核心在于找到与待匹配串最为相似的候选解。
上面完成了龙头的搜索,但是还没有考虑到排序的问题。对于多个符合条件的公司对象,还需要进行二次筛选,按照某些规则对结果进行排序。可以考虑的依据包括: 基于这些筛选条件,我们可以完成龙头的搜索引擎了! 感兴趣的同学可以下载测试一下: https://github.com/dapengpeng/FinSearch