提取文章高频词

# -*- coding: utf-8 -*-
# * @author haoming
# * @date 2016/11/08

import MySQLdb
import pandas as pd
import numpy as np
import re
import codecs 
import jieba
import jieba.analyse
import logging
from gensim import corpora, models, similarities
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import HashingVectorizer
from sklearn.externals import joblib
import time
from numpy import random
from sk
### 使用 TF-IDF 提取文本中的高频词汇 TF-IDF 是一种用于评估词语在文档集合中重要性的统计方法。它综合考虑了词频(Term Frequency, TF)和逆文档频率(Inverse Document Frequency, IDF),从而能够有效识别出哪些词语对于特定文档最为关键。 #### 计算 TF 值 TF 表示某个词语在单篇文档中出现的频率,计算公式如下: \[ \text{TF}(t,d) = \frac{\text{词语 } t \text{ 在文档 } d \text{ 中出现的次数}}{\text{文档 } d \text{ 的总词数}} \][^1] #### 计算 IDF 值 IDF 反映了一个词语在整个语料库中的普遍程度,其目的是降低那些频繁出现在大多数文档中的词语的重要性。计算公式为: \[ \text{IDF}(t,D) = \log\left(\frac{\text{语料库中文档总数} + 1}{\text{包含词语 } t \text{ 的文档数量} + 1}\right) + 1 \][^2] 其中,“+1”的作用是为了防止分母为零的情况发生。 #### 综合计算 TF-IDF 值 将上述两者的值相乘即可得到某词语 \( t \) 对于某一文档 \( d \) 的 TF-IDF 权重: \[ \text{TF-IDF}(t,d) = \text{TF}(t,d) \times \text{IDF}(t,D) \][^3] 通过这种方式可以量化每个词语的重要程度。通常情况下,具有较高 TF-IDF 值的词语被认为是该文档的关键术语。 #### Python 实现代码示例 以下是基于 `sklearn` 库的一个简单实现: ```python from sklearn.feature_extraction.text import TfidfVectorizer import pandas as pd # 文本数据集 corpus = [ 'This is the first document.', 'This document is the second document.', 'And this is the third one.', 'Is this the first document?' ] # 初始化向量器对象 vectorizer = TfidfVectorizer() # 将文本转换为 TF-IDF 特征矩阵 X = vectorizer.fit_transform(corpus) # 获取特征名称列表 feature_names = vectorizer.get_feature_names_out() # 转换为 DataFrame 方便查看 df_tfidf = pd.DataFrame(X.toarray(), columns=feature_names) print(df_tfidf) ``` 此脚本会输出每篇文章对应各单词的 TF-IDF 数值表,数值较高的即代表这些词在这份文件里较为显著。 ### 注意事项 尽管高 TF-IDF 值可能表明某些词更独特或者更重要,但它并不能单独决定一个词是否真正构成有意义的主题标签;还需要结合具体领域知识进一步筛选过滤掉无实际价值的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值