[英]Is there correct steps in preprocessing text for linear regression?
我組合了兩個不同的數據集,以便一列包含文本,另一列包含情感分數(二進制 0、1)
我正在嘗試進行線性回歸 model 根據文本中使用的單詞預測情緒,到目前為止,為了預處理文本,我將所有文本的文本更改為小寫。
我想知道這之后的下一步是什么? 我讀了一點,但我想我可能沒有正確順序的步驟。
1. lowercase 1. lowercase
2. remove punctuation 2. tokenize
3.tokenize 3. remove punctuation
哪種方式更正確,如果我先刪除標點符號,我可能會丟失諸如不要和不能等細節。
機器學習的文本預處理通常涉及兩個步驟:(I)清除文本,以及(II)將文本轉換為數字(也稱為嵌入)。 為這兩個步驟選擇技術完全取決於任務,並且它們彼此相關。
(I) 清除文本:通常涉及到 (i) 處理文本的大小寫,(ii) 處理標點符號,(iii) 處理停用詞
(i) 處理文本的大小寫:如果您的文本是英文語料庫,並且選擇的嵌入技術是用於相似性度量相關的任務,那么最好將所有文本/語料庫轉換為小寫。 但是,如果您的任務(例如,標記、機器翻譯等)使用詞嵌入作為序列 model 中詞的輸入表示,那么文本大小寫可能很重要。 在嵌入回歸任務之前,最好將文本轉換為小寫。
(ii) 處理標點符號,"#$%&\'()*+.-:/;?<=>?@[\\]^_
{|}~`:如果你使用詞嵌入技術進行相似性相關任務, 然后你可以從你的文本語料庫中清理/消除帶有替換的標點符號(例如,用''替換)。這些任務的詞嵌入可以是 Bag of Words (BoW)、Word2Vect 等。對於您的特定任務,請點擊此處(回歸) ,那么最好用 ' ' 替換來清除標點符號。對於某些應用程序(例如,多語言機器翻譯),標點符號可能很重要。
(iii) 處理停用詞:停用詞(例如,the, i, he, ...)是在語料庫中出現頻率非常高的詞。 停用詞通常不會為上下文或句子的真正含義提供有用的信息。 常見的 NLP 庫如 NTK、gensim、spaCy、sklearn 提供了某些語言的停用詞列表。 對於相似性相關的任務,最好在進行嵌入之前刪除停用詞。 刪除停用詞適用於您的任務(回歸)。 停用詞可能很有用,在學習嵌入到其他一些任務(例如機器翻譯)之前不應將其刪除。 最好刪除回歸任務的停用詞
(II) 將文本轉換為數字(嵌入):為了能夠將文本數據適合機器學習 model(例如,您的回歸模型),您需要將文本數據轉換為數字向量。 在此轉換過程之前需要進行Tokenization
。 在 NLP/ML 中,這種轉換過程稱為embedding
。 在 NLP 中進行詞嵌入有許多不同的方法(例如,頻率項 (BoW)、共現統計 (GloVe)、概率 model (LDA2Vec)、神經網絡(Word2Vec、FastText、BIRD、...)基於方法) . 每種技術都有其優點和缺點。 選擇詞嵌入技術很大程度上取決於您的應用程序/任務。 這里沒有足夠的空間來寫每個詞嵌入方法/技術。
以下是一些處理文本的在線教程,可以幫助您快速解決 go 並適用於您的問題:
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/ )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.