自然语言处理 -文本预处理以及逻辑回归分类的简单实现(附代码)

注:本博客基于python3.7 Anaconda

使用到的库

import nltk 
from nltk import word_tokenize
import simplejson as jsons
import sklearn
from sklearn.feature_extraction.text import * 
from sklearn.model_selection import train_test_split 

from sklearn import linear_model 
from sklearn import metrics 

import numpy as np
import matplotlib.pyplot as plt

在文本预处理中,主要使用了nltk库,此外,nltk有可能需要手动下载一些包。
由于输入文本是json文件,我们需要用到simplejson读取。
sklearn主要用作后续的逻辑回归模型。

文本预处理分解函数

letter_percentage函数

  • 参数:
    text: 字符串
    letter: 字符(小写)
  • 返回值:在字符串中特定字符出现的百分比(不考虑大小写)
def letter_percentage(text, letter):
	print("输入字符串为:", text)
	
	#把字符串中所有字母字符按照小写提取到list中
	charlist = [char.lower() for char in text if char.isalpha()]
	
	#创建一个fdist对象来储存所有字符
	fdist = nltk.FreqDist(charlist)

	#计算特定字符letter出现的百分比
	frequency = fdist.freq(letter)
	
	character_percent = 100*frequency
	p = '{0:.2f}'.format(character_percent)
	print(letter,'字符在输入语句中占百分比为', p)
	return character_percent

Tokenization(标记化)

token:
   文本字符串或文档的字符组
   单一的“单词” + 可能的数字,标点等等

tokenization是文本预处理中很重要的一步。它的目的是接收一个字符串,或者一个list,内为nltk.text.Text类型的tokens。
接下来,把输入转换为单词的tokens,再把这些tokens用’universal’的标签集运行nltk的语言解释器。‘

tokenizer主要省略空格,标点等。

parts_of_speech函数

  • 参数:
    s: 字符串
    printflag: 1为打印输入字符串,0为不打印
  • 返回值:一个包含tokens和他们的POS标签的list
def parts_of_speech(s,printflag):
    '''例子:
    s = 'This is a sentence. And this is a second sentence! Cool.'
    z1, z2 = parts_of_speech(s,0)
        Tokens的总数量为14
        Tag: DET           Percentage of tokens =  28.57
		Tag: .             Percentage of tokens =  21.43
		Tag: NOUN          Percentage of tokens =  21.43
		....
    '''
    if printflag ==
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sklearn是一个Python机器学习库,其中包含了许多用于文本分类的算法,其中之一就是逻辑回归逻辑回归是一种常用的二分类算法,在文本分类中也有广泛应用。它的目标是根据输入的特征向量预测出一个概率值,表示该样本属于某个类别的概率。 在sklearn中,我们可以使用LogisticRegression类来实现逻辑回归文本分类。首先,我们需要将文本数据进行预处理,将其转化为数值特征向量。一种常用的方法是使用词袋模型,将文本转化为词频矩阵。 然后,我们可以使用TfidfVectorizer类对文本进行特征提取和向量化,将文本转化为TF-IDF特征向量。TF-IDF是一种常用的文本特征表示方法,它考虑了词频和逆文档频率,可以有效地表示文本的重要程度。 接下来,我们可以将特征向量作为输入,将对应的标签作为输出,使用LogisticRegression类进行训练。在训练过程中,逻辑回归模型会学习到一组参数,用于确定样本属于某个类别的概率。 在训练完成后,我们可以使用训练好的模型对新的文本样本进行分类预测。调用predict方法,将新的特征向量输入模型,即可得到预测结果。 逻辑回归文本分类是sklearn中非常常用和实用的功能之一,它可以快速准确地对文本进行分类。同时,sklearn提供了许多其他强大的特征提取和模型调优工具,可以帮助我们更好地完成文本分类任务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值