计算tfidf,关键词抽取---python

1、读入文本内容

corpos = pandas.DataFrame(columns=[‘filePath‘,‘content‘])
for root ,dirs,files in os.walk(r‘H:\19113117 - 副本‘):
    for name in files:
        filePath=root+‘\\‘+name
        f = codecs.open(filePath,‘r‘,‘utf-8‘)
        content=f.read()
        f.close()
        corpos.loc[len(corpos)+1]=[filePath,content.strip()]

2、将手动分完词的文本进行词频统计

filePaths=[]
segments=[]
for filePath,content in corpos.itertuples(index=False):
    for item in content.split(‘/‘):
        segments.append(item)
        filePaths.append(filePath)
segmentDF=pandas.DataFrame({‘filePath‘:filePaths,‘segments‘:segments})

segStat = segmentDF.groupby(
            by=["filePath","segments"]
        )["segments"].agg({
            "计数":numpy.size
        }).reset_index();

3、计算tf值

textVector=segStat.pivot_table(
           index=‘segments‘,
           values=‘计数‘,
           columns=‘filePath‘,
           fill_value=0)
tF=(1+numpy.log(textVector)).as_matrix()

4、计算IDF

def handle(x):
    idf=1+numpy.log(len(corpos)/(numpy.sum(x>0)+1))
    return idf
zhuan=textVector.T
iDF=zhuan.apply(handle).as_matrix()
iDF=iDF.reshape(8889,1)

5、计算tfidf

TFIDF=tF*iDF
tFIDF_DF=pandas.DataFrame(TFIDF)

6、将每个文本中tfidf值排名前100的词和相应的tfidf值输出

file=[]
for root ,dirs,files in os.walk(r‘H:\19113117 - 副本‘):
    for name in files:
        name=name[0:-4]
        file.append(name)
for i in range(len(corpos)):
    sort=pandas.DataFrame(tFIDF_DF.loc[:,i].order(ascending=False)[:100]).reset_index()
    names = sort.columns.tolist()
    names[names.index(i)] = ‘value‘
    sort.columns = names
    tagis = textVector.index[sort.index]
    print(file[i])
    for t in range(len(tagis)):
        print(tagis[t],sort.loc[t].value)
时间: 2024-10-11 00:24:39

计算tfidf,关键词抽取---python的相关文章

Python 结巴分词 关键词抽取分析

关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来.这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语.因此,目前依然可以在论文中看到关键词这一项. 除了这些,关键词还可以在文本聚类.分类.自动摘要等领域中有着重要的作用.比如在聚类时将关键词相似的几篇文档看成一个团簇,可以大大提高聚类算法的收敛速度:从某天所有的新闻中提取出这些新闻的关键词,就可以大致了解那天发生了什么事情:或者将某段时间内几个人的微博拼成一篇长文本,然后抽取关键词就可以知道他

使用不同的方法计算TF-IDF值

摘要 这篇文章主要介绍了计算TF-IDF的不同方法实现,主要有三种方法: 用gensim库来计算tfidf值 用sklearn库来计算tfidf值 用python手动实现tfidf的计算 总结 之所以做了这方面的总结是因为最近在研究word2vec,然后涉及到了基于word2vec的文本表示方法.你用word2vec训练好的模型可以得到词的向量,然后我们可以利用这些词向量表示句子向量. 1. 一般处理方法是把句子里涉及到的单词用word2vec模型训练得到词向量,然后把这些向量加起来再除以单词数

python scikit-learn计算tf-idf词语权重

python的scikit-learn包下有计算tf-idf的api,研究了下做个笔记 1 安装scikit-learn包 sudo pip install scikit-learn 2 中文分词采用的jieba分词,安装jieba分词包 sudo pip install jieba 3  关于jieba分词的使用非常简单,参考这里,关键的语句就是(这里简单试水,不追求效果4 ) import jieba.posseg as pseg words=pseg.cut("对这句话进行分词"

Python中计算TF-IDF(scikit-learn)

scikit-learn包下有计算TF-IDF的api,其效果也很不错.首先得安装Scikit-clearn Scikit-learn 依赖: Python (>= 2.7 or >= 3.4), NumPy (>= 1.8.2), SciPy (>= 0.13.3). pip install scikit-learn 计算TF-IDF scikit-learn包进行TF-IDF分词权重计算主要用到了两个类:CountVectorizer和TfidfTransformer.其中 C

基于图的关键词抽取

项目研究背景: 在关键词抽取研究中,最常用的一种方法就是通过计算一篇文档中词语的TF-IDF值(term frequency-inverse document frequency),并对它们进行排序选取TopK个作为关键词,这是一种无监督的方法.另外一种方法是通过有监督的方法,通过训练学习一个分类器,将关键词抽取问题转化为对每个词语的二分类问题,从而选择出合适的关键词. 无监督和有监督各有各的优势和缺点:无监督学习,不需要人工标注,训练集合的过程,因此更加方便和快捷:然而监督学习的方法,在进行了

数据挖掘:基于Spark+HanLP实现影视评论关键词抽取(1)

1. 背景 近日项目要求基于爬取的影视评论信息,抽取影视的关键字信息.考虑到影视评论数据量较大,因此采用Spark处理框架.关键词提取的处理主要包含分词+算法抽取两部分.目前分词工具包较为主流的,包括哈工大的LTP以及HanLP,而关键词的抽取算法较多,包括TF-IDF.TextRank.互信息等.本次任务主要基于LTP.HanLP.Ac双数组进行分词,采用TextRank.互信息以及TF-IDF结合的方式进行关键词抽取. 说明:本项目刚开始接触,因此效果层面需迭代调优. 2. 技术选型 (1)

初学Hadoop之计算TF-IDF值

1.词频 TF(term frequency)词频,就是该分词在该文档中出现的频率,算法是:(该分词在该文档出现的次数)/(该文档分词的总数),这个值越大表示这个词越重要,即权重就越大. 例如:一篇文档分词后,总共有500个分词,而分词”Hello”出现的次数是20次,则TF值是: tf =20/500=0.04 考虑到文章有长短之分,为了便于不同文章的比较,进行"词频"标准化. 或者 2.逆文档频率 IDF(inversedocument frequency)逆向文件频率,一个文档库

QuantLib 金融计算——自己动手封装 Python 接口(1)

目录 QuantLib 金融计算--自己动手封装 Python 接口(1) 概述 QuantLib 如何封装 Python 接口? 自己封装 Python 接口 封装 Array 和 Matrix 类 QuantLibEx 和官方包混合使用 附录:接口文件.setup.py 和 __init__.py QuantLib 金融计算--自己动手封装 Python 接口(1) 概述 QuantLib 已经开始在 PyPi 上发布封装好的 Python 接口,安装和使用非常方便,与普通的包别无二致.并且

QuantLib 金融计算——自己动手封装 Python 接口(2)

目录 QuantLib 金融计算--自己动手封装 Python 接口(2) 概述 如何封装一项复杂功能? 寻找最小功能集合的策略 实践 估计期限结构参数 修改官方接口文件 下一步的计划 QuantLib 金融计算--自己动手封装 Python 接口(2) 概述 对于一项简单功能,通常只需要包装少数几个类就可以,正如<自己动手封装 Python 接口(1)>演示的那样. 下面,将演示如何包装 QuantLib 中的复杂功能,最终实现从固息债交易数据中估计期限结构模型的参数. 如何封装一项复杂功能