gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:09:58 25 4
gpt4 key购买 nike

我组合了两个不同的数据集,以便一列包含文本,另一列包含情绪分数(二进制 0, 1)

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

我想知道这之后下一步是什么?我已经阅读了一些内容,但我想我可能没有按照正确的顺序执行这些步骤。

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

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

最佳答案

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

(I) 学习文本:通常涉及 (i) 处理文本大小写、(ii) 处理标点符号、(iii) 处理停用词

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

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

(iii) 处理停用词:停用词(例如,the、i、he……)是在语料库中出现频率非常高的单词。停用词通常不能提供有关上下文或句子真正含义的有用信息。常见的 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/ )

关于python - 线性回归的预处理文本是否有正确的步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58769226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com