Algorithm 文档特征向量表示

Algorithm 文档特征向量表示,algorithm,machine-learning,document-classification,feature-extraction,Algorithm,Machine Learning,Document Classification,Feature Extraction,我正在构建一个文档分类器来对文档进行分类 因此,第一步是将每个文档表示为“特征向量”,以便进行培训 经过一些研究,我发现我可以使用单词袋方法或N-gram方法将文档表示为向量 使用OCR检索每个文档(扫描的PDF和图像)中的文本,因此某些单词包含错误。我以前不知道这些文档中使用的语言(不能使用词干) 据我所知,我必须使用n-gram方法。还是有其他方法来表示文档? 如果有人能将我与N-Gram指南联系起来,以便更清楚地了解其工作原理,我也将不胜感激。 提前谢谢 使用语言检测获取文档的语言(我最喜

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

因此,第一步是将每个文档表示为“特征向量”,以便进行培训

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

使用OCR检索每个文档(扫描的PDF和图像)中的文本,因此某些单词包含错误。我以前不知道这些文档中使用的语言(不能使用词干)

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

如果有人能将我与N-Gram指南联系起来,以便更清楚地了解其工作原理,我也将不胜感激。

提前谢谢

  • 使用语言检测获取文档的语言(我最喜欢的工具来自Tika项目,但还有很多其他工具可用)
  • 使用拼写更正(有关详细信息,请参阅)
  • Stemwords(如果您在Java环境中工作,这是您的选择)
  • 收集所有N克(见下文)
  • 通过从特定文档中提取n-gram,为分类创建实例
  • 构建分类器 N-gram模型 N-gram只是N个项目的序列。在按主题分类时,通常使用N克单词或词根(尽管有基于N克字符的模型)。最流行的N字图是单字图(仅字)、双字图(2个连续字)和三字图(3个连续字)。所以,从句子开始

    你好,我叫弗兰克

    您应该获得以下单位图:

    [hello,my,name,is,frank](或[hello,I,name,be,frank],如果使用根)

    以下是大图:

    [你好,我的,我的名字,名字是,是弗兰克]

    等等

    最后,特征向量的位置(维度)应该与所有文本中的单词加上1表示未知单词一样多。实例向量中的每个位置都应该以某种方式反映实例文本中相应单词的数量。这可能是出现次数二进制特征(单词出现时为1,否则为0),标准化特征或(在按主题分类时非常流行)


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

    @ffriend,对不起,我有点困惑。。。雪球分析仪和Lucene分析仪有什么区别?因为我下载了Lucene核心库,但它不包括任何雪球分析器@TeFa,Lucene是整个库的名称,因此该库中的任何分析器都是“Lucene analyzer”。SnowBallaAnalyzer是一种流行的分析器,可以通过将语言字符串传递给构造函数为不同的语言进行配置。您可以在名为a-la“lucene-snowball-3.1.1.jar”或类似名称的罐子中找到此分析器。然而,目前SnowBallaAnalyzer正在使用中,建议使用模块/分析中的特定于语言的分析器。另请参阅问题,了解分析器的工作原理及其组成部分。是的,我刚刚注意到SnowBallaAnalyzer已被弃用,我应该在contrib/分析器中使用分析器。语言检测和词干分析现在正在为我工作:)。。。我还发现了一个非常好的语言检测库,因为你建议的那个库给了我不正确的结果,不确定我是否做错了什么,或者到底是什么。但是非常感谢。没有你的帮助我不能走这么远。。。