Orange与NLTK在Python中的内容分类

2024-05-17 04:35:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我们需要一个内容分类模块。贝叶斯分类器似乎是我要找的。我们要买橘子还是NLTK?在


Tags: 模块内容分类器分类nltk橘子
3条回答

我不知道橙色,但NLTK的+1:

我已经成功地使用了NLTK中的分类工具来对文本和相关元数据进行分类。贝叶斯是默认的,但也有其他的选择,比如最大熵。作为一个工具箱,你可以根据你的需要进行定制——比如创建你自己的特性(这就是我对元数据所做的)。在

NLTK还有几本好书,其中一本可以在creativecommons(以及O'Reilly)下找到。在

文档证明,每个库中的naivebayes实现非常简单 所以为什么不运行你的数据并比较结果呢?在

Orange和NLTK都是成熟、稳定的库(每个库都有10多年的开发经验) 起源于大型大学;它们有一些共同的特点,主要是机器学习 算法。除此之外,它们在范围、目的和实现上都有很大的不同。在

橙色是一个领域不可知论者,不针对某一特定的学科 或者说是商业领域,它却宣称自己是全栈数据挖掘 以及ML平台。它的重点是工具本身,而不是这些工具在特定学科中的应用。在

它的特性包括IO、数据分析算法和 数据可视化画布。在

另一方面,NLTK最初是一个计算领域的学术项目 一所大型大学的语言学系。你提到的任务 (文档内容分类)和您选择的算法(naivebayesian) NLTK的核心功能非常正确。NLTK确实如此 有ML/数据挖掘算法,但这只是因为它们有一个特定的 计算语言学中的效用。在

NLTK当然包括一些ML算法,但这仅仅是因为它们在计算语言学中具有实用性,以及文档解析器、标记器、词性 分析仪等,所有这些都包括NLTK。在

也许橙色的naivebayes实现也一样好,我还是选择NLTK的 实现,因为它显然针对您提到的特定任务进行了优化。在

有许多关于NLTK的教程,特别是关于其naivebayes的教程 内容分类。例如,Jim Plusstreamhacker.com的一篇博客文章非常出色 使用NLTK的naivebayes的教程;第二个教程包括一行一行的 讨论访问此模块所需的代码。这两本书的作者 posts报告使用NLTK的结果很好(前者92%,后者73%)。在

NLTK是一个支持自然语言处理的四状态模型的工具包:

  1. 标记化:将字符分组为单词。这包括从琐碎的正则表达式到处理像“不能”这样的收缩
  2. 标记。这是将词性标记应用于标记(例如“NN”表示名词,“VBG”表示动词动名词)。这通常是通过在训练语料库上训练一个模型(如隐马尔可夫链)来完成的(即大量的人工标注句子)。在
  3. 分块/解析。这是将每个带标签的句子提取到树中(例如名词短语)。这可以根据手写的语法或是在语料库上训练的语法。在
  4. 信息提取。这是遍历树并提取数据。这是你特定的橙色=水果的地方。在

NLTK支持WordNet,一个对单词进行分类的大型语义词典。所以橙色有5个名词定义(南非的水果、树、色素、颜色、河流)。其中每一个都有一个或多个分类层次结构的“上位词路径”。E、 g.“橙色”的第一感觉有两条路径:

  • 橘子/柑橘/可食用水果/水果/生殖结构/植物器官/植物部分/自然物体/整体/物体/物理实体/实体

以及

  • 橘子/柑橘/食用水果/农产品/食品/固体/物质/物理实体/实体

根据您的应用程序域,您可以将橙色标识为水果、食物或植物。然后你可以使用分块树结构来确定更多(谁对水果做了什么,等等)

相关问题 更多 >