Korpusy anotowane jako grafowe bazy danych Piotr Pęzik PELCRA, Uniwersytet Łódzki piotr.pezik@uni.lodz.pl
PELCRA Polish & English Language Corpora for Research & Applications Uniwersytet Łódzki => Wydział Filologiczny => Instytut Anglistyki => Pracownia Językoznawstwa Korpusowego i Komputerowego Początkowo językoznawstwo korpusowe, ostatnio coraz częściej komputerowe, Information Retrieval, IE Aplikacje: językoznawstwo, leksykografia angielska i polska, nauczanie języków, kształcenie i warsztat tłumaczy
Dostawcy zasobów Korpus PELCRA (100MS) od 1997 r. Członek konsorcjum NKJP (KP, dane konwersacyjne, internetowe) Polskie dane konwersacyjne: transkrypcje nagrań dokonywanych w studyjnych oraz w nieformalnych warunkach
Dostępność Transkrypcje ok. 100h, dostępne na licencji CC-BY-NC Korpus multimedialny transkrypcje + anonimizowane nagrania (ok. 40h) CC-BY-NC TEI P5, ELAN
Dane konwersacyjne
SNUV.PL 200 godzin nagrań kilkuset osób literujących słowa i czytających liczby. Licencja CC-BY!!!
PELCRA Parallel Corpora
Ręczne zrównoleglanie
Wyszukiwarka PELCRA dla danych NKJP
Słowa dnia Łaziński, Kopcińska, Chojnacka-Kuraś, Andrzejczuk, Pęzik
I ve applied for the area connected with ticketing PLEC Learner corpus at pelcra.pl/plec
Korpusy uczniowskie
1,6 mln kolokacji dla BNC 5 mln kolokacji z NKJP 6 języków?
pelcra.pl/hask
Inne doświadczenia Information Retrieval (frazeo.pl) Web crawling, monitoring nowych mediów Bio-text-mining, EBI, Cambridge
Korpusy anotowane jako grafowe bazy danych NoSQL - termin nieco marketingowy Key-Value, Big Table, Document Stores Bazy grafowe mniej skalowalne (wg. standardów NoSQL) dobrze radzą sobie z reprezentacją mocno powiązanych danych naturalna reprezentacja dla niektórych danych (np. dane społecznościowe) prędkość poruszania się po grafie jest stała (por. normalizację RDBM, operacje na zbiorach)
NoSQL Czy w grafowych bazach danych można przechowywać i przetwarzać dane językowe, np. korpusy/kolekcje/słowniki z bogatą anotacją, relacjami, itp.? RDBM: Korpus PELCRA 100 MS, NKJP 250 MS, słowniki, aplikacje WWW Apache Lucene: NKJP 250 M, NKJP 1600 MS
Korpus jako grafowa bazy danych? Tekst to więcej niż strumień segmentów, anotacja morfologiczna, składniowa, strukturalna, tematyczna, semantyczna, bibliograficzna (annotation mining) Mieszanki danych, np. językowe/społecznościowe, Semantic Web Leksykony, elementy teorii grafów Eksperymenty na bazie neo4j, ACID, GPL/AGPL
Multigraf z własnościami television can be a blessing only when it helps lonely people survive their solitude.
Multigraf z własnościami WORD VERTEX pos: NNS lemma: people DEPENDENCY EDGE type: amod WORD VERTEX pos: JJ lemma: lonely
Subject-Verb-Complement w języku paragraph pisanym SENTENCE PARAGRAPH text type: written sentence lemma: he pos: PRP NEXT_WORD DEPENDENCY type: nsubj lemma: feel pos: V DEPENDENCY type: acomp WORD lemma: great pos: JJ lemma: really NEXT_WORD NEXT_WORD
Subject-Verb-Complement w tekstach pisanych start w1=node:words(lemma="great") ścieżka zależnościowa match w1<-[:next_word*1..9]->w3, dep_path=w1<-[dep_acomp:dependency]-w2-[dep_nsubj:dependency]->w3, struct_path=w1<-[:word]-s1<-[:sentence]-p1<-[:paragraph]-t1 where w1.pos =~ "J.*" and w2.pos =~"V.*" and (w3.pos =~ "PR.*" or w3.pos =~"N.*") and dep_acomp.type="acomp" and dep_nsubj.type="nsubj" and t1.type="written" return krawędzi w3.lemma, w3.pos, w2.lemma, w2.pos, w1.lemma,dep_acomp.type, t1.type limit 100 ścieżka pozycyjna scieżka strukturalna warunki logiczne dla własności wierzchołków i
Wyniki zapytania w3.pos w3.lemma w2.pos w2.lemma w1.lemma dep_acomp.type t1.type PRP he VBD feel great acomp written PRP I VB look great acomp written NN flat VBZ look great acomp written NNP Jane VBG feel great acomp written PRP it VBZ sound great acomp written NNS job VB look great acomp written PRP it VBD work great acomp written PRP they VBP look great acomp written PRP it VBZ look great acomp written PRP it VBD sound great acomp written
Wydajność Ekstrakcja kolokacji, koligacji, wzorców walencyjnych z korpusów BNC i NKJP (300M wierzchołków, 1000M własności, 600M krawędzi) Problemem jest duża liczba wierzchołków/krawędzi wyjściowych przy agregacji start w1=node(100) Jeden wierzchołek wyjściowy start w1=node:words(lemma="time") 180 000 wierzchołków wyjściowych
Indeksy pełnotekstowe start s1 = node:sentence_ft (sen= (>p_j*_d_amod >l_time_n*_g_amod)~10 ) match s1-[:word]->w1 (18K wierzchołków wyjściowych) long time 4K wierzchołków Apache Lucene
Transforming media transforming audiences (COST Action IS0906) Analiza danych społecznościowych Komunikacja społeczna w starych i nowych mediach Modelowanie interakcji i dyskursu mediów społecznościowych Mieszanki danych
Komentarze i dyskusje Kto nadaje ton, w jaki sposób ewoluują tematy dyskusji? Monitoring mediów społecznościowych kto z kim i o czym rozmawia? Kto zetknął się z jakąś informacją lub opinią? Połączenie danych społecznościowych z tekstowymi Jak to modelować?
Struktura dyskusji dla jednego wpisu
Struktura dyskusji dla bloga NOWY GRZBIET? BLOGGER HATER? TROLL?
WPIS NA BLOGU Graf dyskursu blogosfery INDEKSY PEŁNOTEKSTOWE KOMENTARZE SŁOWA KLUCZOWE AUTORZY
Kto z kim i jak często dyskutuje? start author1=node:authors(author="~stanisław") match author1-[:authored]->comment1-[:comment]- >comment2<-[:authored]-author2 return author1.author,author2.author, count(*) order by count(*) desc limit 10
Kto z kim i jak często dyskutuje? author1 author2 count(*) ~Konserwatysta ~Stanisław 30 ~s3kawka ~Stanisław 21 ~seniorek ~Stanisław 18 ~Alutka ~Stanisław 14 ~Stanisław ~Stanisław 8 stefatylko@onet.pl ~Stanisław 7 ~wykpic PiSuarów! ~Stanisław 7 ~ak-48 ~Stanisław 5 ~wyborca ~Stanisław 5 ~wykpic PiS! ~Stanisław 4
Najdłuższe dyskusje, ewolucja tematu Szukamy najdłuższej ścieżki po krawędziach typu COMMENT między wierzchołkami komentarzy (głębokość dyskusji) start post=node:post_properties(type="post") match reply_path=post-[:comment*1..100]->comment return length(reply_path) as path_len order by path_len desc limit 100 > 12 (2 000 000 krawędzi na sekundę)
Ewolucja tematu Jak ewoluuje temat od wpisu na blogu do ostatniego komentarza?
Słowniki, leksykony
Podsumowanie Zalety: Stała prędkość poruszania się po grafie Duża ekspresja grafu jako struktury danych Bardziej naturalna reprezentacja niektó ych typów danych Wady: skalowalność horyzontalna (scaling-out) zależy od struktury grafu W planach: NKJP 1M jako baza grafowa, Słowosieć