2014-02-09 24 views
6

至少有3種類型的正克也算是爲代表的文本文件:字節與字符與字 - n-grams的粒度?

  • 字節級的n-gram
  • 字符級的n-gram
  • 字級正克

我不清楚哪一個應該用於給定的任務(聚類,分類等)。當文本中包含錯別字時,我會在某處看到字符級n-gram優於字級n-gram,因此「Mary愛狗」與「Mary lpves dog」類似。

是否有其他標準需要考慮選擇「正確」的表示?

回答

4

評價。選擇表示的標準是,無論什麼作品

事實上,字符級別(!=字節,除非你只關心英語)可能是最常見的表示法,因爲它對拼寫差異很有效(如果你看歷史,它不需要是錯誤;拼寫變化)。所以爲了拼寫更正的目的,這個效果很好。

另一方面,Google Books n-gram查看器在他們的書籍語料庫上使用字級n-gram。因爲他們不想分析拼寫,但隨着時間的推移使用術語;例如「托兒」,其中單詞不像他們的組合那麼有趣。這被證明是非常有用的機器翻譯,通常被稱爲「冰箱磁鐵模型」。

如果您未處理國際語言,字節也可能有意義。

2

我會直接丟棄字節級n-gram文本相關的任務,因爲字節不是任何有意義的表示。

在其餘兩個級別中,字符級n-gram將需要更少的存儲空間,並且隨後將保存更少的信息。它們通常用於語言識別,作者識別(即指紋識別),異常檢測等任務。

至於字級n-gram,它們可以用於相同的目的等等,但它們需要更多的存儲空間。例如,您需要高達幾千兆字節來在內存中表示英語單詞3-grams(用於通用任務)的有用子集。但是,如果您需要使用的文本數量有限,則字級n-gram可能不需要太多存儲空間。

至於錯誤的問題,一個足夠大的單詞n-gram語料庫也將包括和表示它們。此外,還有各種平滑處理稀疏性的方法。

n-gram存在的其他問題是它們幾乎永遠無法捕獲整個所需的上下文,因此只會逼近它。

您可以在經典的Foundations of Statistical Natural Language Processing中閱讀更多有關n-grams的內容。

2

我在小字符串中使用字符ngram,而在字符ngram中使用大塊文本的文本分類。這是一個問題,哪種方法會保留你所需要的環境或多或少......

一般文本的分類,字的n-gram會有點幫助與詞義dissambiguation,其中人物的n-gram會很容易混淆,你的功能可能是完全不明確。對於無監督聚類,這將取決於你如何一般希望你的集羣,憑什麼你想文檔收斂。在相當大的語料庫中,我發現詞幹刪除和單詞bigrams在無監督聚類任務中運行良好。

字的n-gram是偉大的小弦的模糊字符串匹配。

我喜歡把一組克作爲一個矢量,想象一下將矢量與你所擁有的克數進行比較,然後問問你自己是否保持足夠的上下文來回答你試圖回答的問題。

HTH