Кроме программ, которые имеют GUI (графический, оконный интерфейс), часто приходится использовать такие программы, которые управляются из командной строки. Ещё она называется терминалом или консолью.
Для того, чтобы запустить командную строку, в Windows нужно найти среди других программу cmd.
В начале того, что показывает интерфейс командной строки, обычно написано, какое место в системе программа считает рабочим. Например, C:\Users\student
. После этого обычно мы видим знак т.н. приглашения командной строки, то есть сигнал того, что программа готова к работе и ждёт действий от пользователя. В Windows это обычно знак больше, >
.
С помощью набора команд, которые отправляются на исполнение с помощью клавиши Enter
, можно передвигаться по диску и запускать другие программы.
Запуск программ обычно выглядит так. Сначала нужно написать путь к запускаемой программе: C:\some_prog.exe
. Путь может быть и абсолютным, и относительным. Считается он относительно того места, которое показывается перед приглашением.
Иногда программы нужно запускать не сами по себе, а с определёнными аргументами или ещё их называют параметрами (похоже на аргументы функции в питоне). Тогда эти аргументы пишутся после пути к программе через пробел. Если сам аргумент тоже содержит пробел, его нужно обернуть в кавычки: C:\some_prog.exe argument1 "argument 2"
Кроме того, среди таких аргументов есть такие, которые принято называть опциями или ключами, они начинаются с символа дефиса: C:\some_prog.exe -a -b
. Их можно "склеивать": C:\some_prog.exe -ab
.
Какие у программы возможны аргументы и опции, в каком порядке они должны идти при запуске из командной строки, обычно описано в документации к программам.
Через командную строку можно, например, запускать скрипты на питоне. Тогда запускаемой программой будет интерпретатор питона, а аргументом -- путь к собственно скрипту: C:\Python34\python.exe C:\myscript.py
Mystem - это свободно распространяемый морфологический анализатор для русского языка с закрытым исходным кодом. То есть мы можем его бесплатно скачать с сайта и пользоваться им, но не можем посмотреть, что у него внутри и как оно работает.
Mystem был придуман одним из создателей Яндекса Ильёй Сегаловичем. Некоторый потомок mystem'а до сих пор работает внутри большого поисковика Яндекса, анализируя слова при поиске.
My-stem значит my stemmer, стемминг -- это разбиение формы на основу и флексию. Но на самом деле Mystem может гораздо больше: устанавливать словарную форму слова, определять часть речи и грамматическую форму слова. В последних версиях Mystem умеет и выбирать из нескольких возможных грамматических разборов один, наиболее верный.
У Mystem нет графического оконного интерфейса, запустить его можно только из командной строки.
Скачать Mystem можно отсюда, а тут лежит его документация.
Mystem не требует специальной инсталляции в систему. Достаточно, чтобы исполняемый файл с программой, подходящей для вашей версии операционной системы, находился на вашем компьютере.
На странице документации описаны разные возможности вызова Mystem из командной строки. В зависимости от параметров, с которыми мы вызовем программу, мы получим разный результат.
Примеры, которые там приведены, рассчитаны на пользователя Unix-подобной операционной системы. То есть не Windows.
В начале примеров вызова стоит знак доллара, $. Это не значит, что его вам тоже нужно набирать, если вы хотите воспроизвести эти примеры. Доллар -- это аналог приглашения командной строки, просто не в Windows, а в Unix-подобных системах. Если вы берете примеры вызова со страницы документации за основу, игнорируйте знак доллара.
В документации написано: $ mystem input
. На практике для пользователей Windows это будет значить что-то вроде C:\mystem.exe input.txt
.
В документации написано "стандартный ввод" и "стандартный вывод", это значит то, что вводится в командной строке или выводится в тот же терминал. Если не используются стандартный ввод и вывод, то используются файлы (выводной файл Mystem способен создать сам).
В 3-й версии Mystem кодировка по умолчанию -- utf-8. В первых версиях -- cp1251. Кодировка по умолчанию в командной строке Windows -- cp866. Из-за этого Mystem может не понимать слова, которые попадают к нему из стандартного ввода.
Об этом довольно хорошо и подробно написано на странице документации, её нужно внимательно изучить и попробовать разные вариант опций.
Особое внимание нужно уделить опции -d
, она заставляет анализатор выбирать только один разбор из возможных. При этом выбор происходит только между разными частями речи. Если у одной части речи возможны разные разборы (например, разные падежи одного и того же существительного), то эти разборы не отбрасываются. Иначе говоря, Mystem снимает только частеречную омонимию. Омонимию форм он не снимает.
Для запуска сторонних программ, имеющих интерфейс командной строки, в питоне есть system, предоставляемая модулем os: os.system("C:\mystem.exe input.txt output.txt")
. Перед добавлением такой конструкции в код, необходимо импортировать модуль os.
Это нужно, чтобы, например, обработать много файлов циклом:
import os
inp = "input_texts"
lst = os.listdir(inp)
for fl in lst:
os.system(r"C:\mystem.exe " + inp + os.sep + fl + " output_texts" + os.sep + fl)
Этот код берёт из директории input_texts все лежащие в ней файлы, отдаёт на разметку майстему и кладёт результат в соседнюю директорию output_texts.
Есть возможность запускать mystem и с помощью специального модуля, pymystem3 (и некоторых других), который нужно специально установить (его нет в стандартной сборке питона). Исходники pymystem3 и вся документация лежат вот тут. Это проще и удобнее, потому что с тем, что выдаёт mystem, можно сразу работать как с питоновскими структурами данных. Но медленнее. Иногда гораздо-гораздо медленнее, чем разметить один файл mystem'ом сразу.
Скачать mystem и попробовать разные опции его запуска на практике. Посмотреть, чем результат вызова с одними опциями отличается от результата вызова с другими опциями.