词共现矩阵表示词向量和点互信息

本文介绍了如何通过计算文档中词的频次和共现矩阵,利用点互信息调整权重,以更准确地识别文档主题。特别关注了如何处理高频词和低频词,以及如何使用NLP技术将文本数字化处理为向量表示。
摘要由CSDN通过智能技术生成

1.文档中某些字/词出现的频次往往能反应该字在文档中的重要程度,也从侧面反应了文档的主题,比如一个新闻,如果出现很多类似“足球”“篮球”词汇的描述,我们可以大概率推断这是一个关于体育的新闻。但是有些高频词会影响我们对文档的分析,比如“我”“你”“。、,!”这种词汇在文档中的数目非常多,但对于我们分析文档,没有什么益处,毕竟所有的文档,基本都包括这些内容。

2.NLP中对于给定一个句子W=w_1w_2...w_n,其中w_i是一个单词或者汉字/词语,为了处理这一段话,我们首先要将句子数字化处理。即进行初步的字符映射编码!其中用词之间的共现来表示一个句子的向量是一种不错的方式;比如有三句话:我 喜欢 自然 语言 处理 。/我 爱 深度 学习 。/我 喜欢 机器 学习 。(已分词)

这三句话的词表包括:【我 喜欢 自然 语言 处理 爱 深度 学习 机器 。】三个句子的共现矩阵如下表示:其中M_ij表示词典中第i个词和第j个词在文档中(此指三个句子)的共现次数

注:共现矩阵的每一行表示该词的向量表示,即 "我" :[0, 2, 1, 1, 1, 1, 1, 2, 1, 3]

M = np.array([[0, 2, 1, 1, 1, 1, 1, 2, 1, 3],
              [2, 0, 1, 1, 1, 0, 0, 1, 1, 2],
              [1, 1, 0, 1, 1, 0, 0, 0, 0, 1],
              [1, 1, 1, 0, 1, 0, 0, 0, 0, 1],
              [1, 1, 1, 1, 0, 0, 0, 0, 0, 1],
              [1, 0, 0, 0, 0, 0, 1, 1, 0, 1],
              [1, 0, 0, 0, 0, 1, 0, 1, 0, 1],
              [2, 1, 0, 0, 0, 1, 1, 0, 1, 2],
              [1, 1, 0, 0, 0, 0, 0, 1, 0, 1],
              [3, 2, 1, 1, 1, 1, 1, 2, 1, 0]])

在1中我们知道像“。”这种高频词与许多词共现,因此我们降低他的权重,如果一个词只与个别词共现,则提高它的权重,这里介绍点互信息(Pointwise Mutual Information,PMI)

对于词w和上下文c:

PMI(w,c)=log_2{\frac{P(w,c)}{P(w)P(c)}}

其中P(w,c),P(w),P(c)分别是w与c的共现频率,w和c出现的频率

def pointwiseMutualInformation(M):
    row_sum=M.sum(axis=0)#每行表示该词和其他词的共现个数
    col_sum=M.sum(axis=1)
    total_sum=row_sum.sum()#某一行或某一列
    expected=np.outer(row_sum,col_sum)/total_sum#获取公式的分母,除一个total_sum,因为和分子消去一个
    M=M/expected
    with np.errstate(divide='ignore'):#不显示log(0)的警告
        M=np.log(M)
    print(M)
    M[np.isinf(M)]=0.0
  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅白Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值