簡體   English   中英

詞/短語分類

[英]Word/Phrase classification

我有一列包含 5000 個字符串記錄。 這些記錄是單個單詞或短語(不是句子或段落)。 這些記錄中的大多數是相似的或包含相似的元素(例如“辦公室”、“辦公室”、“底層辦公室”)。 此外,有人手動將這些記錄中的 300 條分為五個類別(即住宅、工業、辦公室、零售、其他),這意味着我可以使用它來開發監督機器學習 model。 我對 word2vec 進行了一些研究,但似乎它們適用於文本,而不是單個單詞和短語。 請告訴我如何進行分類。 請注意,該列中的記錄數量正在增長,並且將來會添加新記錄,因此該解決方案必須能夠對新記錄進行分類。

示例輸入和所需的 output 如下:

'industrial' -> 'Industrial'
'Warehouse' -> 'Industrial'
'Workshop' -> 'Industrial'
'rear warehouse' -> 'Industrial'
'office suite' -> 'office'
'office/warehouse' -> 'office'
'office(b1)' -> 'office'
'house' -> 'Residential'
'suite' -> 'Residential'
'restaurant' -> 'Retail'
'retail unit with 3 bedroom dwelling above' -> 'Retail'
'shoe shop' -> 'Retail'
'unit 56' -> 'Other'
'24 Hastings street' -> 'Other'

輸入 & Output

你有一個非常典型的文本分類任務。

您可以使用許多分類算法,但您的任務中選擇/改進的主要領域可能是:

  • 特征提取和特征工程:您如何將這些短文本轉換為可以學習規則/閾值的數字數據?
  • 整體流程問題:對於任何無法從現有數據中學習的“棘手案例”,無論是最初還是隨着時間的推移,如何將必要的修正反饋到改進的系統中

最初,您應該嘗試將“詞袋”和“字符 n-gram”(單獨或一起)作為將短文本轉換為特征向量的方法。 僅此一點,只要有足夠的訓練數據,就可以處理您迄今為止展示的大多數情況,因為它將幫助任何分類算法發現某些“灌籃”規則。

例如,這將有效地了解“商店”可能總是暗示“零售”,或“房子”總是暗示“住宅”,或“辦公室”暗示商業。 並且使用字符 n-gram 還將為 model 提供有關如何處理相同單詞的其他拼寫錯誤或變體 forms 的線索。

會有處理不好的情況。 我猜你會希望單獨的“三居室住宅”成為“住宅”——但在你的例子中,你將“上面有 3 居室住宅的零售單元”歸類為“零售”。 有足夠多的期望行為示例,分類器可能會正確,因為它要么將“零售”視為具有更高優先級的類別,要么將其他詞(如“以上”)暗示通常應該以一種或另一種方式分類的混合用途.

當您查看處理不好的案例時,您將能夠考慮更高級的方法,例如可能使用詞向量來表示不一定在您的(小)訓練集中的詞,但可能是被認為是已知單詞的近義詞。 (例如,處理訓練集未知的單詞的一種可能策略是使用一些外部的、更大的 word2vec model 將任何未知單詞替換為最接近的已知單詞。)

但是,您應該真正從最簡單的功能方法開始,看看這些方法能讓您走多遠,從而為以后的改進設置基線。 然后,考慮更高級和定制的技術。

這是使用 ML 進行分類的經典示例,其中使用 NLP 構建功能。 該過程涉及多個步驟。

  1. 特征工程:您需要決定是否需要單詞、短語(由 1,2...n 個單詞組成) - 使用來自 sklearn 的 countvectorizer,它使用 tf-idf 算法和 ngram。 您還可以定義要使用的最大功能數。
  2. Lemmatisation - 去除停用詞(使用 nltk 語料庫)
  3. Stemming - 轉換成不變的詞(使用 nltk 語料庫)
  4. Using supervised learning built a classification model using 300 pre-defined records ( use train/test - 70/30 split ) - You can go with Bayesian Gaussian Classifier ( recommended for NLP mostly) or Random Forest or Neural Networks depending on how much accuracy you想要達到。
  5. 最后將此 model 應用於新記錄集。

PS:這里的技巧是識別並刪除第 2 步的正確單詞(例如“The”、“is”),這樣 model 就不會出現偏差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM