What Natural Language Processing Reveals in a Corpus of 400,000 Russian Diary Entries
Narodnyi arkhiv (1988-2006)
"Different histories will be written because the tools of the discipline are changing."
886 MB
+--------------------------+
| Tables_in_prozhito |
+--------------------------+
| collections |
| diaries_languages |
| diaries_latest |
| diaries_statuses |
| diary |
| diary_comments |
| news |
| notes |
| notes_comments |
| notes_dateStr |
| notes_pictures |
| notes_preview |
| notes_preview_reference |
| notes_quotes |
| persons |
| persons_partners |
| persons_pictures |
| persons_status |
| persons_status_reference |
| project_partners |
| project_team |
| sessions |
| sphinx_counters_notes |
| statuses |
| subscribe |
| tags |
| tags_diaries |
| tags_notes |
| tags_persons |
| tags_type |
| users |
+--------------------------+
31 rows in set (0.01 sec)
mysql> select count(*) from notes;
+----------+
| count(*) |
+----------+
| 382204 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*) from persons;
+----------+
| count(*) |
+----------+
| 3328 |
+----------+
1 row in set (0.01 sec)
| 98542 | 375 | Подволочиск. Служба в церкви и костеле. Разговор с ксендзом.
Структура католической церкви. Отличие католической церкви от православной. Директор школы. «С приходом немецкой армии все гражданские руководящие посты были заняты украинским меньшинством, которое начало травлю и, частично, выселение поляков. Начало трений между поляками и украинцами относится к 1939 г. (?).
До этого времени польское правительство смотрело сквозь пальцы на господствующие среди украинцев правые национальные движения.
Существовала легальная военная украинская организация “Cir”, лозунгом которой было: “Украина для украинцев”.
С момента прихода в 1939 г. Красной Армии и до начала проведения коллективизации украинское население было настроено крайне лояльно к Советской власти и лишь с этого периода стало в значительной степени пронемецким.
После изгнания немцев в 1944 г. украинские националисты оказались в идейном тупике, но все же большая часть настроена прогитлеровски.
В селах имеются случаи убийств советских работников. Это ведет к необходимости организации истребительных отрядов.
В Подволочиске — 160 чел.».
Прогрессивная «Учительская организация» — 170 тыс. чел. «Участие Польши в разделе Чехословакии — первый гвоздь в гроб Польши».
О слабости славян и «силе» западных народов. Проект предоставления жизненного пространства немцам в Сахаре.
Я пошел на фронт, закончив 4-й курс химфака[67].
Моя военная жизнь началась в сентябре 1941 года под № Каховкой. 14-я Гвардейская стрелковая дивизия, в которую меня направили, стала моим домом на полтора года. Этот период мне наиболее памятен как время перехода от спокойной мирной к напряженной военной жизни. Только здесь, в дивизии, я понял, как слабо к ней подготовлен. Двухнедельная военная подготовка, полученная в Москве, не могла быть достаточной. В студенческие годы я много занимался спортом и был вынослив, но, кроме того, здесь требовалось иное: знать военное дело.
Раньше я часто думал о возможности войны, но это были абстрактные размышления. К своему стыду, я никогда не задавал себе прямого вопроса: «А как я подготовлен к ней, как я смогу переносить боевую жизнь, что я умею делать?»
И теперь, окунувшись в войну, я понял, что к ней нужно готовиться долго и серьезно.
Стали очевидными досадные недостатки университетского обучения, например, совершенно несерьезная постановка военного дела. Стала понятной абсолютная необходимость прохождения воинской службы юношам, окончившим среднюю школу. Защита Родины — не фраза, а дело, и его нужно подготавливать с предельной серьезностью.
Рота, в которую я попал, имела в то время задачей разведку противника захватом пленных. Состав ее был кадровый, и у него было чему научиться.
С благодарностью вспоминаю своего первого командира-украинца, лейтенанта Рудченко, погибшего в 42-м году.
Добродушно подшучивая над моей неопытностью, называя меня не иначе как «профессор» (имея в виду мои 4 оконченных курса университета), он преподал мне первые уроки поведения в боевой обстановке.
Как и большинству товарищей, бывших на фронте, мне пришлось в первые же месяцы пережить психологический перелом.
Человек, находившийся в тылу и читавший в газетах о немецких зверствах, конечно, уверен, что он ненавидит немцев, но это не та ненависть к захватчикам, которая выросла у фронтовиков.
Встречаясь первое время с пленными немцами, я искал в своей душе ненависть к ним и, к своей досаде, не мог ее найти. Она пришла позже вместе с горящими селами, взорванными заводами, громадными кострами из тысяч тонн обмолоченного зерна.
Иногда мелкий эпизод, похожий, может быть, на тысячи других, производит большее впечатление, чем большие события. Так было со мной.
Над селом шло два немецких самолета, простреливая улицу. В эту минуту, сын моей хозяйки — четырехлетний мальчик — бросился через улицу к своему дому. Вдруг он, словно споткнувшись, упал. Я подбежал и взял его на руки. В него попала пуля немецкого летчика. Он умер прежде, чем подбежала его обезумевшая от горя мать.
Уходящие самолеты, кровь на руках и гимнастерке, убитый украинский мальчик запомнились мне на всю жизнь как призрак немецкого нашествия.
Так родилась настоящая ненависть. Даже вид Освенцима впоследствии мало что добавил к этому чувству. | 1943-08-14 | 0000-00-00 | 0 | 0 | 1 | 4 | 1456094064 |
Import Script
if __name__ == __main__:
load_sql_file()
load_persons(cursor)
load_tags(cursor)
load_notes(cursor) # individual diary entries
load_diaries(cursor)
update_entries_with_tags(cursor)
lemmatize_texts('mystem')
RuBERT_ner()
geocode_places() # geopy OpenStreetMap
names_extractor() # Natasha
detect_sentiment() # Dostoevsky
Diaries by
2882 men
810 women
938 MB of text
32,064,212 Words
~64,000 pages
.
1581-02-01, "Приехал новый московский гонец"
2018-06-17, "Вся моя жизнь после ухода из отеческого дома в 1965 году была распятием на кресте жизни, как и жизнь каждого человека. "
1581-02-01, "Приехал новый московский гонец"
2018-06-17, "Вся моя жизнь после ухода из отеческого дома в 1965 году была распятием на кресте жизни, как и жизнь каждого человека. "
437 years, 4 months, 16 days
Subtitle
Machine Reading
Ben Schmidt, A guided tour of the [Hathi] digital library http://creatingdata.us/datasets/hathi-features/
RuBERT
Sequence Models
Attention and BidirectionalTransformers
Diary
Person
ENTRY
3,702
3,705
392,264
Diary
Person
ENTRY
3,702
28,985
392,264
There are 108,000 entries that mention a place.
Geopy geolocated 3,742 distinct places
Mystem
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="Prozhito")
location = geolocator.geocode('Хомяки')
print(location, location.latitude, location.longitude)
Хомяки, Свечинский район, Кировская область, Приволжский федеральный округ, Россия
58.1404076 47.631871
from pymystem3 import Mystem
m = Mystem()
lemmas = m.lemmatize('В ногах правды нет.')
lemmas
['в', ' ', 'нога', ' ', 'правда', ' ', 'нет', '.', '\n']
Russian name part extractor
from natasha import NamesExtractor
extractor = NamesExtractor()
text = """Иван Иваныч Самовар
Был пузатый самовар,
Трехведёрный самовар."""
matches = extractor(text)
for match in matches:
print(match.span, (text[match.span[0] : match.span[1]], match.fact))
[0, 19) ('Иван Иваныч Самовар', Name(first='иван', middle='иваныч', last='самовар', nick=None))
Sentiment Analysis
from dostoevsky.tokenization import UDBaselineTokenizer, RegexTokenizer
from dostoevsky.embeddings import SocialNetworkEmbeddings
from dostoevsky.models import SocialNetworkModel
tokenizer = UDBaselineTokenizer() or RegexTokenizer()
embeddings_container = SocialNetworkEmbeddings()
model = SocialNetworkModel(
tokenizer=tokenizer, embeddings_container=embeddings_container, lemmatize=False,
)
texts = ['Я люблю рыбные консервы',
'Я ненавижу рыбные консервы',
'Я люблю рыбные консервы, но я ненавижу консервированные устрицы'
]
results = model.predict(texts)
for text, result in zip(texts, results):
print(text, result)
Я люблю рыбные консервы positive
Я ненавижу рыбные консервы negative
Я люблю рыбные консервы, но я ненавижу консервированные устрицы negative
Collections as data designed for everyone serve no one.
The Santa Barbara Statement on Collections as Data (2017)
Domain
General Data
- Metadata and provenance
- Entity recognition and linking
- The problem of domain (one model for pre- and post-1917), tokenization, entities and entity types
Project- Specific Data and Models
- custom entities
- transfer learning, fine-tuning to project materials
- knowledge base
- synthetic features
Philip Gleissner (OSU)
Search
Find matching sequences of characters.
Find text with a journal title and context words ('read','journal','article')
Named Entity Recognition
Train a statistical language model to identify journal names.
Oktiabr' Zvezda Volga Neva Ural Znamia Zerkalo
Anastasiya Bonch-Osmolovskaya (HSE)
New Directions
Humanities scholars are contributors and consumers of collections
Need to fill the "missing semester" humanities curricula
Plan for research collections as outcomes of dissertations, books, articles
One Size Fits None
Need for domain-specific models
Need for training in use of NLP methods
Need for infrastructure to support NLP-enabled research
New Languages for NLP
Princeton University, Center for Digital Humanities
🤗 Write with transformer: Get a modern neural network to
auto-complete your thoughts.
Scholarship is not an auto-complete task
deck
By Andrew Janco
deck
- 741