共现矩阵的一种实现方法,比较笨重,时间复杂度较高

本文探讨了一种共现矩阵的实现方式,虽然方法相对笨重且时间复杂度较高,但其核心在于通过矩阵来预测词语周围的概率分布,适用于自然语言处理(NLP)中的上下文预测。
摘要由CSDN通过智能技术生成

共现矩阵

为了以某一个词为中心预测周围词,提供一定的概率分布

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import offsetbox
from sklearn.decomposition import TruncatedSVD


def read_corpus(category='crude'):
    files = reuters.fileids(category)
    return [[START_TOKEN] + [w.lower() for w in list(reuters.words(f))] + [END_TOKEN] for f in files]


def distinct_words(corpus):
    """
    去重
    :param corpus: 句子
    :return: 去重后的列表,长度
    """

    # 将各个句子放在一个列表中
    corpus_words = []
    for sentence in corpus:
        corpus_words.extend(sentence)

    # 去重后的句子
    de_weighting = sorted(list(set(corpus_words)))
    num_corpus_words = len(de_weighting)
    return de_weighting, num_corpus_words, corpus_words


def compute_co_occurrence_matrix(corpus, window_size=4):
    """
    共现矩阵
    :param corpus: 句子
    :param window_size: 中心词,例如:i like nlp. lik
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值