利用Python进行文章特征提取(一)
# 文字特征提取 词库模型(bag of words) 2016年2月26,星期五
# 1.词库表示法
# sklearn 的 CountVectorizer类能够把文档词块化(tokenize),代码如下
from sklearn.feature_extraction.text import CountVectorizer
corpus=['UNC played Duke in basketball','Duke lost the basketball game','I ate a sandwich']
vectorizer=CountVectorizer()
corpusTotoken=vectorizer.fit_transform(corpus).todense()
corpusTotoken
#[[1, 1, 0, 1, 0, 1, 0, 1],
# [1, 1, 1, 0, 1, 0, 1, 0]]
vectorizer.vocabulary_
#{u'ate': 0,
# u'basketball': 1,
# u'duke': 2,
# u'game': 3,
# u'in': 4,
# u'lost': 5,
# u'played': 6,
# u'sandwich': 7,
# u'the': 8,
# u'unc': 9}
# 2. 计算向量之间的欧式距离,sklearn中引入euclidean_distances,代码如下:
from sklearn.metrics.pairwise import euclidean_distances
counts=vectorizer.fit_transform(corpus).todense()
for x,y in [[0,1],[0,2],[1,2]]:
dist=euclidean_distances(counts[x],counts[y])
print('文档{}与文档{}的距离{}'.format(x,y,dist)) #文档0与文档1的距离[[ 2.44948974]]
#文档0与文档2的距离[[ 2.64575131]]
#文档1与文档2的距离[[ 2.64575131]]
# 3.停用词过滤,停用词通常是构建文档意思的功能词汇,其字面意义并不体现。CountVectorizer类可以通过设置stop_words参数过滤停用词。默认是英语常用的停用词。代码如下
vectorizer=CountVectorizer(stop_words='english')
print(vectorizer.fit_transform(corpus).todense())
#[[0 1 1 0 0 1 0 1]
# [0 1 1 1 1 0 0 0]
# [1 0 0 0 0 0 1 0]]
print(vectorizer.vocabulary_)
#{u'duke': 2, u'basketball': 1, u'lost': 4, u'played': 5, u'game': 3, u'sandwich': 6, u'unc': 7, u'ate': 0}
#4. 词根还原与词性还原。特征向量里面的单词很多都是一个词的不同形式,比如jumping和jumps都是jump的不同形式。词根还原与词形还原就是为了将单词从不同的时态、派生形式还原。可利用Python里面的NLTK(Natural Language ToolKit)库来处理
import nltk
nltk.download()
showing info http://www.nltk.org/nltk_data/
True
from nltk.stem.wordnet import WordNetLemmatizer
lemm=WordNetLemmatizer()
print(lemm.lemmatize('gathering'),'v')
print(lemm.lemmatize('gathering'),'n')
#('gathering', 'v')
#('gathering', 'n')
利用Python进行文章特征提取(一)的更多相关文章
- 利用Python进行文章特征提取(二)
本篇blog是利用Python进行文章特征提取的续篇,主要介绍构建带TF-IDF权重的文章特征向量. In [1]: # 带TF-IDF权重的扩展词库 # 在第一篇文档里 主要是利用词库模型简单判断单 ...
- 利用Python编写网络爬虫下载文章
#coding: utf-8 #title..href... str0='blabla<a title="<论电影的七个元素>——关于我对电影的一些看法以及<后会无期 ...
- 有关利用python获取网页, 以及KDD近几年论文标题与摘要链接
最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点 ...
- 用python定时文章发布wordpress
用python定时文章发布wordpress: 流程: 采集 - 筛选文章 - wordpress文章发布. wordpress文章发布代码:python利用模块xmlrpclib发布文章非常便捷,省 ...
- 利用Python实现一个感知机学习算法
本文主要参考英文教材Python Machine Learning第二章.pdf文档下载链接: https://pan.baidu.com/s/1nuS07Qp 密码: gcb9. 本文主要内容包括利 ...
- 利用python设计PDF报告,jinja2,whtmltopdf,matplotlib,pandas
转自:https://foofish.net/python-crawler-html2pdf.html 工具准备 弄清楚了网站的基本结构后就可以开始准备爬虫所依赖的工具包了.requests.beau ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...
- 利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)
对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...
随机推荐
- save a web page as a single file (mht format) using Delphi code
Here's how to save a web page as a single file (mht format) using Delphi code: uses CDO_TLB, ADODB_T ...
- Windows Live Writer 网易博客配置
一.去官网下载 Windows Live Write 组件 二.配置,选中其它服务,然后会到如下界面 主要是这里经常不知道选择什么,容易忘记. 下拉框选中metaweblog API 类型,把这个地址 ...
- python 课堂笔记-购物车
# Author:leon production_list = [ ('iphone',5800), ('mac pro', 9800), ('bike', 800), ('watch', 10600 ...
- 体系编程、SOC编程那些事儿
转:https://blog.csdn.net/yueqian_scut/article/details/49968897 笔者将从芯片IC的系统设计的角度去诠释如何掌握体系编程和SOC编程.笔者有超 ...
- 单元测试框架unittest,ddt
unittest case.py 测试用例 suite.py 测试套件 loader.py 加载测试用例 run.py 执行测试用例 result.py 测试结果,测试报告 main mock 模拟测 ...
- windows 安装python3.5启动报错:api-ms-win-crt-runtime-l1-1-0.dll丢失
下载: api-ms-win-crt-runtime就是MFC的运行时环境的库,python在windows上编译也是用微软的visual studio C++编译的,底层也会用到微软提供的C++库和 ...
- nginx 第一天
来公司第一天先装了一下nginx 第一步: 先装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/ ...
- HDU 1241 油田
这道题明明很简单但不知道为什么运行结果一直错,但提交却是对的!代码真是神奇,不过我猜测可能是提上给出的数据错了,可能提上给的数据m和n后多给了一个空格或回车,但题的数据没有 #include<s ...
- Spring中Bean管理的常用注解
在Spring中,主要用于管理bean的注解分为四大类:1.用于创建对象.2.用于给对象的属性注入值.3.用于改变作用的范围.4.用于定义生命周期.这几个在开发中经常接触到,也可以说每天都会遇见.其中 ...
- 高并发情况下分布式全局ID
1.高并发情况下,生成分布式全局id策略2.利用全球唯一UUID生成订单号优缺点3.基于数据库自增或者序列生成订单号4.数据库集群如何考虑数据库自增唯一性5.基于Redis生成生成全局id策略6.Tw ...