0

こんにちは、私はPythonに新しく、スクリプト(https://github.com/detuvoldo/tagger)を実行しようとしましたが、Windows 10を使用しているのでutils.pyの2行を置き換えました。パス関連の問題。Pythonの名前付きエンティティの認識エラー:IndexError:リストのインデックスが範囲外です

models_path = u"\\\\?\\" + os.path.abspath(u".\\models") 
eval_path = os.path.abspath(u".\\evaluation") 

エラーが

run train.py --train lstm/fold1/train --dev lstm/fold1/dev --test lstm/fold1/test 
WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. You can get more information about how to switch at this URL: 
https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29 

Using gpu device 0: GeForce GT 620M (CNMeM is enabled with initial size: 85.0% of memory, cuDNN not available) 
Model location: \?\E:\New-Code\tagger-master\tagger-master\models\tag_scheme=iob,lower=False,zeros=False,char_dim=25,char_lstm_dim=25,char_bidirect=True,word_dim=100,word_lstm_dim=100,word_bidirect=True,pre_emb=,all_emb=False,cap_dim=0,crf=True,dropout=0.3,lr_method=sgd-lr_.005 
Found 2573 unique words (48986 in total) 
Found 64 unique characters 
Found 27 unique named entity tags 
858/289/286 sentences in train/dev/test. 
Saving the mappings to disk... 
Compiling... 
Starting epoch 0... 
50, cost average: 101.645935 
100, cost average: 83.234520 
150, cost average: 82.757523 
200, cost average: 69.019493 
250, cost average: 64.411346 
300, cost average: 62.836563 
350, cost average: 60.969635 
400, cost average: 58.851826 
450, cost average: 49.994457 
ID NE Total O I-LOC B-CTT B-OBJ B-LOC B-ACR B-INT B-PRC I-FACE I-PRC I-ACR I-OBJ B-FNUM I-FNUM I-DDIR B-FACEI-BEDNUM I-CTT B-DDIR I-INTB-BEDNUMB-BATHNUMI-BATHNUM I-FPOS B-FPOS I-BDIR B-BDIR Percent 
0 O 9314 9175 0 63 14 0 0 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98.508 
1 I-LOC 2604 2602 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
2 B-CTT 478 245 0 233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 48.745 
3 B-OBJ 464 282 0 0 177 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 38.147 
4 B-LOC 439 439 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
5 B-ACR 346 334 0 1 1 0 7 2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.023 
6 B-INT 339 126 0 0 32 0 0 181 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 53.392 
7 B-PRC 233 232 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
8 I-FACE 218 218 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
9 I-PRC 232 225 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
10 I-ACR 214 203 0 0 2 0 1 0 0 0 0 7 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.271 
11 I-OBJ 201 198 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
12 B-FNUM 170 156 0 0 5 0 0 8 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
13 I-FNUM 166 157 0 0 8 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
14 I-DDIR 170 169 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
15 B-FACE 120 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
16I-BEDNUM 103 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
17 I-CTT 103 98 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
18 B-DDIR 83 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
19 I-INT 57 56 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
20B-BEDNUM 57 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
21B-BATHNUM 44 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
22I-BATHNUM 45 44 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
23 I-FPOS 42 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
24 B-FPOS 37 36 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
25 I-BDIR 22 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
26 B-BDIR 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000 
9780/16307 (59.97424%) 
Traceback (most recent call last): 

File "E:\New-Code\tagger-master\tagger-master\train.py", line 221, in 
dev_data, id_to_tag, dico_tags, epoch) 

File "utils.py", line 284, in evaluate 
return float(eval_lines[1].strip().split()[-1]) 

IndexError: list index out of range 

ですあなたは私がエラーを解決するのに役立つことができるものを提案してくださいことはできますか?私は最後の2ヶ月間立ち往生しています。ありがとう

+0

'eval_lines'には要素が1つしかなく、' eval_lines [1] 'はIndexErrorの原因です。 'eval_lines'がどのように生成されるのかわからないので、もっと言い表せません。 – Reti43

+0

あなたのレスポンス@ Reti43に感謝しますので、エラーを避けるためにeval_lines [1]に置き換えてください。 –

+0

私は今それを見る時間があまりありませんが、別の種類の魂が来るまでここにポインタがあります。 'eval_path'は' eval_temp'の定義に関係しているようで、 'scores_path'と最後に' eval_lines'に影響するようです。だから、おそらく 'eval_path'の変更に関係しているはずです。 – Reti43

答えて

0

E:\New-Code\tagger-master\tagger-master\ディレクトリから"models""evaluation"のスクリプトが実行されているとします。この場合、これは正しくパスを指定する必要があります。この設定で、このエラーが表示された場合

models_path = "models" 
eval_path = "evaluation" 
eval_temp = os.path.join(eval_path, "temp") 
eval_script = os.path.join(eval_path, "conlleval") 

、問題はあなたの"eval.*.scores"のいずれかのファイルではなく、パスの指定です。 にはが含まれていなければなりませんが、実際の内容は少なくとも提供する必要があります。

+0

長いパスが有効になっているWindows 10システムでPython 3.6以降でスクリプトが実行されている場合を除き、DOSパスの最大長は260文字です。 OPは、200文字以上の長いファイル名を作成するライブラリで動作しているので、 'u" \\\\?\\ "'という接頭辞を持つ絶対Unicodeパスを使用することが強制されます。このようなパスは、サポートされているすべてのバージョンのWindowsで約32760文字まで使用できます。 – eryksun

関連する問題