【手写模型--中文预训练词向量】

原文地址:https://tianchi.aliyun.com/dataset/6592

#修改文件名称
!mv /home/myspace/baidu/sgns.target.word-ngram.1-2.dynwin5.thr10.neg5.dim300.iter5.bz2.zip /home/myspace/baidu/sgns.target.word-ngram.1-2.dynwin5.thr10.neg5.dim300.iter5.bz2
#加载词向量
nlp_model = KeyedVectors.load_word2vec_format('/home/myspace/baidu/sgns.target.word-ngram.1-2.dynwin5.thr10.neg5.dim300.iter5.bz2',binary=False,encoding='utf-8')

=================================== 分割线 ===============================================================

分词之后,将文本向量化主要可以通过以下几种方法:

  1. 词袋模型(Bag of Words, BoW):

    • 将分词后的文本中每个词语看作一个特征,构建一个特征词表。
    • 对于每个文档,统计词表中每个词的出现次数,构建一个词频向量。
    • 可以选择是否进行词频的归一化,比如使用TF(词频)或者TF-IDF(词频-逆文档频率)进行加权。
  2. TF-IDF向量化:

    • TF(Term Frequency)表示一个词在文档中出现的频率。
    • IDF(Inverse Document Frequency)表示一个词在整个文档集合中的逆频率,即一个词在多少篇文档中出现过。
    • 将每个词的TF和IDF相乘,得到TF-IDF值,然后用这些值构建文档的向量。
  3. 词嵌入(Word Embeddings):

    • 使用预训练的词嵌入模型,如Word2Vec、GloVe或FastText等,将每个词转换为固定维度的向量。
    • 这些词嵌入向量通常是在大量语料库上训练得到的,能够捕获词的语义信息。
    • 对于不在预训练词汇表中的词,可以使用特殊标记(如“”)或随机初始化向量。
  4. One-hot编码:

    • 构建一个词汇表,对于每个唯一的词分配一个唯一的索引。
    • 对于每个文档,创建一个与词汇表大小相同的向量,并将文档中出现的词的索引位置设置为1,其余位置为0。
    • 这种方法没有考虑词的语义信息,通常只用于简单的模型或作为其他向量化方法的输入。
  5. 词哈希(Word Hashing):

    • 将每个词通过哈希函数映射到一个固定大小的向量上。
    • 这种方法可以有效地处理未在词汇表中出现的词(OOV问题),但可能会丧失部分语义信息。
  6. 基于神经网络的向量化方法:

    • 使用神经网络模型,如循环神经网络(RNN)或Transformer模型,将文本转换为向量。
    • 这些方法通常更加复杂,能够捕获文本的上下文信息,并且需要大量的训练数据。

在实际应用中,选择合适的向量化方法取决于具体任务的需求、数据的特点以及计算资源等因素。对于简单的文本分类或情感分析任务,词袋模型或TF-IDF可能就足够了;而对于更复杂的语义任务,如问答系统或机器翻译,使用预训练的词嵌入或基于神经网络的向量化方法可能更有效。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值