初学NLPday1笔记部分

1.首先了解什么是NLP,自然语言处理就是将人类能懂的语言文字,及字符类型的东西,转换成一种电脑能懂的语言:比如换成二进制编码或者是一串数字。

2.了解两个最常见的语料库:nltk(英文语料库,具有分类,分词多种功能)

                                              jieba(中文语料库,这个库是github开源并且在不断更新的一个语料库,随着网络语言的发展,词汇与语料不断增多)

3.一条文本的处理流程

 ①首先处理一整句话例如:

import nltk
sentence = "Welcome to China!"
tokens = nltk.word_tokenize(sentence)
print(tokens)

将这句话分解出所有分词:Welcome,to,China,!    分解出这四个分词

此过程也可以称为一条语句的预处理过程。

一条typical文本的预处理过程可以分为这几步:

 ②对一句话进行每个词的frequence统计

welcometochina!
1111

每个词都出现过一次,所以是1111的词频。

实例举例:NLTK进行简单的情感分析

s1 = 'this is a good book'
s2 = 'this is a awesome book'
s3 = 'this is a bad book'
s4 = 'this is a terrible book'

def preprocess(s):
    return{word: True for word in s.lower().split()}
#标准化
trainning_data = [[preprocess(s1),'pos'],
                  [preprocess(s2),'pos'],
                  [preprocess(s3),'neg'],
                  [preprocess(s4),'neg']]

#喂给model吃
from nltk.classify import NaiveBayesClassifier
model = NaiveBayesClassifier.train(trainning_data)
#打出结果
print(model.classify(preprocess('this is a good book')))

可以分析出其结果为褒义。

TF—IDF词频计算:

假设一个文档有100个单词,其中单词baby出现了3次。

那么,TF(baby)=(3/100)=0.03

好,现在我们如果有10M的文档,baby出现在其中1000个文档中。

IDF(baby)=log(10000000/1000)=4

所以TF-IDF = TF*IDF = 0.03*4 = 0.12

NLTK实现TF-IDF

from nltk.text import TextCollection
corpus = TextCollection(['This is sentence one',
                         'This is sentence two',
                         'This is sentence three'])

#直接就能计算出tf-idf
#(term:一句话中的某个term,text:这句话)
print(corpus.tf_idf(('this','this is sentence four')))
#0.444342
#同理,怎么得到了一个标准大小的vector来表示所有的句子
#对于每个新句子
new_sentence = 'this is sentence five',
#遍历一遍所有vacabulary中的词:
for word in standard_vacab:
    print(corpus.tf_idf(word,new_sentence))
    #我们得到一个巨长(“所有vocab长度)的向量

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值