绪论

最近做课题,需要分析短文本的标签,在短时间内学习了自然语言处理,社会标签推荐等非常时髦的技术。我们的需求非常类似于从大量短文本中获取关键词(融合社会标签和时间属性)进行用户画像。这一切的基础就是特征词提取技术了,本文主要围绕关键词提取这个主题进行介绍(英文)。

不同版本python混用(官方用法)

Python2 和python3 是一个神一般的存在,如何让他们共存呢,直到我用了pycharm我才知道为啥这么多人选择它,如下图所示配置两个目录直接可以混用了,叼炸天。

插播一个广告,想修改pycharm中python注释的颜色找了半天居然得这么搞:

当大家搜索如何在系统中混合使用python2和python3,国内网站经常会让大家把其中一个python.exe改个名字,这样区分开两个可执行文件的名字,但是这样做有一个重大的隐患,就是修改了名字的那个python对应的pip将无法使用。有时候还是需要用用命令行的,怎么办?

官方用法为:

在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。

如果你有一个Python文件叫 hello.py,那么你可以这样用Python2运行它

py -2 hello.py

类似的,如果你想用Python3运行它,就这样

py -3 hello.py

去掉参数 -2/-3

每次运行都要加入参数-2/-3还是比较麻烦,所以py.exe这个启动器允许你在代码中加入说明,表明这个文件应该是由python2解释运行,还是由python3解释运行。说明的方法是在代码文件的最开始加入一行

#! python2

或者

#! python3

分别表示该代码文件使用Python2或者Python3解释运行。这样,运行的时候你的命令就可以简化为

py hello.py

使用pip

当Python2和Python3同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:

py -2 -m pip install XXXX

-2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3安装软件,那么命令类似的变成

py -3 -m pip install XXXX

#! python2 和 # coding: utf-8 哪个写在前面?

对于Python2用户还有另外一个困惑,Python2要在代码文件顶部增加一行说明,才能够在代码中使用中文。如果指明使用的Python版本也需要在文件顶部增加一行,那哪一行应该放在第一行呢?

#! python2 需要放在第一行,编码说明可以放在第二行。所以文件开头应该类似于:

#!python2

# coding: utf-8

有了这些技巧,Python2和Python3就可以愉快地在一起玩耍了~

Python标准:https://www.python.org/dev/peps/pep-0397/

信息检索概述

信息检索是当前应用十分广泛的一种技术,论文检索、搜索引擎都属于信息检索的范畴。通常,人们把信息检索问题抽象为:在文档集合D上,对于由关键词w[1] … w[k]组成的查询串q,返回一个按查询q和文档d匹配度 relevance (q, d)排序的相关文档列表D。

对于这一基问题,先后出现了布尔模型、向量模型等各种经典的信息检索模型,它们从不同的角度提出了自己的一套解决方案。

布尔模型以集合的布尔运算为基础,查询效率高,但模型过于简单,无法有效地对不同文档进行排序,查询效果不佳。

向量模型把文档和查询串都视为词所构成的多维向量,而文档与查询的相关性即对应于向量间的夹角。不过,由于通常词的数量巨大,向量维度非常高,而大量的维度都是0,计算向量夹角的效果并不好。另外,庞大的计算量也使得向量模型几乎不具有在互联网搜索引擎这样海量数据集上实施的可行性。

TF-IDF原理概述

如何衡量一个特征词在文本中的代表性呢?以往就是通过词出现的频率,简单统计一下,从高到低,结果发现了一堆的地得,和英文的介词in of with等等,于是TF-IDF应运而生。

TF-IDF不但考虑了一个词出现的频率TF,也考虑了这个词在其他文档中不出现的逆频率IDF,很好的表现出了特征词的区分度,是信息检索领域中广泛使用的一种检索方法。

Tf-idf算法公式以及说明:

具体实现如下所示,公式分成两项,词频*逆词频,逆词频取log值。

注意分母中的+1,在很多文献中并没有出现,这个可能引发异常。

本人写了一份代码近期正在修改,后续传到github 上,再贴出来。文章末尾贴出了两份我认为比较好的代码,一份是面向对象的实现一份是分布式的。

tfidf源代码实现及相关博客资料:

python scikit-learn计算tf-idf词语权重(scikit-learn包中提供了tfidf的矩阵实现,缺点是词数量过大可能溢出)

http://www.tuicool.com/articles/U3uiiu

参考文献

github代码:

本文同步分享在 博客“shiter”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

