为机器学习预处理文本通常涉及两个步骤:(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/)清理文本以进行机器学习
本文链接:https://www.f2er.com/3136948.html