在PyWeka(pythonweka包装器)中使用包
我需要一些在PyWeka中使用已安装软件包的帮助。我可以安装软件包,但我无法使用它们或找到它们的安装位置。当我试图找到完整的类名时,我得到一个异常(当没有匹配的模块时发生) 例如:在PyWeka(pythonweka包装器)中使用包,python,wrapper,weka,Python,Wrapper,Weka,我需要一些在PyWeka中使用已安装软件包的帮助。我可以安装软件包,但我无法使用它们或找到它们的安装位置。当我试图找到完整的类名时,我得到一个异常(当没有匹配的模块时发生) 例如: import weka.core.classes as core core.complete_classname("J48") 输出 'weka.classifiers.trees.J48' True ------------------------------------------------------
import weka.core.classes as core
core.complete_classname("J48")
输出
'weka.classifiers.trees.J48'
True
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-25-7ea05097d6f1> in <module>()
1 import weka.core.classes as core
2 print(packages.is_installed("DMNBtext"))
----> 3 core.complete_classname("DMNBtext")
/usr/local/lib/python3.6/dist-packages/weka/core/classes.py in complete_classname(classname)
1725 return str(result[0])
1726 elif len(result) == 0:
-> 1727 raise Exception("No classname matches found for: " + classname)
1728 else:
1729 matches = []
Exception: No classname matches found for: DMNBtext
我正在尝试安装DMNBtext包。已安装,但找不到模块
import weka.core.classes as core
print(packages.is_installed("DMNBtext"))
core.complete_classname("DMNBtext")
输出
'weka.classifiers.trees.J48'
True
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-25-7ea05097d6f1> in <module>()
1 import weka.core.classes as core
2 print(packages.is_installed("DMNBtext"))
----> 3 core.complete_classname("DMNBtext")
/usr/local/lib/python3.6/dist-packages/weka/core/classes.py in complete_classname(classname)
1725 return str(result[0])
1726 elif len(result) == 0:
-> 1727 raise Exception("No classname matches found for: " + classname)
1728 else:
1729 matches = []
Exception: No classname matches found for: DMNBtext
True
---------------------------------------------------------------------------
异常回溯(最后一次最近调用)
在()
1导入weka.core.classes作为核心
2个打印(已安装软件包(“DMNBtext”))
---->3.完整的类名(“DMNBtext”)
/usr/local/lib/python3.6/dist-packages/weka/core/classes.py完整的类名(classname)
1725返回str(结果[0])
1726 elif len(结果)=0:
->1727引发异常(“未找到与:“+classname”匹配的类名)
1728其他:
1729个匹配项=[]
异常:未找到与以下项匹配的类名:DMNBtext
请注意,is_installed提供了真实的输出,这意味着软件包已安装
你知道我该怎么解决这个问题吗?
另外,我的jvm是以packages=True启动的,所以这应该不是问题。
提前感谢。我刚刚创建了一个新的虚拟环境,其中包括: 然后成功运行以下脚本(如果尚未安装
DMNBtext
程序包,则需要运行两次):
导入系统
将weka.core.jvm导入为jvm
将weka.core.packages作为包导入
从weka.core.classes导入完整的\u类名
start(packages=True)
pkg=“DMNBtext”
#如有必要,请安装软件包
如果未安装软件包,是否安装了_(软件包):
打印(“安装%s..%pkg”)
软件包。安装_软件包(pkg)
打印(“已安装%s,请重新运行脚本!”%pkg)
jvm.stop()
系统出口(0)
#测试类名完成
打印(完整的类名(“.J48”))
打印(完整的类名(“.DMNBtext”))
jvm.stop()
安装DMNBtext
包后,脚本将输出以下内容:
weka.classifiers.trees.J48
weka.classifiers.bayes.DMNBtext
我假设您已经在Anaconda上安装并运行了pyWeka。如何做到这一点的细节如下 您应该开始激活java虚拟机
import weka.core.jvm as jvm
import weka.core.classes as core
jvm.start(packages=True) # needed for package manipulation
from weka.classifiers import Classifier # you are going to classify something
import weka.core.packages as packages # so you can install packages
packages.install_package('DNMNBtext') # if it is not already installed.
# You can also install it on Weka
现在您可以发布:
core.complete_classname("DMNBtext")
查找类的名称
'weka.classifiers.bayes.DMNBtext'
最后
dmnb = Classifier(classname="weka.classifiers.bayes.DMNBtext")
dmnb.options=[list of options]
保重