我有一长串单词或字母{word1 word2 word3 word1 word1 word2 ..etc}。假设我们从文本中提取所有 ngram(unigrams、bigrams、trigrams、4-gram、5-gram ....)以及它们的频率。
我的问题很简单,我们如何“统计地”找到给定此文本的 n-gram 的最佳长度。是 unigrams、bigrams、trigrams、4-gram、5-gram 还是 value-gram。
请注意,我对文本没有先验知识。
我有一长串单词或字母{word1 word2 word3 word1 word1 word2 ..etc}。假设我们从文本中提取所有 ngram(unigrams、bigrams、trigrams、4-gram、5-gram ....)以及它们的频率。
我的问题很简单,我们如何“统计地”找到给定此文本的 n-gram 的最佳长度。是 unigrams、bigrams、trigrams、4-gram、5-gram 还是 value-gram。
请注意,我对文本没有先验知识。
可能有一些统计标准来选择最好的,但我相信选择任何参数的最佳方法是使用cross-validation。
假设您正在构建一个用于检测文章语言的系统,并且您决定使用 n-gram(n-shingles)来表示文档。然后选择最好的,您将数据集拆分为训练和测试子集,然后对每个子集在训练集上运行 10 倍交叉验证并选择这样的最小化验证错误。
CV 也可以用于无监督学习,参见例如(1)
[1] Patrick O. Perry,“无监督学习的交叉验证”,http://arxiv.org/abs/0909.3052