2017-08-06 666 views
0

我想在本文所指定的實現之後,在我的文本語料庫上使用python訓練手套模型。 Glove model 而從指定的路徑使用Python中的ArgumentParser從指定路徑讀取文件

parser.add_argument('corpus', metavar='corpus_path', 
         type=partial(codecs.open, encoding='utf-8')) 

如何指定該參數文件路徑讀取語料庫文件,我遇到的問題。 我用命令行參數如下圖所示

C:\Users\JAYASHREE\Documents\NLP>python Glove_python_bbc.py 'C:/Users/JAYASHREE/Documents/NLP/text-corpus' --vocab-path C:/Users/JAYASHREE/Documents/NLP/vocabulary --cooccur-path C:/Users/JAYASHREE/Documents/NLP/cooccur_matrix -w 10 --min-count 10 --vector-path C:/Users/JAYASHREE/Documents/NLP/word-vector -s 40 --iterations 10 --learning-rate 0.1 --save-often True 

我收到錯誤如下

Traceback (most recent call last): 
    File "Glove_python_bbc.py", line 380, in <module> 
    main(parse_args()) 
    File "Glove_python_bbc.py", line 70, in parse_args 
    return parser.parse_args() 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 1701, in parse_args 
    args, argv = self.parse_known_args(args, namespace) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 1733, in parse_known_args 
    namespace, args = self._parse_known_args(args, namespace) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 1921, in _parse_known_args 
    positionals_end_index = consume_positionals(start_index) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 1898, in consume_positionals 
    take_action(action, args) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 1791, in take_action 
    argument_values = self._get_values(action, argument_strings) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 2231, in _get_values 
    value = self._get_value(action, arg_string) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\argparse.py", line 2260, in _get_value 
    result = type_func(arg_string) 
    File "C:\Users\JAYASHREE\Anaconda2\lib\codecs.py", line 896, in open 
    file = __builtin__.open(filename, mode, buffering) 
IOError: [Errno 22] invalid mode ('rb') or filename: "'C:/Users/JAYASHREE/Documents/NLP/text-corpus'" 

如何參數傳遞給語料庫路徑

感謝

回答

1

在我印象中, Windows中的單引號會導致命令行參數出現問題,它們不會被轉義,而會被解釋爲字符串的一部分。請參閱錯誤日誌中的最後一行:

IOError: [Errno 22] invalid mode ('rb') or filename: "'C:/Users/JAYASHREE/Documents/NLP/text-corpus'" 

文件名中有單引號。

只需用雙引號替換單引號,或者在你的情況下,省略這些值,你會沒事的。

類Unix操作系統似乎並不存在這些問題。

請參閱thisthis問題你可能會得到一個提示。

+0

當我使用雙引號或不使用我收到以下錯誤'[-h] [ - 詞彙路徑VOCAB_PATH] [--cooccur路徑COOCCUR_PATH] [-w WINDOW_SIZE] [報價的任何 - 最小計數MIN_COUNT] [--vector路徑VECTOR_PATH] [-s VECTOR_SIZE] [--iterations ITERATIONS] [--learning速率LEARNING_RATE] [--save-經常] corpus_path Glove_python_bbc.py:錯誤:無法識別的參數:真' – Jayashree

+1

@Jayashree這是另一回事。 ' - 經常保存'在那裏不需要特定的'真實'。當出現'--save-often'選項意味着你已經將該選項設置爲true(參見'action ='store_true''),只需刪除True,然後完成。 – Chazeon

相關問題