Создание шекспировской антологии при помощи FileSystemScan
Для данного примера используется директория с включением текстовых файлов всех работ Шекспира. Начните с импорта текстового содержания книг при помощи FileSystemMap, отбирая только само текстовое содержание.
код на языке Wolfram Language целиком
In[2]:=
![Click for copyable input](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/In_67.png)
works = Values[
FileSystemMap[Import, FileNameJoin[{$HomeDirectory, "Books"}], 2,
FileNameForms -> "*.txt"][[1]]]
Out[2]=
![](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/O_51.png)
Создайте единую антологию при помощи StringJoin.
In[3]:=
![Click for copyable input](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/In_68.png)
corpus = StringJoin[works]
Out[3]=
![](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/O_52.png)
Антология может определяться как единая искомая строка, позволяя лёгкое использование приложений обработки текстов повышенного уровня. Определите, какие страны упоминаются в данных работах при помощи TextCases, попутно фильтруя повторы и случаи тумбового исполнения.
In[4]:=
![Click for copyable input](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/In_69.png)
countries =
ToLowerCase[TextCases[corpus, "Country"]] // DeleteDuplicates
Out[4]=
![](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/O_53.png)
код на языке Wolfram Language целиком
Создайте GeoListPlot стран, упоминающихся в работах Шекспира.
In[6]:=
![Click for copyable input](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/In_71.png)
GeoListPlot[Interpreter["Country"] /@ countries]
Out[6]=
![](assets.ru/create-a-shakespearean-corpus-with-filesystemscan/O_54.png)