【问题标题】:stuck in using Megam in Python ( nltk.classify.MaxentClassifier)坚持在 Python 中使用 Megam (nltk.classify.MaxentClassifier)
【发布时间】:2012-06-17 14:09:17
【问题描述】:

我使用的是ubuntu x64,两天后搜索了所有网络,仍然无法安装Megam, 我已阅读此页面中的所有信息http://www.cs.utah.edu/~hal/megam/ 并从http://packages.ubuntu.com/precise/ocaml 安装了 x64 版本的 o'calm 但是当我想在 python 中使用“megam”作为分类器时,它会说:

"NLTK 无法找到 megam 文件!请使用特定软件 配置参数或设置 MEGAM 环境变量。

谁能告诉我如何在 python 中安装和使用它?

我已经下载了“ocaml-3.12.1.tar.gz”,但是“make”命令不起作用(正如它的自述文件中所说)。 我也下载了“megam_i686.opt”,但它无法执行,我无法运行它

有什么帮助吗?

提前致谢

【问题讨论】:

    标签: python ubuntu installation nltk


    【解决方案1】:

    对于未来的用户:

    megam 现在可以通过 brew 在 MAC 上使用:

    $brew tap homebrew/science
    $brew install megam
    

    【讨论】:

    • 但是在安装之后,我又遇到了一个问题:Exception ignored in: <generator object find_file_iter at 0x1060d1360> RuntimeError: generator ignored GeneratorExit optimizing with lambda = 0
    • @zhguuowei 有类似的错误信息。问题自行解决。等待了几分钟(2-3),该过程最终完成。 (注意:使用的是 jupyter notebook)。
    【解决方案2】:

    使用 config_megam() 告诉 NLTK Megam 可执行文件的位置。有关详细信息和文档,请参阅:http://nltk.googlecode.com/svn/trunk/doc/api/nltk.classify.megam-module.html

    您还需要为您的系统构建具有正确 32/64 位设置的 MEGAM。 “megam_i686.opt”适用于 x86 iirc,因此您应该将其编译为 64 位。我这样做已经有一段时间了,但是我只需要在 x64 系统上进行简单构建:“Make doesn't work”不是很有用:我确定它给了你一些错误消息......?可能路径未设置或只读?


    编辑:看起来上面的链接目前已损坏。 Megam 的主要站点位于:

    http://www.umiacs.umd.edu/~hal/megam/

    虽然有一段时间没有更新了。

    【讨论】:

    • @light-blue 嘿,你能发布关于如何让 megam 工作的指导吗?
    • 你好@winwaed 你能提供新链接吗?现有链接不再有效。谢谢
    【解决方案3】:

    Hugh Perkins 给出的答案帮助我解决了这个问题(由于声誉低,无法对该答案添加评论)。下载 zip 文件(来自http://thinknook.com/wp-content/uploads/2012/11/MEGAM.zip)后,我需要告诉 python 它在哪里,这是通过在 os.environ 中添加它来完成的:

    os.environ["MEGAM"] = '>/megam-64'

    【讨论】:

    • 在 Fedora 29 VM 上也为我工作!
    【解决方案4】:

    【讨论】:

      【解决方案5】:

      按照以下步骤,我设法让 megam 在运行 debian 9.7 的 docker 实例上运行。基于 Jack Hong here 建议的 MacOS 安装步骤。

      1. apt-get install make
      2. apt-get install ocaml-nox(或者 apt-get install ocaml,如果你想要 x 窗口支持)
      3. 下载源来自here
      4. 解压源码创建megam_0.92目录
      5. 在 megam_0.92 中编辑 Makefile 并进行以下更改。 (这 在我的特定实例中已经完成了第一个更改):
        • WITHCLIBS=-I /usr/local/lib/ocaml/caml
        • WITHSTR =str.cma -cclib -lcamlstr
      6. 保存更改并在您的 megam_0.92 目录中运行 make
      7. 将 nltk.config_megam('//megam_0.92/megam') 添加到您的脚本中,一切都会好起来的。

      【讨论】:

        猜你喜欢
        • 2013-06-06
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-18
        • 2019-04-09
        相关资源
        最近更新 更多