отчёт о проделанной работе
Начал готовить конкорданс всей поэзии Пушкина. Для этого лучше всего подходит, видимо, 10-томник 62-го года, выложенный в РВБ. Лучше всего - потому, что они проделали действительно серьезную работу по логической разметке текста, так что например программным образом выделить названия стихов и каждую строку отдельно (и отличить эти строки от эпиграфов, комментариев, имен персонажей в драме и чего угодно ещё) очень легко. Кроме того, очень умное устройство директорий, в которых файлы лежат, можно легко исключить из поиска, например, варианты и ранние редакции. Молодцы РВБ!
Написал им письмо с просьбой дать мне исходные файлы в XML, а сегодня получил ответ от
e_g: оказывается, у них так и лежит всё в XHTML, так что я могу в принципе всё это сам скачать автоматом. Но не совсем ясно, как устроена навигация в больших произведениях и проч. мелочи, так что лучше всё-таки пусть будет точная копия с сервера. Заодно надо пойти немного побольше про XHTML прочесть, а то отстаю от жизни.
Ну хорошо, самый тривиальный вариант - просто индекс всех возможных словоформ, и на каждую - список всех строк, где она встречается, с линками на сами стихи обратно. Это легко, это я на перле с пол-пинка нашкрябаю. Но все равно это надо сделать, чтобы что-то было, какой-то базис, который можно пощупать.
Вопрос в том, что дальше? Quo vadis? Можно двигаться в сторону динамического поиска: скажем, чтобы можно было искать не только слово "цветы", но также все слова на -ты, а ещё фразы типа *ые цве*, и так далее. Но стоит ли? Поиск по окончанию можно делать, не привлекая динамический поиск по всем текстам: просто искать внутри уже готового индекса в (статическом, хранящемся на диске) конкордансе словоформ.
Стоит ли ради поиска словосочетаний всё это затеивать? Хочется to Keep It Simple, Stupid, в принципе.
Ещё одно направление - идентификация словоформ одной лексемы, т.е. "цветы" и "цветов" собрать в одну запись вместо двух отдельных. Тут часть можно автоматизировать, но всё равно много руками придется стараться. В принципе это неплохо иметь, вопрос, тратить ли на это сейчас время. Сюда же ещё одна фича возможная - развести по разным записям омонимы, а, возможно, даже и функционально разные значения одного слова (а-ля Словарь Языка Пушкина четырёхтомный). Тоже неясно, так ли это надо.
Наконец, самое интересное (для меня по крайней мере) - внести больше метрической/ритмической информации и усилить возможности поиска, например: дай мне все строки со словом "цветы", но только в четырёхстопном ямбе. Это метрическая разметка. Для этого надо либо вне самих XHTML-ных текстов вести дополнительные индексы, либо вставлять новую маркировку в базисные тексты - второй путь явно лучше, по-моему. Как именно маркировать? Наверное, один таг на каждое стихотворение (поэму, сказку, драму), определяющий его силлаботонический размер. Да, но стих бывает написан плавающим размером, или внутри его могут быть вставки другого размера. Тогда, наверное, надо предусмотреть отдельный построчный таг, который отменяет "дифолтный" таг всего произведения, и определяет размер данной строки.
Здесь же рядом плавает вопрос о рифмах. Как раз первоначальный бумажный конкорданс Шо проистекал из его исследований рифм Пушкина, поэтому у него в каждой строке было размечено последнее ударение, и на каждый стих была статистика: сколько мужских рифм, сколько женских, сколько нерифмованных строк и т.п. Это можно повторить, но много ручной работы.
Что ещё? В очень далеком идеале - ритмическая разметка, т.е. сами ударения как они на самом деле выпадают в строке. Тут надо очень всё тщательно обдумать, т.к. есть серьёзные трудности как с методом маркировки, так и с теоретическими проблемами вроде шаткости некоторых ударений в служебных словах и проч. Но если это сделать правильно, то это будет чрезвычайно удобная вещь для изучения ритмики. Хотелось бы до этого добраться.
Данная запись - одновременно памятка мне на будущее, и вопрос к тем героям, кому это интересно и кто дочитал до конца: что ещё, по-вашему можно сделать и/или улучшить?
Написал им письмо с просьбой дать мне исходные файлы в XML, а сегодня получил ответ от
Ну хорошо, самый тривиальный вариант - просто индекс всех возможных словоформ, и на каждую - список всех строк, где она встречается, с линками на сами стихи обратно. Это легко, это я на перле с пол-пинка нашкрябаю. Но все равно это надо сделать, чтобы что-то было, какой-то базис, который можно пощупать.
Вопрос в том, что дальше? Quo vadis? Можно двигаться в сторону динамического поиска: скажем, чтобы можно было искать не только слово "цветы", но также все слова на -ты, а ещё фразы типа *ые цве*, и так далее. Но стоит ли? Поиск по окончанию можно делать, не привлекая динамический поиск по всем текстам: просто искать внутри уже готового индекса в (статическом, хранящемся на диске) конкордансе словоформ.
Стоит ли ради поиска словосочетаний всё это затеивать? Хочется to Keep It Simple, Stupid, в принципе.
Ещё одно направление - идентификация словоформ одной лексемы, т.е. "цветы" и "цветов" собрать в одну запись вместо двух отдельных. Тут часть можно автоматизировать, но всё равно много руками придется стараться. В принципе это неплохо иметь, вопрос, тратить ли на это сейчас время. Сюда же ещё одна фича возможная - развести по разным записям омонимы, а, возможно, даже и функционально разные значения одного слова (а-ля Словарь Языка Пушкина четырёхтомный). Тоже неясно, так ли это надо.
Наконец, самое интересное (для меня по крайней мере) - внести больше метрической/ритмической информации и усилить возможности поиска, например: дай мне все строки со словом "цветы", но только в четырёхстопном ямбе. Это метрическая разметка. Для этого надо либо вне самих XHTML-ных текстов вести дополнительные индексы, либо вставлять новую маркировку в базисные тексты - второй путь явно лучше, по-моему. Как именно маркировать? Наверное, один таг на каждое стихотворение (поэму, сказку, драму), определяющий его силлаботонический размер. Да, но стих бывает написан плавающим размером, или внутри его могут быть вставки другого размера. Тогда, наверное, надо предусмотреть отдельный построчный таг, который отменяет "дифолтный" таг всего произведения, и определяет размер данной строки.
Здесь же рядом плавает вопрос о рифмах. Как раз первоначальный бумажный конкорданс Шо проистекал из его исследований рифм Пушкина, поэтому у него в каждой строке было размечено последнее ударение, и на каждый стих была статистика: сколько мужских рифм, сколько женских, сколько нерифмованных строк и т.п. Это можно повторить, но много ручной работы.
Что ещё? В очень далеком идеале - ритмическая разметка, т.е. сами ударения как они на самом деле выпадают в строке. Тут надо очень всё тщательно обдумать, т.к. есть серьёзные трудности как с методом маркировки, так и с теоретическими проблемами вроде шаткости некоторых ударений в служебных словах и проч. Но если это сделать правильно, то это будет чрезвычайно удобная вещь для изучения ритмики. Хотелось бы до этого добраться.
Данная запись - одновременно памятка мне на будущее, и вопрос к тем героям, кому это интересно и кто дочитал до конца: что ещё, по-вашему можно сделать и/или улучшить?
no subject
Ïðè ýòîì ïðîáëåìà íåìèíó÷àÿ âîçíèêíåò ñ ðàçëè÷åíèåì îìîíèìîâ è îòòåíêîâ çíà÷åíèÿ (åå ñëåäóåò ðåøàòü ïî-ìàêåäîíñêè, ïîäóìàòü, äà è ðàçðóáèòü).
Èíòåðåñíåå âñåãî áûëî áû ïîïûòàòüñÿ çàñóíóòü òóäà ñðàçó è äàííûå î ëåêñè÷åñêîé ñìåæíîñòè (â ïðåäåëàõ òåêñòà); îòâåò íà âîïðîñ, ñêîëüêî ðàç ñëîâî "ïðàâäà" âñòðå÷àåòñÿ â îäíîì òåêñòå ñî ñëîâîì "äóðà" - ñîâñåì íå ïðàçäíûé. Íàñêîëüêî ÿ çíàþ (ñïåöèàëüíî íå çàíèìàëñÿ ýòèì) òàêîé ðàáîòû íà ðóññêîì ìàòåðèàëå íå áûëî - à çðÿ. ßâíî ó ðàçíûõ àâòîðîâ ñòåïåíü êëàñòåðíîñòè áóäåò ðàçíîé. Íå ãîâîðÿ î ñàìèõ êëàñòåðàõ.
Re: îò÷¸ò î ïðîäåëàííîé ðàáîòå
Seems to be a correct principle. Suffix * may be useful.
Åù¸ îäíî íàïðàâëåíèå - èäåíòèôèêàöèÿ ñëîâîôîðì îäíîé ëåêñåìû, ò.å. "öâåòû" è "öâåòîâ" ñîáðàòü â îäíó çàïèñü âìåñòî äâóõ îòäåëüíûõ. Òóò ÷àñòü ìîæíî àâòîìàòèçèðîâàòü, íî âñ¸ ðàâíî ìíîãî ðóêàìè ïðèäåòñÿ ñòàðàòüñÿ.
Useful and doable without much headache. However most wordforms will be listed consequtively anyway
so you can consider giving it 2nd priority.
Ñþäà æå åù¸ îäíà ôè÷à âîçìîæíàÿ - ðàçâåñòè ïî ðàçíûì çàïèñÿì îìîíèìû.
Skip it, disambiguation is too difficult. For English WordNet can be used.
âíåñòè áîëüøå ìåòðè÷åñêîé/ðèòìè÷åñêîé èíôîðìàöèè è óñèëèòü âîçìîæíîñòè ïîèñêà, íàïðèìåð: äàé ìíå âñå ñòðîêè ñî ñëîâîì "öâåòû", íî òîëüêî â ÷åòûð¸õñòîïíîì ÿìáå.
Indeed sounds more interesting then morphology..
Hint:
Concordance will take much more space than the original text [concordance only for the word "the" in English would contain all the text], so you may consider and option of saving into file only words with frequency below certain threshold.
The idea of checking clusters suggested by Roman is not new. There is a lot of research around it
starting from Morozov's paper 100 years ago .
rhytm markup
Ñ îäíîé ñòîðîíû, ïîýòè÷åñêàÿ ðå÷ü âåçäå ïîìå÷åíà êàê òàêîâàÿ. Ñ äðóãîé ñòîðîíû, äîâîëüíî ìíîãî òåêñòîâ, â êîòîðûõ 1) èñïîëüçóåòñÿ íåñêîëüêî ðàçìåðîâ 2) åñòü äðàìàòè÷åñêèå ïðîèçâåäåíèÿ (à òàêæå àíàëîãè÷íûå ìåñòà â ïîýìàõ), ãäå ñòèõîòâîðíàÿ ñòðîêà ðàçäåëåíà ñàìûì ïðè÷óäëèâûì îáðàçîì, ò.å. èãðû ðèòìè÷åñêèå èíòåðåñíåå ðàçìåðà êàê òàêîâîãî.
Ðàçìåð ìîæíî ðàçìåòèòü âðó÷íóþ, íî êàæåòñÿ, ÷òî ýòîãî íåäîñòàòî÷íî.
 êîíå÷íîì ñ÷åòå íàäî áû ðàçìåòèòü à) óäàðíûå ñëîãè á) ñëîâîðàçäåëû (çàäàòü ýêñïëèöèòíóþ ðàçìåòêó ñëîâ). Ñî âòîðûì ïðîáëåì â îáùåì íåò, à âîò ñ ïåðâûì - õîòåëîñü áû õîòü êàêîãî-òî îáëåã÷åíèÿ ðàáîòû. Åñëè åñòü êàêèå-òî ñîîáðàæåíèÿ, êàêèì îáðàçîì ìîæíî îò÷àñòè ýòî äåëî àâòîìàòèçèðîâàòü (ïîíÿòíî, ÷òî âñå ïðèäåòñÿ äîâîäèòü âðó÷íóþ, íî ïðîöåíòîâ 70 ïðàâèëüíîé ðàçìåòêè íà àâòîìàòå ìåíÿ áû âïîëíå óñòðîèëè) - íàïèøèòå, áóäó î÷åíü ïðèçíàòåëåí.
Òîãäà ïî îêîí÷àíèè ïóáëèêàöèè òåêñòîâ ìîæíî áûëî áû çàíÿòüñÿ ñîçäàíèåì âòîðîé âåðñèè, ñ ðàçìå÷åííûìè óäàðåíèÿìè èëè ïî êðàéíåé ìåðå ñ óêàçàíèåì èñïîëüçóåìîãî ðàçìåðà.
Re: rhytm markup
Re: rhytm markup
1. If there is a dictionary of words with stresses then the problem is simple, even if it is small, probably 10000 entries of the most common words will be enough.
2. If no such dictionary is available one can write a program that learns the stresses: given a poem and a meter as an input it generates such a dictionary itself (pick Eugene Onegin for ex.).
In cases where ambiguities happen (the same word marked differently) it may stop and ask. After a small dictionary of stresses is available and with a small set of meters known to the program, it can start making "intelligent" guesses about the meters of the new poems under your guidance.
3.Don't know how well it will work for XX century poets, its an interesting topic of research.
[it's an old comment so let's shift this discussion somewhere]