zoukankan      html  css  js  c++  java
  • 学习gensim

    首先要将字符串分割成词语列表。比如”hurry up”要分割成[“hurry”,”up”]。

    对于中文来讲,分词就是一个很关键的问题,不过可以去找一些分词库来实现。我一般用的是jieba. 而对于英文来说,虽然分词方便,但是要注意词干提取和词形还原。
    在将文档分割成词语之后,使用dictionary = corpora.Dictionary(texts)生成词典,并可以使用save函数将词典持久化。生成词典以后 corpus = [dictionary.doc2bow(text) for text in texts]档转化为向量形式。

    1、BoW模型原理
    Bag-of-words model (BoW model) 最早出现在自然语言处理(Natural Language Processing)和信息检索(Information Retrieval)领域.。该模型忽略掉文本的语法和语序等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的。BoW使用一组无序的单词(words)来表达一段文字或一个文档.。近年来,BoW模型被广泛应用于计算机视觉中。
    基于文本的BoW模型的一个简单例子如下:
    首先给出两个简单的文本文档如下:

    John likes to watch movies. Mary likes too.
    John also likes to watch football games.
    1
    2
    基于上述两个文档中出现的单词,构建如下一个词典 (dictionary):

    {"John": 1, "likes": 2,"to": 3, "watch": 4, "movies": 5,"also": 6, "football": 7, "games": 8,"Mary": 9, "too": 10}
    1
    上面的词典中包含10个单词, 每个单词有唯一的索引, 那么每个文本我们可以使用一个10维的向量来表示。如下:

    [1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
    [1, 1,1, 1, 0, 1, 1, 1, 0, 0]
    1
    2
    该向量与原来文本中单词出现的顺序没有关系,而是词典中每个单词在文本中出现的频率。
    也是通过余弦定理计算两个句子的相似度。
    ---------------------
    作者:春雨里de太阳
    来源:CSDN
    原文:https://blog.csdn.net/qq_16633405/article/details/80578804
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Flask_之使用过程中出现的异常
    GO-学习之golang 自动下载所有依赖包
    数据库-Oracle如何将clob数据以字符串打印出来
    数据库-Oracle条件判断语句
    python框架Django汇总
    每日一模块_os及subprocess模块【执行系统命令】
    每日一模块-sftp的使用
    python并发编程-队列MQ的学习
    python高效配置-响应code枚举类设计
    git-使用大全
  • 原文地址:https://www.cnblogs.com/jianghengsh/p/11038006.html
Copyright © 2011-2022 走看看