我们需要一个内容分类模块。贝叶斯分类器似乎是我想要的。我们应该去橙色还是NLTK?

有帮助吗?

解决方案

正如文档所证明的那样,每个库中的幼稚贝叶斯实现都很易于使用,那么为什么不将数据运行并比较结果呢?

橙色和NLTK都是起源于大型大学的成熟,稳定的图书馆(每个图书馆的开发10年以上)。他们共享一些共同的功能,主要是机器学习算法。除此之外,它们在范围,目的和实施方面截然不同。

橙色是无知的领域,而不是针对特定的学术学科或商业领域,而是将自己宣传为全栈数据挖掘和ML平台。重点是 工具 本身,而不是在特定学科中应用这些工具。

它的功能包括IO,数据分析算法和数据可视化画布。

另一方面,NLTK的开始,一直是一所大型大学的计算语言学系的学术项目。您提到的任务(文档内容分类)和您选择的算法(天真的贝叶斯)几乎是NLTK功能的核心。 NLTK确实具有ML/数据挖掘算法,但仅是因为它们在计算语言学中具有特殊的效用。

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

也许橙色的幼稚贝叶斯实现也一样好,我仍然会选择NLTK的实现,因为它明确针对您提到的特定任务进行了优化。

NLTK上有许多教程,尤其是其天真的贝叶斯用于使用内容分类。博客文章 吉姆加 还有另一个 StreamHacker.com, ,例如,为使用NLTK的天真贝叶斯提供了出色的教程;第二个包括对访问此模块所需的代码的逐条讨论。这两个帖子的作者都报告了使用NLTK的良好结果(前者为92%,后者为73%)。

其他提示

我不知道橙色,但是+1 for nltk:

我已经依次使用NLTK中的分类工具来对文本和相关的元数据进行分类。贝叶斯是默认值,但还有其他替代方案,例如最大熵。另外,作为工具包,您可以根据自己的合适来自定义 - 例如。创建您自己的功能(这是我为元数据所做的)。

NLTK也有几本好书 - 其中一本可在Creative Commons(以及O'Reilly)下购买。

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

  1. 令牌化:将字符分组为单词。这范围从琐碎的正则事情到处理诸如“不能”之类的宫缩
  2. 标记。这是将词性标签应用于令牌(例如名词的“ nn”,“ vbg”的动词gerund)。这通常是通过在训练语料库上训练模型(例如隐藏的马尔可夫)(即用手标记的句子的大清单)来完成的。
  3. 分块/解析。这将每个标记的句子和将特征提取到树中(例如名词短语)。这可以根据手写的语法或在语料库中训练的语法。
  4. 信息提取。这是在遍历树并提取数据。这是您的特定橙色=将完成的地方。

NLTK支持WordNet,这是一个巨大的语义词典,该字典对单词进行了分类。因此,有5个名词定义(水果,树,色素,颜色,南非的河流)。这些中的每一个都有一个或多个“超核路径”,这些路径是分类的层次结构。例如,“橙色”的第一感有两条路径:

  • 橙色/柑橘/edible_fruit/fruit/prodoductive_structure/plant_organ/plant_part/natural_object/natural_object/thult/object/yectern_entity/enthity/entity

  • 橙色/柑橘/Edible_fruit/produce/food/solid/solid/yrathy_entity/实体

根据您的应用领域,您可以将橙色识别为水果,食物或植物的东西。然后,您可以使用块状的树结构来确定更多(谁对水果做了什么,等等)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top