首先要将字符串分割成词语列表。比如”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
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. IIS7.5 发布程序后cookie丢失问题
  2. PCTF-2016-WEB
  3. 多线程监控文件夹,FlieSystemWatcher,并使用共享函数
  4. myeclipse 保存时自动格式化代码
  5. Introduction to Guid ( globally unique identifier )
  6. bat执行java程序的脚本解析
  7. [转]以新浪为例浅谈XSS
  8. Netty 4源码解析:服务端启动
  9. NodeJs之定时器与队列
  10. curl请求
  11. mysql 高版本only_full_group_by 错误
  12. (转)Java Web(一) Servlet详解!!
  13. ECharts常用设置记录
  14. U盘插入电脑3.0的口没有反应了,2.0的口就可以
  15. Lua 与C 交互之LUA_REGISTRYINDEX(3)
  16. SQL Server 创建触发器(trigger)
  17. Hibernate 再接触 多对一与一对多
  18. [ 9.12 ]CF每日一题系列—— 960B暴力数组
  19. WEB入门二 表格和表单
  20. [Linux]ssh相关问题

热门文章

  1. C++ List的用法
  2. python-django框架-电商项目-项目部署_20191127
  3. python-django框架-电商项目-首页开发_20191122
  4. Python爬虫带用户名密码登录
  5. vyos的Xvlan配置方式
  6. leetCode-nSum
  7. 跟随大神实现简单的Vue框架
  8. python标准库:csv 模块
  9. MicrosoftOfficeProfessionalPlus2013傻瓜式激活工具
  10. Nginx部署前后端分离服务