【问题标题】:Is there correct steps in preprocessing text for linear regression?为线性回归预处理文本是否有正确的步骤?
【发布时间】:2019-11-08 15:14:25
【问题描述】:

我已经组合了两个不同的数据集,因此一列包含文本,另一列包含情感分数(二进制 0、1)

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

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

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

哪种方式更正确,如果我先删除标点符号,我可能会丢失诸如不要和不能等细节。

【问题讨论】:

    标签: python text nlp jupyter-notebook linear-regression


    【解决方案1】:

    机器学习的文本预处理通常涉及两个步骤:(I) 清除文本,以及 (II) 将文本转换为数字(也称为嵌入)。为这两个步骤选择技术很大程度上取决于任务,并且它们彼此相关。

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

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

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

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

    (二)文字转数字(嵌入): 为了能够使文本数据适合机器学习模型(例如,您的回归模型),您需要将文本数据转换为数字向量。 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/)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-05
      • 1970-01-01
      相关资源
      最近更新 更多