2

事前にトレーニングされたモデル (.mco ハックで追加) を使用して Malt Parser (1.7.1) を機能させるために、太陽の下であらゆることを試しました。私が得た最も近いものは、各単語の最初の文字をラベルとして持つ DependencyGraph です。私は一度だけそこに着いただけで、戻ることはできません。99% の確率で、次の情報しか得られません。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/nltk/parse/malt.py", line 98, in parse
    return self.tagged_parse(taggedwords, verbose)
  File "/Library/Python/2.7/site-packages/nltk/parse/malt.py", line 150, in tagged_parse
    "code %d" % (' '.join(cmd), ret))
Exception: MaltParser parsing (java -jar /Users/walrusthecat/maltparser/malt.jar -w /var/folders/2b/0fpc89fd0rqbj8bf4r7xbh640000gp/T -c /Users/walrusthecat/maltparser/model.mco -i /var/folders/2b/0fpc89fd0rqbj8bf4r7xbh640000gp/T/malt_input.conlltApSTj -o /var/folders/2b/0fpc89fd0rqbj8bf4r7xbh640000gp/T/malt_output.conllrkclZz -m parse) failed with exit code 1

一時ファイルを書き込んでいるディレクトリをchownするか、sudoでpythonを実行すると発生します。Malt Parser 1.7.1 および 1.2 で試しました。なんでも?

ありがとう

4

2 に答える 2

2

NLTK の MaltParser API は、2015 年 8 月に更新されました。

MaltParser を Linux で動作させるための段階的な方法を以下に示します。

1. Extract the Malt パーサーと事前トレーニング済みモデルをダウンロードします

cd 
wget http://www.maltparser.org/mco/english_parser/engmalt.linear-1.7.mco
wget http://maltparser.org/dist/maltparser-1.8.1.zip
unzip maltparser-1.8.1.zip

2. 環境変数を設定する

  • Javaがインストールされていることを確認してください
  • Malt Parser をダウンロードして解凍します: http://www.maltparser.org/download.html
  • MALT_PARSERLinuxなどの MaltParser ディレクトリを指すように環境変数を設定します/home/user/maltparser-1.8.1/
  • 事前トレーニング済みのモデルを使用する場合は、環境変数MALT_MODEL.mcoファイル (たとえばengmalt.linear-1.7.mcohttp://www.maltparser.org/mco/mco.html ) を指すように設定します。

例えば。

export MALT_PARSER=$HOME/maltparser-1.8.1/
export MALT_MODEL=$HOME/engmalt.linear-1.7.mco

( https://github.com/nltk/nltk/wiki/Installing-Third-Party-Software#malt-parserを参照)

次にpython

>>> from nltk.parse.malt import MaltParser
>>> mp = MaltParser('maltparser-1.8.1', 'engmalt.linear-1.7.mco')
>>> mp.parse_one('I shot an elephant in my pajamas .'.split()).tree()
Tree('shot', ['I', Tree('elephant', ['an']), Tree('in', [Tree('pajamas', ['my'])]), '.'])

TL;DR

alvas@ubi:~$ cd 
alvas@ubi:~$ wget http://www.maltparser.org/mco/english_parser/engmalt.linear-1.7.mco
alvas@ubi:~$ wget http://maltparser.org/dist/maltparser-1.8.1.zip
alvas@ubi:~$ unzip maltparser-1.8.1.zip
alvas@ubi:~$ export MALT_PARSER=$HOME/maltparser-1.8.1/
alvas@ubi:~$ export MALT_MODEL=$HOME/engmalt.linear-1.7.mco
alvas@ubi:~$ python
Python 2.7.11 (default, Dec 15 2015, 16:46:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from nltk.parse.malt import MaltParser
>>> mp = MaltParser('maltparser-1.8.1', 'engmalt.linear-1.7.mco')
>>> mp.parse_one('I shot an elephant in my pajamas .'.split()).tree()
Tree('shot', ['I', Tree('elephant', ['an']), Tree('in', [Tree('pajamas', ['my'])]), '.'])

詳細については、次のデモを参照してください。


Windows では、慎重に印刷画面の手順に従ってください: https://github.com/nltk/nltk/issues/1294#issuecomment-189831647

Windows の手順を要約すると、次のようになります。

  • インストールConda(最初に NLTK をインストールしないでください)
  • インストールGit
  • インストールJava
  • インストール(パッケージを NLTK v3.2 に更新するまで使用NLTKしないでください !!!)pip install -U https://github.com/nltk/nltk.gitconda install nltk
于 2016-02-28T10:04:28.000 に答える
0

.mco ファイルへのフル パスを指定する必要はありません。ファイル名だけで十分です。

使い方-malt-parser-in-python-nltk

于 2012-12-28T17:56:34.013 に答える