文本处理知识点总结

Posted mengnan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本处理知识点总结相关的知识,希望对你有一定的参考价值。

  1. 将word映射到一个新的空间中,并以多维的连续实数空间向量进行表示,叫做word representation,或者word embeding.

  2. n-gram: n-gram是一种统计语言模型。根据前n-1个item预测第n个item,这些item可以是音素(语言识别应用),字符(输入法应用),词(分词应用)或碱基对。一般可以从大规模文本或者语料库中生成n-gram模型。

    • 给定一串字母,如for ex_,希望预测下一个可能的字母是什么?
    • 假设T是由词序列A1,A2,....An组成,则p(T)=p(A1,A2,...,An)=p(A1)p(A2|A1)p(A3|A1,A2)...p(An|A1,A2,...,A(n-1))
    • 其实就是马尔科夫假设:一个item出现的概率只与前m个item有关
  3. 词袋:Bag of Words,假设对于一个文本,将其仅仅看作是一个词集合,而忽略其词序和语法。

    • 在实际应用中,将这组词变成一串数字(索引的集合)

    • John likes to watch movies. Mary like too. --->[1,2,1,1,1,0,0,0,1,1]

      John also like to watch football games. --->[1,1,1,1,0,1,1,1,0,0]

      其中,第i个元素表示字典中第i个单词在句子中出现的次数。

      上述构成了字典:{‘John‘:1,‘like‘:2,‘to‘:3,...,‘too‘:10}

  4. Word2Vec

    • 分为两种语言模型:CBOW和Skip-gram

      技术分享图片

    • CBOW根据上下文的词语预测当前词语出现概率的模型。

      • 最大化对数似然函数(L=sum _{win c}logP(w|context(w)))

      • 输入层是上下文的词向量(词向量是CBOW的参数,其实际上是CBOW的副产物)

      • 投影层是简单的向量加法

      • 输出层是输出最可能的w。由于词料库中词汇量是固定的|c|个,可以将其看作是多分类问题。最后一层是Hierarchical softmax:
        [ p(w|context(w))=prod_{j=2}^{l^w}p(d_j^w|x_w, heta_{j-1}^w) ]

        从根节点到叶节点经过了(l^{w}-1)个节点,编码从下标2开始(根节点无编码),对应的参数向量下标从1开始。

    • skip-gram 已知当前词语,预测上下文

      • 与CBOW不同之处在于:

        1. 输入层不再是多个词向量,而是一个词向量
        2. 投影层实际什么都没干,直接将输入层的词向量传递给输出层
      • 模型:
        [ p(context(w)|w)= prod_{w in context(w)}p(u|w) ]

      • 这是一个词袋模型,所以每个u都是无序,相互独立的

  5. doc2vec:

    技术分享图片

    与word2vec唯一不同之处在于,串联起word vector在上下文中预测下一个单词。

    上下文是固定长度且在段落中sliding window中采样,段落向量在一段中共享在同一段中产生的所有窗口,但是不同段间不共享。



以上是关于文本处理知识点总结的主要内容,如果未能解决你的问题,请参考以下文章

文本处理知识点总结

文本分类

文本分类

线程学习知识点总结

是否有在单个活动中处理多个片段的 Android 设计模式?

知识图谱关系抽取与总结展望