【问题标题】:Java Open Source Text Mining Frameworks [closed]Java 开源文本挖掘框架 [关闭]
【发布时间】:2011-01-19 04:10:08
【问题描述】:

我想知道什么是最好的基于 Java 的开源文本挖掘框架,以使用 botg 机器学习和字典方法。

我正在使用 Mallet,但没有那么多文档,我不知道它是否符合我的所有要求。

【问题讨论】:

  • 我有一个相关的问题在stackoverflow.com/questions/2293636/…
  • 谢谢:P。在使用 ML 方法时,使用具有满足所有 IR 要求的广泛框架的 POS 标记器应该很好。 Lingpipe 对于字典来说非常好用,但对于商业工具来说它不是免费的。

标签: java frameworks machine-learning nlp information-retrieval


【解决方案1】:

老实说,我认为这里提供的几个答案非常好。但是,为了满足我的要求,我选择使用Apache UIMAClearTK。它支持多种 ML 方法,我没有任何许可证问题。另外,我可以对其他 ML 方法进行封装,并且我可以利用 UIMA 框架,该框架组织良好且速度快。

感谢大家的有趣回答。

最好的问候, 乌克兰

【讨论】:

    【解决方案2】:

    虽然不是专门的文本挖掘框架,Weka 有许多分类器通常用于文本挖掘任务,例如:SVM、kNN、多项式 NaiveBayes 等。

    它还有一些过滤器可以处理文本数据,例如可以执行 TF/IDF 转换的 StringToWordVector 过滤器。

    查看Weka wiki 网站了解更多信息。

    【讨论】:

    • 问题是我需要执行命名实体识别(NER),而Weka没有提供特征来从单词中提取特征,例如正字法和形态学特征。但如果我能在 IR 上使用 Weka 的方法,那就太棒了。
    • 我认为关于该主题的维基百科页面有一些指向 NER 包的链接。另外我刚刚遇到了 Apache 的 UIMA 项目,也许你会发现它很有用:incubator.apache.org/uima/index.html
    • 是的,我知道 UIMA。但它不提供 ML 方法。对于使用基于字典的方法制作 NER 的系统来说,这是一个完美的解决方案。我不知道如何在 UIMA 上集成 ML 方法。
    【解决方案3】:

    【讨论】:

    • 我已经看过这个网站了,非常好,谢谢。但我是在询问您的经验反馈。我已经尝试了其中一些,但我不知道哪个是最好的。或者即使我必须使用一个、两个甚至更多框架来完成我的任务。
    • @ukrania 对不起,那我不是合适的人选。祝你好运。
    【解决方案4】:

    我使用了LingPipe——一套用于人类语言语言分析的 Java 库——用于文本挖掘(和其他相关)任务。

    这是一个非常文档齐全的软件包,该站点包含几个教程,详细解释了如何使用 LingPipe 完成某项任务,例如named entity recognition。还有一个新闻组,您可以在其中发布有关该软件(或 NLP 相关任务)的任何问题,并获得软件包作者本人的及时回复;当然还有blog

    源代码也很容易理解并且有据可查,这对我来说总是一个很大的优势。

    至于机器学习算法,有很多,从朴素贝叶斯到Conditional Random Field。另一方面,对于字典匹配算法,他们有一个ExactDicitonaryChunker,这是 Aho-Corasich 算法的一个实现(这个任务的一个非常非常快的算法)。

    总之,我认为它是 Java 最好的 NLP 软件包之一(我没有使用过那里的每个软件包,所以我不能说它是最好的),我绝对推荐它你手头的任务。

    【讨论】:

    • @JG 感谢您的建议 :)。我正在做我的研究系统。做商业工具也要付费?有什么限制?
    【解决方案5】:

    您可能已经知道 GATE:http://gate.ac.uk/

    ...但这就是我们(在我的日常工作中)用于许多不同文本挖掘问题的方法。它非常灵活和开放。

    【讨论】:

    • @PSpeed 是的,我已经知道了。 GATE 与 UIMA 非常相似。实际上,GATE 是第一个出现的。但是,我不知道是否可以使用 GATE 执行 ML 方法。你知道吗?
    • 我认为 GATE 也更灵活......我们发现 UIMA 非常局限。我没有 ML 方面的具体经验,但似乎如果有人正在研究它,那么 GATE 将是一个可能的平台。如果我正在写类似的东西,我可能会从这里开始……但我没有搜索任何具体的项目。
    • 看起来在 ML 和 GATE 方面至少有一些工作:gate.ac.uk/gate/doc/plugins.html#Machine_Learning
    【解决方案6】:

    我为 CoNLL 数据构建了一个最大熵命名实体识别器,使用 OpenNLP MaxEnt http://sourceforge.net/projects/maxent/ 进行一次课程。

    虽然需要使用自定义 perl 脚本进行大量数据预处理,但确实可以将所有特征提取到漂亮的数字向量中。

    【讨论】:

      【解决方案7】:

      我们使用 lucene 处理来自互联网的实时流。它有一个原生的java api。

      http://lucene.apache.org/java/docs/

      然后您可以使用 mahout,它是一组在 lucene 之上运行的机器学习算法。

      http://lucene.apache.org/mahout/

      【讨论】:

      • 可以用mahout来做NER吗?
      猜你喜欢
      • 2010-10-24
      • 1970-01-01
      • 2011-05-11
      • 2010-09-19
      • 2011-02-16
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      相关资源
      最近更新 更多