NLP文本信息向量化之特征提取

TF-IDF

  • 信息检索中最常用的一种文本关键信息表示法
  • 基本思想:若在一个文档中出现的频率高,且在语料库中其它文本中很少出现,则人文这个词库有很好的区分能力。
  • 词频TF:Term Frequency,衡量一个term在文档中出现的有多频繁,越频繁,其重要性可能越高。
  • 考虑到文章长度差异,需要对词频做标准化:
    1. TF(t)=(t出现在文档中的次数)/(文档中term总数)
    2. TF(t)=(t出现在文档中的次数)/(文档中出现最多的term的次数)

逆文档频率IDF:Inverse Document Frequency,用于模拟在该语料库的实际使用环境中,某一个term有多重要

  • 有些词到处出现,但是明显没什么用。比如各种停用词,过渡句用词之类的。

  • 因此把罕见的词的重要性(weight)调高,把常见词的重要性调低。

  • IDF具体算法

    • IDF(t) = log(语料库中的文档总数/(含有该term的文档总数+1))
  • TF-IDF=TF*IDF

    • TF-IDF与一个词在文档中的出现次数成正比。
    • 与该词在整个语料中的出现次数成反比。

TF-IDF

  • 优点
    • 简单快速
    • 结果也比较符合实际情况
  • 缺点
    • 单纯以“词频”衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多
    • 无法考虑词与词之间的相互关系
    • 这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词都被视为重要性相同,这是不正确的。
      • 一种解决方法是,对全文的第一段和每一段的第一句话,给予较大的权重。

TF-IDF的具体实现

jieba、NLTK、sklearn、gensim等程序都可以实现TF-IDF的计算。除算法细节上会有差异外,更多的是数据输入/输出格式上的不同。

TD-IDF的jieba实现

输出结果会自动按照TF-IDF值降序排列,并且直接给出的是字条而不是字典ID,便于阅读使用。可在计算TF-IDF时直接完成分词,并使用停用词表和自定义词库,非常放便。有默认的IDF语料库,可以不训练模型,直接进行计算。以单个文本为单位进行分析。

jieba.analyse.extract_tags(
             sentence : 为待提取的文本
             topK = 20 :返回几个 TF/IDF 权重最大的关键词
             withWeight = False : 是否一并返回关键词权重值
             allowPOS = () : 仅包括指定词性的词,默认值为空,既不筛选
             )
import jieba
import jieba.analyse

jieba.analyse.extract_tags("&#
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了一些关于自然语言处理中特征提取的问题,其中包括如何构建一个系统来从非结构化文本中提取结构化数据,如何识别文本描述中的实体和关系,以及如何使用语料库来训练和评估模型。对于Python自然语言处理中的特征提取,可以采用以下方法和步骤: 1. 词袋模型(Bag of Words):将文本中的每个单词作为一个特征,并统计其出现的频次。可以使用Python中的CountVectorizer或TfidfVectorizer来实现。 2. n-gram模型:将连续的n个单词作为一个特征,可以捕捉到更多的上下文信息。可以使用Python中的CountVectorizer或TfidfVectorizer中设置ngram_range参数来实现。 3. 词嵌入(Word Embedding):将每个单词映射到一个低维向量空间中,可以捕捉到单词之间的语义关系。可以使用Python中的Word2Vec、GloVe或FastText等库来进行词嵌入。 4. 句法分析特征:通过分析句子的句法结构,提取特定的句法规则或模式作为特征。可以使用Python中的NLTK或Spacy等库来进行句法分析。 5. 实体识别特征:识别文本中的人名、地名、组织机构等实体,并将其作为特征。可以使用Python中的NLTK或Spacy等库来进行实体识别。 6. 主题模型特征:通过对文本进行主题建模,提取文本的主题分布作为特征。可以使用Python中的LDA或LSA等库来进行主题建模。 以上是一些常用的Python自然语言处理中特征提取的方法和步骤,根据具体的任务和数据集的特点,可以选择合适的方法来提取特征,并进行相应的处理和分析。<span class="em">1</span><span class="em">2</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值