2016-07-02 30 views
2

對於文本分類中特徵提取所需的詞彙集的定義,我有一個問題。 在一個實驗中,我可以想到兩種方法:在文本分類中定義詞彙大小

1.使用訓練數據和測試數據定義詞彙大小,以便在測試過程中不會將來自測試數據的單詞視爲「未知」 。

2.根據訓練數據中的數據定義詞彙量大小,並將測試數據中不會出現在訓練數據中的每個詞語視爲「未知」。

乍一看,更科學的方法是第二個。但值得注意的是,雖然我們無法在實際系統中知道詞彙的真實大小,但似乎沒有問題將詞彙大小設置得比訓練數據中出現的大小稍大一些以涵蓋更大的問題。這是有用的,因爲它實際上將不同的未知單詞視爲不同,而不是將它們總結爲「未知」。這有什麼理由不實際嗎?

機器學習新手。非常感謝。

回答

2

如果包括不訓練集中出現的測試詞集到模型(如分類模型),那麼,因爲他們沒有在訓練集時,他們在訓練模型的重量將是零和所以除了增加模型尺寸之外,它們不會有任何效果。所以選項2更好。儘管如此,爲了彌補測試數據的變化性質,一個解決方案是定期重新訓練模型,另一個解決方案是使用word2vec構建表示和K-最近鄰模型,給出每個看不見的單詞在測試集中爲您提供訓練集中最近的單詞,以便您可以使用該單詞而不是未知單詞。

1

在現實世界中,自然語言處理系統總是需要處理生詞。

如果您使用測試數據作爲你的詞彙集的一部分,當你做測試,你的模型將不會面臨這樣的情況。度量標準被打破,並且不能向您顯示模型的真實表現。

這是知識發現和自然語言處理的重要組成部分,您可以通過谷歌natural language processing unknown words瞭解模型用於解決這種情況的細節,理論和常用方法。

如果你只是想一些工具來處理未知的話,word2vec可能是對你有好處。