StanfordSegmenter在nltk中没有界面,与StanfordPOStagger或StanfordNER的情况不同。所以要使用它,基本上我必须手动为StanfordSegmenter创建一个接口,即在../nltk/tokenize/下的stanford_segmenter.py。我按照http://textminingonline.com/tag/chinese-word-segmenter
中的说明操作但是,当我尝试运行此<style>
ul {
list-style: none;
}
</style>
时,我收到了错误
from nltk.tokenize.stanford_segmenter import stanford_segmenter
创建stanford_segmenter.py后重新安装nltk的说明。我不太明白,但我做到了。但是,这个过程很难被称为“重新安装”,而是分离并重新连接nltk到python库。
我使用的是Windows 64和Python 2.7.11。 NLTK和所有相关的pkgs都更新到最新版本。不知道你们是否可以对此有所了解。非常感谢你们。
答案 0 :(得分:1)
我可以通过运行以下代码导入模块:
import imp
yourmodule = imp.load_source("module_name.py", "/path/to/module_name.py")
yourclass = yourmodule.TheClass()
yourclass
是类的实例,TheClass
是要创建obj的类的名称。这类似于使用:
from pkg_name.module_name import TheClass
因此,对于StanfordSegmenter,完整的代码行如下:
# -*- coding: utf-8 -*-
import imp
import os
ini_path = 'D:/jars/stanford-segmenter-2015-04-20/'
os.environ['STANFORD_SEGMENTER'] = ini_path + 'stanford-segmenter-3.5.2.jar'
stanford_segmenter = imp.load_source("stanford_segmenter", "C:/Users/qubo/Miniconda2/pkgs/nltk-3.1-py27_0/Lib/site-packages/nltk/tokenize/stanford_segmenter.py")
seg = stanford_segmenter.StanfordSegmenter(path_to_model='D:/jars/stanford-segmenter-2015-04-20/data/pku.gz', path_to_jar='D:/jars/stanford-segmenter-2015-04-20/stanford-segmenter-3.5.2.jar', path_to_dict='D:/jars/stanford-segmenter-2015-04-20/data/dict-chris6.ser.gz', path_to_sihan_corpora_dict='D:/jars/stanford-segmenter-2015-04-20/data')
sent = '我有一只小毛驴我从来也不骑。'
text = seg.segment(sent.decode('utf-8'))