python文献检索工具与技巧答案_短文本分析----基于python的TF-IDF特征词标签自动化提取...相关推荐

  1. python怎么另起一行阅读答案_【小菜鸡学python】

    零零散散知道些python的语法,但是没有系统的学习.今天开个系列好好学一下python~里面的知识点大多数是根据B站视频python编程基础入门[廖雪峰]_哔哩哔哩 (゜-゜)つロ 干杯~-bili ...

  2. 短文本分析----基于python的TF-IDF特征词标签自动化提取

    绪论 最近做课题,需要分析短文本的标签,在短时间内学习了自然语言处理,社会标签推荐等非常时髦的技术.我们的需求非常类似于从大量短文本中获取关键词(融合社会标签和时间属性)进行用户画像.这一切的基础就是 ...

  3. python文献检索_文献检索与下载

    summer school =================== 国防科技大学 数学系 张弘 第一部分:文献检索与下载 一.背景 国产搜索引擎: 百度,搜狗,雅虎 - 文献下载 当前文献下载的囧境 ...

  4. wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!

    WOS-著名的科学引文索引数据库,历来被公认为世界范围最权威的科学技术文献的索引工具,能够提供科学技术领域最重要的研究成果. SCI引文检索的体系更是独一无二,不仅可以从文献引证的角度评估文章的学术价 ...

  5. python文献检索_那个发了好几篇SCI的师姐,教你如何搞定文献检索和科研图片!...

    原标题:那个发了好几篇SCI的师姐,教你如何搞定文献检索和科研图片! 1 写论文是一门秃头的艺术 近年来,越来越多的科研机构,将 SCI 论文作为评价医生及科研人员学术水平的一个重要指标. 可以这么说 ...

  6. 科研入门:文献检索,阅读技巧及工具使用

    目录 01 文献检索及技巧 02 文献阅读辅助工具 03 文献阅读技巧 提高效率的方法总结 1.读高质量文章 2.看来自期刊.作者 3.读摘要和结论 4.读方法论 5.适当标记,存档图表 6.阅读引言 ...

  7. 文献检索与阅读技巧:如何高效的阅读和学习论文文献

    转自: http://blog.csdn.net/qq1987924/article/details/8496206 每天上课.看书,感觉和以前差别并没太多.研究生到底该如何自己学习?整理点文献阅读参 ...

  8. 阿里云python自测答案_阿里云技能测试python初级中级高级

    简介 偶尔发现,阿里云-开发者社区,里竟然有技能测试平台 覆盖知识面也较多 初级(65) 涉及知识点:Python语言的基本特性.编程环境.语法基础.数据结构,了解Python的网络编程与Web开发, ...

  9. python快速编辑入门答案_太惨!学Python方法用错,直接从入门到放弃!

    原标题:太惨!学Python方法用错,直接从入门到放弃! 从你开始学习编程的那一刻起,就注定了以后所要走的路-从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在 ...

最新文章

  1. 解决页面换行因标点符号不能出现在每一行的开头,导致提前换行,中间出现空隙的问题
  2. python中高阶函数改写学生信息管理程序_python利用高阶函数实现剪枝函数
  3. 厉害了,在Pandas中用SQL来查询数据,效率超高
  4. jenkins docker 自动部署 构建_jenkins+docker+vue项目的自动部署环境
  5. Python 项目实践三(Web应用程序)第四篇
  6. Android7.0 emui主题,全新EMUI5.0基于Android7.0 天生快,一生快!
  7. android box2d小程序
  8. 大数据(流量表)任务问题清洗生成新分区表过程
  9. C#实现捕获当前屏幕截图(转)
  10. 使用shell实现zookeeper集群的自动搭建
  11. Web系统测试Web安全性测试
  12. 计算机普通话培训开班简报,普通话培训第四期简报.doc
  13. 基于C# Winform的酒店管理系统
  14. SQL中如何处理除数为0的情况?
  15. Spark:Container exited with a non-zero exit code 137
  16. 88e1111 phy芯片在arm平台的配置及接口介绍
  17. Fwcms模板建站常见问题整理合集解答
  18. 第六章第三十四题(打印日历)(Print calendar) - 编程练习题答案
  19. 使用qt实现多线程编程
  20. 求1的阶乘+2的阶乘+3的阶乘+4的阶乘+…+n的阶乘

热门文章

  1. JavaIO流中的拷贝
  2. 2017-10-08 前端日报
  3. 《规范敏捷交付:企业级敏捷软件交付的方法与实践》——3.11 观点总结
  4. login-webflow.xml初步分析
  5. 一种非常简单的静态网页生成方法介绍
  6. Python3 GUI:PyQt5环境搭建
  7. JS 继承各种方法的优劣比较 ----JS 学习笔记(五)
  8. 莫比乌斯反演习题总结
  9. mysql报错2059
  10. Django—自定义分页