我合并了两个不同的数据集,因此一列具有文本,另一列具有情感评分(二进制0、1)
我正在尝试建立一个线性回归模型,该模型基于文本中使用的单词来预测情感,到目前为止,对文本进行了预处理,我将所有文本都更改为小写。
我想知道之后的下一步是什么?我已经读了一些,但我想我可能没有正确的步骤。
1. lowercase 1. lowercase
2. remove punctuation 2. tokenize
3.tokenize 3. remove punctuation
哪种方法更正确,如果我先删除标点符号,我可能会丢失诸如“不能”和“不能”之类的细节。
((I)清除文本:通常涉及(i)处理文本的情况,(ii)处理标点符号,(iii)处理停用词
((i)处理文本的大小写]:如果您的文本是英语语料库,并且所选的嵌入技术是用于与相似性度量相关的任务,那么最好将所有文本/语料库转换为小写。但是,如果您使用单词嵌入作为序列模型中单词的输入表示的任务(例如,标记,机器翻译等),则文本大小写可能会很重要。 最好在嵌入回归任务之前将文本转换为小写。
((ii)处理标点符号
!"#$%&\'()*+,-./:;<=>?@[\\]^_
{|}〜`:如果您使用词嵌入技术来完成与相似性相关的任务,则可以使用文本语料库中的替代词(例如,用‘代替)来清除/消除标点符号。嵌入这些任务的单词可以是单词袋(BoW),Word2Vect等。对于某些应用程序(例如,多语言机器翻译),标点符号可能很重要。 ((iii)处理停用词]:停用词(例如,“ i”,“他”,“…”)是在语料库中出现频率很高的单词。停用词通常无法提供有关上下文或句子的真实含义的有用信息。常见的NLP库(例如NTK,gensim,spaCy,sklearn)提供了某些语言的停用词列表。对于与相似性相关的任务,最好在嵌入之前删除停用词。删除停用词将应用于您的任务(回归)。在学习嵌入某些其他任务(例如机器翻译)之前,停用词可能非常有用,不应将其删除。 最好为您的回归任务删除停用词
((II)将文本转换为数字(嵌入):为了使文本数据适合机器学习模型(例如您的回归模型),您需要将文本数据转换为数字向量。在此转换过程之前,需要[Tokenization
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/)