基于Python的语料库数据处理(一)
《Python玩语料库数据》专栏·第1篇
文 | 段洵
1032字 | 5 分钟阅读
【数据科学与人工智能】已开通Python语言社群,学用Python,玩弄数据,求解问题,以创价值。喜乐入群者,请加微信号shushengya360,或扫描文末二维码,添加为好友,同时附上Python-入群。有朋自远方来,不亦乐乎,并诚邀入群,以达相互学习和进步之美好心愿。
一、计算二元组的共信息值
二元组(Bigram)指的是字符串中两个相邻的单词组合。比如在字符串“I love Python programming”中有“I love”、“love Python”、“Python programming”三个二元组。我们可以通过计算二元组的共信息值来判断该二元组内的两个单词的共现是否具有显著意义。二元组共信息值得计算公式如下:
其中f(x)为x词在语料库中出现的频次,f(y)为y词在语料库中出现的频次,f(x,y)为(x,y)在语料库中共现的频次,N为语料库的库容。
接下来举一个例子加深理解:假设二元组(there,are)在某库容为1000000词的语料库中共现的频次为335,there在该语料库中的频次为2844,are在该语料库中出现的频次为4393,试计算二元组(there,are)的共信息值。
通过计算,共信息值约为4.74,说明共现意义显著。
二、计算二元组的T值
除了计算共信息值以外,还可以通过计算T值来判断该二元组内两个单词的共现是否具有显著意义。二元组T值计算公式为:
其中f(x)为x词在语料库中出现的频次,f(y)为y词在语料库中出现的频次,f(x,y)为(x,y)在语料库中共现的频次,N为语料库的库容。
以上一二元组为例加深理解:假设二元组(there,are)在某库容为1000000词的语料库中共现的频次为335,there在该语料库中的频次为2844,are在该语料库中出现的频次为4393,试计算二元组(there,are)的共信息值。
通过计算,T约为17.62,说明共现意义显著。
三、频次转换
接下来我们来练习观测频次(observed frequency)与相对频次(relative frequency)或标准化频次(normalized frequency)的转换。假设某单词x在某语料库中出现了1538次,那么1538就是该单词在语料库中的观测频次。在汇报数据时,通常汇报观测频次,但相对频次或标准化频次也可汇报,即某单词在语料库中每1000词次或10000词次出现的频次。假设某语料库的库容为2156586词,求单词x的相对频次或标准化频次。
通过计算,每1000词次中x的相对频次或标准化频次约为0.71,每10000词次中x的相对频次或标准化频次约为7.13。
四、结语
这是基于Python的语料库数据处理专栏的第一期,以后也会定期更新。有在研究语料库的朋友可以一起来学习,使用Python进行语料库数据处理会更方便、更快捷。
公众号推荐
数据思践
数据思践公众号记录和分享数据人思考和践行的内容与故事。
Python语言群
诚邀您加入
请扫下方二维码加我为好友,备注Python-入群。有朋自远方来,不亦乐乎,并诚邀入群,以达相互学习和进步之美好心愿。。