Запустите скрипт Python из cmd в Windows
Мне нужно генерировать функции из текста. Скрипт, который я использую ниже, доступен онлайн, но на самом деле я не знаю, как его запустить, потому что я совсем не знаю python. У меня есть текстовый файл под названием (train.txt) содержит следующее
He PRP B-NP
reckons VBZ B-VP
the DT B-NP
current JJ I-NP
account NN I-NP
deficit NN I-NP
will MD B-VP
narrow VB I-VP
to TO B-PP
only RB B-NP
# # I-NP
1.8 CD I-NP
billion CD I-NP
in IN B-PP
September NNP B-NP
. . O
и у меня есть скрипт Python, который преобразует вышеуказанный текст в функции, такие как следующие функции:
B-NP w[0]=He w[1]=reckons w[2]=the w[0]|w[1]=He|reckons pos[0]=P
RP pos[1]=VBZ pos[2]=DT pos[0]|pos[1]=PRP|VBZ pos[1]|pos[2]=VB
Z|DT pos[0]|pos[1]|pos[2]=PRP|VBZ|DT __BOS__
...
Сценарий Python является
# Separator of field values.
separator = ' '
# Field names of the input data.
fields = 'w pos y'
# Attribute templates.
templates = (
(('w', -2), ),
(('w', -1), ),
(('w', 0), ),
(('w', 1), ),
(('w', 2), ),
(('w', -1), ('w', 0)),
(('w', 0), ('w', 1)),
(('pos', -2), ),
(('pos', -1), ),
(('pos', 0), ),
(('pos', 1), ),
(('pos', 2), ),
(('pos', -2), ('pos', -1)),
(('pos', -1), ('pos', 0)),
(('pos', 0), ('pos', 1)),
(('pos', 1), ('pos', 2)),
(('pos', -2), ('pos', -1), ('pos', 0)),
(('pos', -1), ('pos', 0), ('pos', 1)),
(('pos', 0), ('pos', 1), ('pos', 2)),
)
import crfutils
def feature_extractor(X):
# Apply attribute templates to obtain features (in fact, attributes)
crfutils.apply_templates(X, templates)
if X:
# Append BOS and EOS features manually
X[0]['F'].append('__BOS__') # BOS feature
X[-1]['F'].append('__EOS__') # EOS feature
if __name__ == '__main__':
crfutils.main(feature_extractor, fields=fields, sep=separator)
И script.py, и crfutils.py находятся в той же папке, где я запускаю приведенный выше скрипт из cmd в Windows 7, как показано ниже:
C:\>Python script.py train.txt > train.result.txt
У меня есть пустой файл с названием train.result.txt и потому, что я новичок в python (на самом деле, просто начните его изучать). Я не знаю, в чем проблема? я предоставляю аргументы в неправильном порядке? Неправильный ли формат файла train.txt?
1 ответ
Вам нужно передать в train.txt на стандартный ввод, а не в качестве аргумента командной строки:
C:\>Python script.py < train.txt > train.result.txt