文件功能矢量表示

TeF*_*eFa 2 algorithm machine-learning feature-extraction document-classification

我正在构建一个文档分类器来对文档进行分类.

因此,第一步是将每个文档表示为用于训练目的的"特征向量".

经过一些研究,我发现我可以使用Bag of Words方法或N-gram方法将文档表示为向量.

使用OCR检索每个文档中的文本(扫描的pdf和图像),因此某些单词包含错误.我以前没有关于这些文件中使用的语言的知识(不能使用词干).

据我所知,我必须使用n-gram方法.还是有其他方法来表示文件?

如果有人可以将我链接到N-Gram指南以便更清晰地了解并了解其工作方式,我也将不胜感激.

提前致谢

ffr*_*end 9

  1. 使用语言检测来获取文档的语言(我最喜欢的工具是来自Tika项目的LanguageIdentifier,但还有许多其他工具可用).
  2. 使用拼写纠正(有关详细信息,请参阅此问题).
  3. 词干(如果您在Java环境中工作,Lucene是您的选择).
  4. 收集所有N-gram(见下文).
  5. 制作实例通过提取正从克特定文档进行分类.
  6. 构建分类器.

N-gram模型

N-gram只是N个项目的序列.在按主题分类时,您通常使用N-gram单词或其根(尽管有基于N-gram字符的模型).最流行的N-gram是unigrams(只是单词),bigrams(2个连续单词)和trigrams(3个连续单词).所以,从句子

你好,我叫弗兰克

你应该得到以下unigrams:

[你好,我的,名字,是,坦白](或[你好,我,名字,是,坦白],如果你使用根)

以下双胞胎:

[hello_my,my_name,name_is,is_frank]

等等.

最后,您的要素向量应具有与所有文本中的单词一样多的位置(维度)以及未知单词中的单词.实例向量中的每个位置都应以某种方式反映实例文本中相应单词的数量.这可能是出现次数,二进制特征(如果出现单词则为1,否则为0),标准化特征tf-idf(在主题分类中非常流行).

分类过程本身与任何其他域相同.