Python 线性回归的文本预处理是否有正确的步骤?

Python 线性回归的文本预处理是否有正确的步骤?,python,text,nlp,jupyter-notebook,linear-regression,Python,Text,Nlp,Jupyter Notebook,Linear Regression,我组合了两个不同的数据集,这样一列有文本,另一列有情感分数(二进制0,1) 我试图建立一个线性回归模型,根据文本中使用的词语预测情绪, 到目前为止,为了对文本进行预处理,我将所有文本都改为小写 我想知道这之后下一步是什么?我读了一点,但我想我可能没有按照正确的顺序进行步骤 1. lowercase 1. lowercase 2. remove punctuation 2. tokenize 3.tokenize

我组合了两个不同的数据集,这样一列有文本,另一列有情感分数(二进制0,1)

我试图建立一个线性回归模型,根据文本中使用的词语预测情绪, 到目前为止,为了对文本进行预处理,我将所有文本都改为小写

我想知道这之后下一步是什么?我读了一点,但我想我可能没有按照正确的顺序进行步骤

1. lowercase                         1. lowercase
2. remove punctuation               2. tokenize
3.tokenize                          3. remove punctuation

哪种方法更正确,如果我先删除标点符号,我可能会丢失一些细节,例如“不”和“不能”

机器学习的文本预处理通常包括两个步骤:(I)清除文本,(II)将文本转换为数字(又称嵌入)。为这两个步骤选择技术完全取决于任务,并且它们相互关联

(I)清除文本:通常涉及(I)处理文本的大小写,(ii)处理标点符号,(iii)处理停止词

(i) 处理文本的情况:如果您的文本是英语语料库,并且所选的嵌入技术用于相似性度量相关任务,那么最好将所有文本/语料库转换为小写。但是,如果您的任务(例如,标记、机器翻译等)使用单词嵌入作为序列模型中单词的输入表示,那么文本大小写可能很重要。最好在嵌入回归任务之前将文本转换为小写

(ii)处理标点符号
!“#$%&\'()*+,-./:;?@[\]^
{124;}~`: 如果您将单词嵌入技术用于与相似性相关的任务,那么您可以从文本语料库中清除/消除带有替换项的标点(例如,替换为“”)。这些任务的单词嵌入可以是针对您的特定任务的单词包(BoW)、单词2vect等(回归),则最好用“”替换来清除标点符号。对于某些应用程序(例如,多语言机器翻译),标点符号可能很重要

(三)处理停止语: 停止词(例如,the,i,he,…)是一个在语料库中出现频率很高的词。停止词通常不能提供上下文或句子真正含义的有用信息。常见的NLP库(如NTK、gensim、spaCy、sklearn)为某些语言提供了停止词列表。对于与相似性相关的任务,最好在执行这些任务之前删除停止词床上用品。删除停止字适用于您的任务(回归)。停止字可能很有用,在学习嵌入其他任务(如机器翻译)之前不应删除。最好删除回归任务的停止字

(II)将文本转换为数字(嵌入): 为了能够将文本数据拟合到机器学习模型(例如,回归模型),您需要将文本数据转换为数字向量。
标记化
在转换过程之前是必需的。 在NLP/ML中,这种转换过程称为
嵌入
。NLP中有许多不同的单词嵌入方法(例如,频率项(BoW)、相关性统计(手套)、概率模型(LDA2Vec)、神经网络(基于Word2Vec、FastText、BIRD等)的方法)。每种技术都有其优缺点。选择单词嵌入技术取决于您的应用程序/任务。此处没有足够的空间来介绍每种单词嵌入方法/技术

以下是一些用于处理文本的在线教程,可帮助您快速浏览并应用于您的问题:

1) Sklearn-使用文本数据()

2) NLTK教程()

3) Spacy-语言处理管道教程()


4) 如何使用Python()清理机器学习的文本机器学习的预处理文本通常包括两个步骤:(I)清理文本,和(II)将文本转换为数字(也称为嵌入)。这两个步骤的选择技术完全取决于任务,并且它们相互关联

(I)清除文本:通常涉及(I)处理文本的大小写,(ii)处理标点符号,(iii)处理停止词

(i) 处理文本的情况:如果您的文本是英语语料库,并且选择的嵌入技术用于相似性度量相关的任务,那么最好将所有文本/语料库转换为小写。但是,如果您的任务(例如标记、机器翻译等)在序列模型中使用单词嵌入作为单词的输入表示形式,那么文本大小写可能很重要。最好在嵌入用于回归任务之前将文本转换为小写

(ii)处理标点符号
!“#$%&\'()*+,-./:?”@[\\]^
{124;}`: 如果您将单词嵌入技术用于与相似性相关的任务,那么您可以从文本语料库中清除/消除带有替换的标点符号(例如,替换为“”)。这些任务的单词嵌入可以是单词包(BoW)、Word2Vect等。对于您的特定任务(回归),最好用替换“”来清除标点符号。对于某些应用(例如,多语言机器翻译),标点符号可能很重要

(三)处理停止语: 停止词(例如,the,i,he,…)是一个在语料库中出现频率很高的词。Stopwords通常不能为上下文或句子的真正含义提供有用的信息。常见的NLP库,如NTK、gensim、spaCy、sklearn,提供了一些语言的停止词列表。对于与相似性相关的任务,最好在进行嵌入之前删除stopwords。删除stopwords将应用于您的任务(回归)。Stopwords可能很有用,在学习嵌入其他任务(如机器翻译)之前不应删除。最好删除回归任务的stopwords

(II)Transfo