Kai Li, Feng Mai, Rui Shen, Xinyan Yan, Measuring Corporate Culture Using Machine Learning, The Review of Financial Studies, 2020

摘要: 我们使用最新的机器学习技术——词嵌入模型——和209,480份盈利电话会议记录创建了一本文化词典。我们对2001年至2018年期间的62,664个公司年度观察数据的五个公司文化价值——创新、诚信、质量、尊重和团队合作进行评分。结果表明,创新文化比公司创新的通常衡量标准——研发支出和专利数量——更广泛。此外,我们还表明,企业文化与业务结果相关,包括运营效率、风险承担、盈利管理、高管薪酬设计、企业价值和交易等,并且文化-绩效联系在困难时期更加显著。最后,我们提供了初步证据,表明企业文化受到重大公司事件(如合并和收购)的影响。

内容概况

今天分享的内容主要包括两部分, 即

  • 使用word2vec扩展得到五大类企业文化词典
  • 使用TFIDF算法,结合五类文化词典对公司进行评分

算法步骤

  1. 构建种子词; 人工构建五类企业文化的种子词典, 每类词典人工准备5-10个词
  2. word2vec扩充; 使用word2vec扩充五类企业文化词典的词汇量
  3. tf-idf;将文本数据转为tf-idf格式
  4. 计算五类企业文化得分; 筛选含有文化词的列,按不同企业文化类别,分别求和得到得分。



一、人工构建种子词典

词向量法程序会挖掘出原始数据中的所有词的词向量,这时候如果给词向量模型传入种子词,会根据语义空间的距离远近识别出多个近义词。

手工构建了五大类企业文化词典,存放在txt中,即

  • data/w2v_seeds/innovation.txt
  • data/w2v_seeds/integrity.txt
  • data/w2v_seeds/quality.txt
  • data/w2v_seeds/respect.txt
  • data/w2v_seeds/teamwork.txt

注意,在txt中,每行一个词语。原始语料

  • data/w2v_corpus.txt



二、 词向量法扩展词典

论文使用gensim的word2vec算法扩充企业文化词典。但代码太复杂,对初学Python的小白而言,代码的调试难度较大。大邓在这里将代码进行压缩和封装,只需要几行就能原作者几十行才能实现的词向量扩充的功能。需要安装gensim库和cntext库

#安装需要的包
!pip3 install gensim==4.2.0
!pip3 install cntext --upgrade

注意,下方代码运行可能会出现nltk_data问题,解决办法参考视频 https://www.bilibili.com/video/BV14A411i7DB/

import cntext as ct
import os

#初始化模型,需要设置lang参数。
model = ct.W2VModels(cwd=os.getcwd(), 
                     lang='english')  #语料数据 w2v_corpus.txt

#训练词向量模型
model.train(input_txt_file='data/w2v_corpus.txt')


#根据种子词和训练好的词向量模型,筛选出没类词最相近的前100个词
model.find(seedword_txt_file='data/w2v_seeds/integrity.txt', 
           topn=100)
model.find(seedword_txt_file='data/w2v_seeds/innovation.txt', 
           topn=100)
model.find(seedword_txt_file='data/w2v_seeds/quality.txt', 
           topn=100)
model.find(seedword_txt_file='data/w2v_seeds/respect.txt', 
           topn=100)
model.find(seedword_txt_file='data/w2v_seeds/teamwork.txt', 
           topn=100)
Step 1/4:...Preprocess   corpus ...
Step 2/4:...Train  word2vec model
            used   42 s
Step 3/4:...Prepare similar candidates for each seed word in the word2vec model...
Step 4/4 Finish! Used 46 s
Step 3/4:...Prepare similar candidates for each seed word in the word2vec model...
Step 4/4 Finish! Used 46 s
Step 3/4:...Prepare similar candidates for each seed word in the word2vec model...
Step 4/4 Finish! Used 46 s
Step 3/4:...Prepare similar candidates for each seed word in the word2vec model...
Step 4/4 Finish! Used 46 s
Step 3/4:...Prepare similar candidates for each seed word in the word2vec model...
Step 4/4 Finish! Used 46 s



三、 使用TF-IDF有权重计算情感词典

一般的情感分析是无权重算法,即每个词语的权重都是1,只需要统计文本中某类概念词出现的多寡,就能确定该概念的得分

这篇论文使用的tf-idf, 我们可以将tf简单的理解为某词在文本出现的次数, idf是该词的稀奇程度(少见多怪程度)。一般我们认为一个词语出现的次数越多,信息量越大。但有时候,稀缺性也是一种很重要的信息量。例如以下两类词

  • A 的、它、呢、了……
  • B 核能、战争、死……

A类词,几乎出现在中文所有的句子中,我们可以忽略掉这类词,不影响对句子语义的理解。而B类词很少出现在我们日常文本句子中,但一旦出现,直接影响句子的语义。所以只考虑TF词频的大小还不全面,我们还需要纳入稀缺性信息IDF。

3.1 读入数据

# 读企业文本数据
import pandas as pd

corporate_df = pd.read_excel('data/corporate_culture.xlsx')
corporate_df.head()

Run

idx text
0 0 Thank you sir. Ladies and gentlemen, at this t...
1 1 [OPERATOR INSTRUCTIONS]. Our first question is...
2 2 Thank you, Mr. Gallagher. [Caller instructions...
3 3 (OPERATOR INSTRUCTIONS.) Ann Gillen, Lehman B...
4 4 (OPERATOR INSTRUCTIONS) John Harmon. I have...