В настоящее время я пытаюсь использовать конвейер Stanford CoreNLP для анализа настроений. Мне нужно, чтобы он перебирал папку с отдельными текстовыми файлами (которые содержат обзоры фильмов), чтобы установить настроение каждого обзора. Я попытался создать пакетный скрипт, чтобы выполнить итерацию в трех разных папках, содержащих обзоры. При выполнении сценария через оболочку бегун программы я получаю следующее сообщение об ошибке:«f было неожиданным в это время» - сценарий bash
е был неожиданным в это время
сценарий выглядит следующим образом:
dir=C:\stanford-corenlp-full-2016-10-31
for f in "$dir\train\neg" &&
for f in "$dir\train\pos" &&
for f in "$dir\train\unsup" ; do
echo $f >> filelist.txt
java -mx8g edu.stanford.nlp.sentiment.SentimentTraining -numHid 25 -trainPath filelist.txt -devPath dev.txt -train -model model.ser.gz
done
это первый Баш скрипт я когда-либо писал, поэтому предполагаю, что мой синтаксис, возможно, некорректен где-то?
Также я использую Windows, 10.
Любой совет будет удивительно,
большое спасибо
Эй, ребята, ваш совет был чрезвычайно полезен. чтобы попытаться сделать мою жизнь немного легче, я попытался преобразовать свой сценарий в пакетный скрипт, чтобы у него не было проблем с запуском в Windows. мой новый сценарий выглядит следующим образом:
@echo off
dir=C:\stanford-corenlp-full-2016-10-31
for %%f in "%dir\train\neg" & "%dir\train\pos" & "%dir\train\unsup" do
ECHO %%f >> filelist.txt
java -mx8g edu.stanford.nlp.sentiment.SentimentTraining -numHid 25 -trainPath filelist.txt -devPath dev.txt -train -model model.ser.gz
done
pause
, что приводит к следующей ошибке: «% реж \ поезд \ ПОЗИТИВ» было неожиданным в это время
кто понимают, что я сделал неправильно? Я предполагаю, что это своего рода проблема синтаксиса, которую я просто не вижу.
Я уверен, что это не пакетный файл. В пакетных переменных устанавливаются командой ['set'] (https://ss64.com/nt/set.html) и используются'% var% ', а не' $ var', как в bash. И ['for'] (https://ss64.com/nt/for.html) не заканчивается' done'. В пакете нет ';' в пакете (фактически да, но это не заканчивается) –
Итак, вы используете подсистему Windows для Linux? – Squashman
Извините, я должен объяснить немного лучше, я использую Windows 10, но я установил cygwin, чтобы иметь возможность использовать команды linux для большей гибкости с моим сценарием bash. – user7575479