Я использую Stanford Parser для генерации деревьев из заданных данных в необходимом аннотированном формате. Я могу сделать это для одного файла, запустив:
./lexparser.sh input_file > output_file
из папки stanford-parser-full-2018-02-27
. Но у меня есть несколько файлов, поэтому я попытался автоматизировать его с помощью Python следующим образом:
import os
import glob
import subprocess
for movie in glob.glob("../full_movies/annotated/*.txt"):
tree = subprocess.call(['./lexparser.sh', os.path.basename(movie)])
with open("../full_movies/trees/" + os.path.basename(movie), "w") as fid:
fid.write(tree)
Но это показывает следующую ошибку:
SLF4J: Не удалось загрузить класс "org.slf4j.impl.StaticLoggerBinder".
SLF4J: по умолчанию реализация логгера без операций (NOP)
SLF4J: Подробнее см. http://www.slf4j.org/codes.html#StaticLoggerBinder.
Исключение в потоке "main".
в edu.stanford.nlp.io.IOUtils.slurpFileNoExceptions (IOUtils.java:1316)
at edu.stanford.nlp.sentiment.BuildBinarizedDataset.main (BuildBinarizedDataset.java:171)
Причина: java.io.IOException: Невозможно открыть "movie_name.txt" как путь к классу, имя файла или URL
в edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem (IOUtils.java:480)
на edu.stanford.nlp.io.IOUtils.readerFromString (IOUtils.java:637)
в edu.stanford.nlp.io.IOUtils.slurpFile (IOUtils.java:1159)
в edu.stanford.nlp.io.IOUtils.slurpFile (IOUtils.java:1184)
в edu.stanford.nlp.io.IOUtils.slurpFileNoExceptions (IOUtils.java:1314)
... еще 1
Я не могу этого понять. Это ошибка в моем скрипте Python или что-то еще здесь не так?
Если вы хотите увидеть содержимое ./lexparser.sh
, дайте мне знать.
Заранее спасибо.