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

问题描述 投票:1回答:1

我合并了两个不同的数据集,因此一列具有文本,另一列具有情感评分(二进制0、1)

我正在尝试建立一个线性回归模型,该模型基于文本中使用的单词来预测情感,到目前为止,对文本进行了预处理,我将所有文本都更改为小写。

我想知道之后的下一步是什么?我已经读了一些,但我想我可能没有正确的步骤。

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

哪种方法更正确,如果我先删除标点符号,我可能会丢失诸如“不能”和“不能”之类的细节。

python text nlp jupyter-notebook linear-regression
1个回答
0
投票
用于机器学习的预处理文本通常涉及两个步骤:(I)清除文本,和(II)将文本转换为数字(也就是嵌入)。这两个步骤的选择技术在很大程度上取决于任务,它们彼此相关。

((I)清除文本:通常涉及(i)处理文本的情况,(ii)处理标点符号,(iii)处理停用词

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

((ii)处理标点符号

!"#$%&\'()*+,-./:;<=>?@[\\]^_{|}〜`:如果您使用词嵌入技术来完成与相似性相关的任务,则可以使用文本语料库中的替代词(例如,用‘代替)来清除/消除标点符号。嵌入这些任务的单词可以是单词袋(BoW),Word2Vect等。对于某些应用程序(例如,多语言机器翻译),标点符号可能很重要。 ((iii)处理停用词]:停用词(例如,“ i”,“他”,“…”)是在语料库中出现频率很高的单词。停用词通常无法提供有关上下文或句子的真实含义的有用信息。常见的NLP库(例如NTK,gensim,spaCy,sklearn)提供了某些语言的停用词列表。对于与相似性相关的任务,最好在嵌入之前删除停用词。删除停用词将应用于您的任务(回归)。在学习嵌入某些其他任务(例如机器翻译)之前,停用词可能非常有用,不应将其删除。

最好为您的回归任务删除停用词

((II)将文本转换为数字(嵌入):为了使文本数据适合机器学习模型(例如您的回归模型),您需要将文本数据转换为数字向量。在此转换过程之前,需要

[Tokenization

。在NLP / ML中,此转换过程称为embedding。在NLP中有很多不同的方法来进行单词嵌入(例如,频率项(BoW),共同统计(GloVe),概率模型(LDA2Vec),神经网络(基于Word2Vec,FastText,BIRD等)。 。每种技术都有其优点和缺点。选择单词嵌入技术在很大程度上取决于您的应用程序/任务。这里没有足够的空间来写每个词的嵌入方法/技术。
以下是一些用于处理文本的在线教程,可以帮助您快速完成并解决问题:1)Sklearn-处理文本数据(https://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html

2)NLTK教程(https://www.nltk.org/book/ch01.html

3)Spacy-语言处理管道教程(https://spacy.io/usage/processing-pipelines

4)如何使用Python清理文本以进行机器学习(https://machinelearningmastery.com/clean-text-machine-learning-python/

© www.soinside.com 2019 - 2024. All rights reserved.