通过tfidf求文本的关键字

通过tfidf 求文本的关键字

import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer

content = ["我, 爱, 中国", "我, 爱, 共产党", "我,爱,家乡"]
model = TfidfVectorizer(token_pattern='\w+')  
# 使用 token_pattern 这样可以去到单个字, 默认是直接忽略单个字的

result = model.fit_transform(content)

# 默认返回的是稀疏矩阵, 只记录有数据的元素和索引
print(type(result))
print(result)

# 转换成普通矩阵
result.toarray()  # 或者 result.A

# 这个属性的顺序是各个字在文本中出现的顺序, 以及每个词在特征中的索引

model.vocabulary_

# 这个顺序是 对应 特征 的顺序

features = model.get_feature_names()
features

 

for i in np.argmax(resultarray, axis=1):
    print(features[i])

 

这里也列出使用jieba求关键字

但是有几点说明: 我指定想要求两个关键字, 但是并不给出了两个关键字, 只给出了一个或是没有给出

# 我们使用结巴选择关键词, 
# 但是这种方法提取的关键字是根据结巴内部进行选择重要性的, 
# 在输入一条文本的时候并不知道其他文本的存在, 
# 所以不肯能算出idf的实际值

from jieba.analyse import extract_tags

for text in content:
    keyWord = extract_tags(text, topK=2, allowPOS=['ns', 'n', 'vn', 'v','nr'])
    print(keyWord)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值