今头条!LIWC vs Python | 文本分析之词典统计法略讲(含代码)
本文原理介绍翻译自 https://www.liwc.app/help/howitworks
对比及Python代码主要是自创作
LIWC是一种付费的文本分析软件,在学界知名度挺高的。今天翻译了LIWC: how it works https://www.liwc.app/help/howitworks ,通过LIWC来侧面加深对 词典情感分析 的理解。
词频:可靠的指标语言查询和词数统计 (LIWC「Linguistic Inquiry and Word Count」) 的核心逻辑来自数十年的科学研究表明,人们的语言可以提供极其丰富心理状态信息,包括情绪、思维方式和社会关注点。有时,这些见解是相当明显和直截了当的。例如,如果某人使用了很多像 「happy、excited、elated」 这样的词,他们可能会感到快乐,我们可以使用这些信息来可靠地估计他们当前的情绪状态。然而,言语行为和心理之间的关系往往不那么明显。例如,更自信、社会地位更高的人倾向于使用相对较高的 「you」 词,而使用 「me」词的频率相对较低。在这里,数十年的实证研究——尤其是使用 LIWC 作为科学工具的研究——也为我们提供了理解、解释和量化心理、社会和行为现象的专业方法。
但作为算法,实际上主要的计算方法是词频。而这点,借助Python可以完成从数据清洗到数据分析全流程。
丰富的词典LIWC-22 带有 100 多个内置字典,用于捕捉人们的社会和心理状态。每本词典都包含一系列单词、词干、表情符号和其他特定的语言结构,这些结构已被识别为反映感兴趣的心理类别。例如,「认知过程cognitive processes」词典包括 1,000 多个条目,这些条目反映了一个人何时通过一般和更具体的方式积极处理信息。「从属关系affiliation」词典包括超过 350 个条目,这些条目反映了一个人与他人联系的需要,其中包括 「community」 和 **「together」 **等词。
LIWC 读取给定文本并将文本中的每个单词与字典单词列表进行比较,并计算文本中与每个字典类别匹配的总单词的百分比。例如,如果 LIWC 使用内置的 LIWC-22 词典分析包含 1000 个单词的单个语音,它可能会发现其中 50 个单词与积极情绪有关,10 个单词与从属关系有关。LIWC 会将这些数字转换为百分比:5.0% 的积极情绪和 1.0% 的从属关系。
请注意,许多 LIWC-22 类别是按层次结构组织的。根据定义,所有愤怒的词都被归类为负面情绪词,而负面情绪词又被归类为情绪词。另请注意,同一个词可能会被分类在多个字典中。例如,「celebrate」一词在积极情绪和成就词典中都有。
文本越长越好不要忘记,LIWC 和所有文本分析工具一样,是一种相对粗糙的工具。它有时会在识别和计算单个单词时出错。考虑一下「mad」这个词——一个在愤怒词典中被计算在内的词。通常,今天,「mad」这个词确实反映了某种程度的愤怒。然而,有时它表达了喜悦(「he"s mad for her.」)或精神不稳定(「mad as hatter」)。幸运的是,这很少成为问题,因为 LIWC 利用了语言使用的概率模型。是的,在给定的句子中,「mad」这个词可能被用来表达积极的情绪。然而,如果作者实际上正在经历积极情绪,他们通常会倾向于使用一个以上的积极情绪词,并且很可能很少使用其他愤怒词,这应该会导致积极情绪得分高而愤怒得分低。要记住的重要一点是,您分析的单词越多,结果就越值得信赖。10,000 字的文本比 100 字的文本产生的结果可靠得多。任何少于 25-50 个单词的文本都应该以一定的怀疑态度来看待。
至此翻译结束
简单对比:Python与LIWC工具 | 简介 | 算法 | 优势 | 劣势 |
---|---|---|---|---|
Python | 编程语言 | 词频(典)法、词嵌入法 | 接近全能, 可以用Python搞定从数据采集、清洗、分析全流程可以把最新前沿应用到自己研究中 (nature、science、pnas相关文本分析方法的论文会大多会开源自己的Python代码)。 | 有一定的学习门槛 |
LIWC | 软件 | 主要是词典法 | 学界认可内置丰富的词典, 拿来即用。 | 不够灵活, 对中文支持不友好,内置词典几乎全是西方语言。 |
综合来看,如果只使用 词频(词典)法 统计某一构念相关词语在文中出现的占比, LIWC 较 Python和R等编程语言有微弱优势。这里需要说明一下,完整的文本(数据)分析包含采集、清洗、分析。其中清洗部分工作量是最大的,数据科学家有个形象的统计,认为清洗占整个数据分析工作量的70%左右。
LIWC的上游环节往往需要借助Python和R等其他语言对原始数据做数据清洗和整理。
如果数据分析的代码量一共有100行,那么清洗的代码可能有70行,数据分析的代码只需再写30行。为了数据清洗任务,你可能不得不学Python,之后可再用LIWC;也可以 LIWC&Python一起用。
好消息大家可能觉得 词频(词典)法 算法过于粗暴, 通过对LIWC工作原理了解,我们知道LIWC软件底层算法也是词频(词典)法。
现在大家应该对 词频(词典)法 有了新的认识,更加有理论自信,技术自信。而Python对这种算法的运行其实很擅长的,
cntext是我一直在开发更新的一个包,一直想将常见的文本分析代码工作量压缩至 个位行数。
功能模块含
stats 文本统计指标
词频统计可读性内置pkl词典情感分析dictionary构建词表(典)
Sopmi 互信息扩充词典法W2Vmodels 词向量扩充词典法Glove Glove词向量模型similarity 文本相似度
cos相似度jaccard相似度编辑距离相似度mind 计算文本中的认知方向(态度、偏见)
比如对一条测试数据test_text, 使用 词频(词典)法 做情感分析,代码量不到5行
importcntextasct#自定义情感词典diction={"pos":["高兴","快乐","分享"],"neg":["难过","悲伤"]}#测试数据test_text="我今天得奖了,很高兴,我要将快乐分享大家。"#情感计算ct.sentiment(text=test_text,diction=diction,lang="chinese")
Run
{"pos_num":3,"neg_num":0,"stopword_num":8,"word_num":14,"sentence_num":1}
即时对一个csv或excel文件,某一列文本做情感分析,代码量不超过10行。我们先看一下数据
importpandasaspddf=pd.read_csv("test_sentiment_texts.csv")df.head()
Run
对text列做情感分析,使用自定义情感词典
(资料图片)
importpandasaspdimportcntextasct#导入自定义情感词典diction={"pos":["高兴","快乐","分享"],"neg":["难过","悲伤"]}#情感计算defdiy_senti(text):returnpd.Series(ct.sentiment(text=text,diction=diction,lang="chinese"))#读取数据df=pd.read_csv("test_sentiment_texts.csv")#选中text列,对该列进行情感计算,得到dataframesenti_df=df["text"].apply(diy_senti)#将df和senti_df两个dataframe合并result_df=pd.concat([df,senti_df],axis=1)#存储&显示结果result_df.to_csv("result_of_sentiment_texts.csv")result_df.head()
Run
精选文章从符号到嵌入:计算社会科学的两种文本表示
推荐 | 社科(经管)文本分析快速指南
使用cntext训练Glove词嵌入模型
认知的测量 | 向量距离vs语义投影
Wordify | 发现和区分消费者词汇的工具
karateclub库 | 计算社交网络中节点的向量
经管实证 | Python文本挖掘&指标构建
PNAS | 文本网络分析&文化桥梁Python代码实现
Wordify | 发现和区分消费者词汇的工具
BERTopic库 | 使用预训练模型做话题建模
tomotopy | 速度最快的LDA主题模型
文本分析方法在《管理世界》(2021.5)中的应用
Wow~70G上市公司定期报告数据集
doccano|为机器学习建模做数据标注
使用WeasyPrint自动生成pdf报告文件
100min视频 | Python文本分析与会计
在jupyter内运行R代码
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...