我正在开展一个项目,根据他们用英语交流的方式来确定他们的国籍。我有 10 个国籍和 1000 个文件,每个国籍 100 个。我正在使用 n-gram 作为特征并希望验证我的方法。我的数据结构将具有不同的 n-gram(字符 n-gram、bi-gram,作为列)作为特征和国籍作为标签(作为行)我的步骤是:
- 提取给定国籍的所有文件 (FINE)。1.1。将它们组合在一起形成一个文本语料库(例如将 100 个文件组合成一个大文件)。我最初考虑一次获取一个文件并根据它们的出现更新 n-gram 的计数。但是对于每个新的 n-gram,我必须进行查找以查看它是否已经发生,然后针对给定的标签更新其频率。这会是更好的方法吗?
- 提取二元/三元并获取每克的频率。(NLTK 有 FreqDist 为每个计数)
- 存储这些信息,以便我使用它来对我的测试集进行分类。(我如何存储这些信息。更多信息如下)
问题是我应该将 n-gram 和频率信息存储在矩阵中(具有所有 n-gram 和标签的单个矩阵或每个标签的单独矩阵)还是应该将其存储为地图(每个标签的地图,具有 n -gram 及其频率计数)。我想要一个数据结构(用于存储提取的信息),分类器很容易将其作为输入并处理它们。我无法预见,哪种数据结构会是更好的选择。