NO.1 NLP初见

零蚀


介绍

  • NLTK

    [🔗 NLTK 库]
    [🔗 jieba中文分词]

    python的一个语言处理库,具有词性分类,分析等。英文一般用NLTK,中文用jieba,除了这些,在NLP中也有一些常用的专业术语:

    • 语料:语言材料。
    • 词性标注:就是给每个词作标签,是动词名词,还是其他。
    • 分词 : 切分语句。
  • TF-IDF
    • 通过概率统计进行分词的有以下内容:

      • HMM 隐马尔科夫模型
      • CRF 条件随机场
      • 深度学习
    • TF :(term Frequency)衡量一个term(词,术语)在语句中出现的频率,公式如下: T F ( t ) = t 在 文 档 中 出 现 的 次 数 文 档 中 t e r m ( t ) 的 总 数 TF(t)=\frac{t在文档中出现的次数}{文档中term(t)的总数} TF(t)=termtt

    • IDF :inverse Document Frequency , 衡量一个term有多重要,公式如下: I D F ( t ) = l o g e ( 文 档 总 数 含 有 t 的 文 档 总 数 ) IDF(t)=log_e(\frac{文档总数}{含有t的文档总数}) IDF(t)=loge(t)

    • TF-IDF=TF*IDF,他的作用:提取文本的向量特征,python中是有这个方法的库,叫sklearn,而NLTK&jieba中也有这个方法的。

  • TF-IDF在python 中的应用:

    如果要查相关的方法,直接在官网的搜索中是无法定位的,需要在classes下我们导入的import对象里面去找我们需要的内容。[🔗 sklearn中文官网]

    sklearn的使用

    from sklearn.feature_extraction.text import TfidfVectorizer
    
    # 语料
    corpus = ["我 爱 中国",
              "因为 我 出生 在 这个 国家",
              "我 想 做 一个 超人,超越 自己 的 人",
              "我 觉得 我 可以 更 优秀",
              "我 不 太 在意 别人 的 看法,因为 我 的 女朋友 也 不在意"]
    
    # 计算文本频率
    tfidf = TfidfVectorizer()
    
    print("**********************TF-IDF矩阵**********************")
    
    # TF-IDF (TF*IDF)(得到矩阵位置,和关键词的概率)
    result = tfidf.fit_transform(corpus).toarray()
    print(result)
    
    print("**********************统计关键词**********************")
    # 统计关键词
    word = tfidf.get_feature_names()
    print(word)
    
    print("**********************打印关键词和它对应的次数**********************")
    # 打印关键词和它对应的次数
    for v, k in tfidf.vocabulary_.items():
        print(v, k)
    
    print("**********************对比第i类文本词语tfidf的比重**********************")
    # 对比第i类文本词语tfidf的比重
    for i in range(len(result)):
        print('------', i, '------')
    
        for j in range(len(word)):
    
            print(word[j],result[i][j])
    

    print

    **********************TF-IDF矩阵**********************
    [[0.         0.         1.         0.         0.         0.
      0.         0.         0.         0.         0.         0.
      0.         0.         0.         0.         0.        ]
     [0.         0.         0.         0.         0.52335825 0.
      0.         0.42224214 0.52335825 0.         0.         0.
      0.         0.         0.         0.         0.52335825]
     [0.5        0.         0.         0.         0.         0.
      0.         0.         0.         0.         0.         0.
      0.5        0.         0.5        0.5        0.        ]
     [0.         0.         0.         0.57735027 0.         0.
      0.57735027 0.         0.         0.         0.         0.
      0.         0.57735027 0.         0.         0.        ]
     [0.         0.42066906 0.         0.         0.         0.42066906
      0.         0.33939315 0.         0.42066906 0.42066906 0.42066906
      0.         0.         0.         0.         0.        ]]
    **********************统计关键词**********************
    ['一个', '不在意', '中国', '优秀', '出生', '别人', '可以', '因为', '国家', '在意', '女朋友', '看法', '自己', '觉得', '超人', '超越', '这个']
    **********************打印关键词和它对应的次数**********************
    中国 2
    因为 7
    出生 4
    这个 16
    国家 8
    一个 0
    超人 14
    超越 15
    自己 12
    觉得 13
    可以 6
    优秀 3
    在意 9
    别人 5
    看法 11
    女朋友 10
    不在意 1
    **********************对比第i类文本词语tfidf的比重**********************
    ------ 0 ------
    一个 0.0
    不在意 0.0
    中国 1.0
    优秀 0.0
    出生 0.0
    别人 0.0
    可以 0.0
    因为 0.0
    国家 0.0
    在意 0.0
    女朋友 0.0
    看法 0.0
    自己 0.0
    觉得 0.0
    超人 0.0
    超越 0.0
    这个 0.0
    ------ 1 ------
    一个 0.0
    不在意 0.0
    中国 0.0
    优秀 0.0
    出生 0.5233582502695435
    别人 0.0
    可以 0.0
    因为 0.4222421409859579
    国家 0.5233582502695435
    在意 0.0
    女朋友 0.0
    看法 0.0
    自己 0.0
    觉得 0.0
    超人 0.0
    超越 0.0
    这个 0.5233582502695435
    ------ 2 ------
    一个 0.5
    不在意 0.0
    中国 0.0
    优秀 0.0
    出生 0.0
    别人 0.0
    可以 0.0
    因为 0.0
    国家 0.0
    在意 0.0
    女朋友 0.0
    看法 0.0
    自己 0.5
    觉得 0.0
    超人 0.5
    超越 0.5
    这个 0.0
    ------ 3 ------
    一个 0.0
    不在意 0.0
    中国 0.0
    优秀 0.5773502691896258
    出生 0.0
    别人 0.0
    可以 0.5773502691896258
    因为 0.0
    国家 0.0
    在意 0.0
    女朋友 0.0
    看法 0.0
    自己 0.0
    觉得 0.5773502691896258
    超人 0.0
    超越 0.0
    这个 0.0
    ------ 4 ------
    一个 0.0
    不在意 0.4206690600631704
    中国 0.0
    优秀 0.0
    出生 0.0
    别人 0.4206690600631704
    可以 0.0
    因为 0.3393931489111758
    国家 0.0
    在意 0.4206690600631704
    女朋友 0.4206690600631704
    看法 0.4206690600631704
    自己 0.0
    觉得 0.0
    超人 0.0
    超越 0.0
    这个 0.0 
    
    

    NLKT的使用(可以直接给出结果)

    from nltk.text import TextCollection
    
    corpus=TextCollection(["I come from China",
            "I will be","I can do it",
            "I want win,I want win everytime",
            "The work maybe best to makelife,but can't bring you with what you want"])
    
    
    tfidf=corpus.tf_idf("work","I want")
    print(tfidf)
    


🔗 前言
🔗 NLP 语言处理列表
🔗 NO.2 NLP基础

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零蚀zero eclipse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值