SlideShare a Scribd company logo
1 of 16
“Извличане на информация от статии,
свързани с престъпления”
Проект
по “Извличане на информация“
на Любка Ташева Генова,
Докторант, задочна форма на обучение
юли 2016
ФМИ
СУ „Св. Климент Охридски
Contents
Задача на курсовата работа......................................................................................................................................4
Избрано технологично решение ................................................................................................................................4
Apache Nutch.................................................................................................................................................................4
GORA.............................................................................................................................................................................4
MongoDB.......................................................................................................................................................................4
Gate...............................................................................................................................................................................4
Elastic search..................................................................................................................................................................4
Kibana............................................................................................................................................................................4
Java................................................................................................................................................................................4
Алгоритъм .....................................................................................................................................................................4
Crawl с Nutch.................................................................................................................................................................4
Injector job.........................................................................................................................................................................................................................4
Generator job.....................................................................................................................................................................................................................4
Fetcher job..........................................................................................................................................................................................................................4
Parser job............................................................................................................................................................................................................................4
DB updater job...................................................................................................................................................................................................................4
Процесване...................................................................................................................................................................5
Процесване на събраните документи - GATE..........................................................................................................................................................5
Събиране и едновременно филтриране на колекции от фрази ........................................................................................................................5
Намиране на косинусова прилика..............................................................................................................................................................................5
Намиране на TF-IDF.........................................................................................................................................................................................................6
Намиране на Обща оценка...........................................................................................................................................................................................6
Обновяване на златния списък....................................................................................................................................................................................7
Финална фаза ...............................................................................................................................................................7
Косинусова прилика:......................................................................................................................................................................................................7
CosineSim_Title............................................................................................................................................................................................................7
CosineSim_Content .....................................................................................................................................................................................................7
GateAnnotations_[колекция]_Total - .....................................................................................................................................................................7
Total_PosNeg_AdjAdv, Total_PosNeg_VN ..............................................................................................................................................................7
Нормализация..................................................................................................................................................................................................................8
Обща оценка ...............................................................................................................................................................................................................8
Elastic индекс................................................................................................................................................................8
Kibana............................................................................................................................................................................9
Резултат......................................................................................................................................................................10
Crimes – Searches and Totals........................................................................................................................................ 10
Crimes – Annotations over totals .................................................................................................................................. 10
Crimes – HeatMaps....................................................................................................................................................... 12
Crimes – Annotated Content......................................................................................................................................... 13
Бъдещо развитие на проекта ..................................................................................................................................14
Литература.................................................................................................................................................................15
Задача на курсовата работа
Да се съберат статии, свързани с престъпления и да се извлекат от тях често срещани фрази, имена на
хора и организации. Самите документи и намерените фрази да се подредят по определени критерии и
да се покажат зависимости между тях
Избрано технологично решение
Apache Nutch като web crawler за намиране, събиране и парсиране на страниците- солиден,
конфигурируем, позволява да се работи с HBase, MongoDB, CouchDB
GORA за връзка между Nutch и MongoDB
MongoDB за запазване на данните
Gate за обработка и анотиране на събраните страници
Elastic search за индексиране на документите
Kibana за визуализация на резултата и по-лесно извършване на част от търсeнията
Java за интеграция на модулите и извършване на допълнителна обработка
Алгоритъм
Crawl с Nutch
Неколкократна итерация на следните стъпки
Injector job на Nutch – взима URL-лите от сийд файла seed.txt
Generator job – прави списък с URL-лите, които ще бъдат изтеглени като страници
Fetcher job – Обхожда и взима съдържанието и метаданните за всеки от горните URL-ли
Parser job – Изчиства съдържанието на страниците от html тагове и го предоставя като plain text
DB updater job – вкарва данните, получени на предната стъпка в базата
Процесване
На всеки 5 итерации на горните стъпки се прави еднократно и
Процесване на събраните документи - GATE
 Document Reset PR
 ANNIE English Tokeniser
 ANNIE Gazetteer
 ANNIE Sentence Splitter
 ANNIE POS Tagger
 ANNIE NE Transducer
 ANNIE OrthoMatcher
 ANNIE Pronominal Coref
Събиране и едновременно филтриране на колекции от фрази
 Хора
 Организации
 Локации
 Прилагателни и Наречия
 Глаголи и съществителни
Намиране на косинусоваприлика
на всеки документ с така наречения „златен стандарт“ – списък от думи, който първоначално е
въведен на ръка, като на всяка итерация се обогатява с думи, които имат най-голяма тежест от
всички най-високо оценени документи (подробно – по-надолу)
o За всеки документ, който има косинусова прилика > 0, подредени в намаляващ ред според косинусовата
им прилика със златния стандарт
за всяка фраза от списъците се намира обща оценка на това доколко тя би се считала за свързана
логически към понятието „престъпления“
Тотал_на косинусовата_прилика =
2 * [косинусовата прилика на вектора, съставен от корена на фразата с вектора на „златния стандарт“]
+ [косинусовата прилика на вектора, съставен от корена на фразата с вектора на „думите с негативно
значение“]
- [косинусовата прилика на вектора, съставен от корена на фразата с вектора на „думите с позитивно
значение“]
Думите на златния стандарт, положителните и отрицателните списъци се пазят съответно във файловете в
Сonf папката – goldStandard.txt, positiveWords.txt, negativeWords.txt
Намиране на TF-IDF
За всяка фраза се намира TF-IDF стойността й за колекцията документи, където
TF = 0.6 + 0.4 * TFd / maxTFd – ползва се нормализираната стойност на честотата на срещане
на термина в документа спрямо максималната стойност на честота на термин в документа, за да
се неутрализира аномалията, която се получава от влиянието на многото срещания на термина,
ако документът е дълъг. 0.6 е изглаждащият фактор, чиято роля е да контролира тежестта на
TFd/maxTFd
IDF = numDocs / numDocsContainingP, където numDocs е общият брой документи, а
numDocsContainingP е броят документи, съдържащи термина
TF-IDF = tf * idf
Намиране на Обща оценка
За всяка фраза се намира тотал = Cos + TF-IDF
Фразите са подреждат низходящо по обща оценка и се ограничават до топ 10 елемента
Обновяванена златния списък
За всеки документ в топ 100 се избират топ 2 фрази от Хора, Организации и топ 3 от
Прилагателни_Наречия и Глаголи_Съществителни и се добавят към списъка със златни думи,
ако коренът им вече не е вкаран там
Ръчно се редактира списъка със златни думи, за да се премахнат ненужните думи(първите 4
итерации на документа са в папката на проекта, като и показано кои са добавени автоматичне и
кои премахнати ръчно
Накратко казано, до момента имаме събрани статии според запитване под формата на списък от златни думи,
което неколкотратно е подобрявано
Финална фаза
Извършва се отново:
Последователно се изпълняват логическите модули на GATE, след което се извършва допълнителната
обработка, като оценката е вече спрямо новия списък със златни думи, а резултатът е не само списък от
нови златни думи, но и самите списъци с фрази се сериализират и вкарват в базата, заедно с анотираното
съдържание на документите
Косинусоваприлика:
Намира се
CosineSim_Title - на заглавието
CosineSim_Content - на съдържанието
GateAnnotations_[колекция]_Total -общ тотал за цяла колекция за всяка от колекциите
Total_PosNeg_AdjAdv, Total_PosNeg_VN - общ тотал на корелация на Прилагателни_Наречия и
Глаголи_Съществителни с позитивните и негативните списъци
Нормализация
Оценките се нормализират в границите 1-100 и се изчислява обща крайна оценка на документа
Обща оценка
Total = 2 * косСъдържание + косЗаглавие + тоталПрилНар + тоталГлСъщ
Elastic индекс
с документите, а списъците се десериализират до полета от индекса
{"nutch":{"aliases":{},
"mappings":{"doc":{"properties":{"ContentAnnotated":{"type":"string"},
"CosineSim_Content":{"type":"float"},
"CosineSim_Title":{"type":"float"},
"GateAnnotations_Address":{"type":"string"},
"GateAnnotations_Address_Total":{"type":"string"},
"GateAnnotations_Date":{"type":"string"},
"GateAnnotations_Date_Total":{"type":"string"},
"GateAnnotations_Location":{"type":"string"},
"GateAnnotations_Location_Total":{"type":"string"},
"GateAnnotations_Organization":{"type":"string"},
"GateAnnotations_Organization_Total":{"type":"string"},
"GateAnnotations_Person":{"type":"string"},
"GateAnnotations_Person_Total":{"type":"string"},
"GateAnnotations_TokenAdjAdv":{"type":"string"},
"GateAnnotations_TokenAdjAdv_Total":{"type":"string"},
"GateAnnotations_Token_AdjAdv":{"type":"string"},
"GateAnnotations_Token_AdjAdv_Total":{"type":"string"},
"GateAnnotations_Token_VN":{"type":"string"},
"GateAnnotations_Token_VN_Total":{"type":"string"},
"Total":{"type":"float"},
"Total_PosNeg_AdjAdv":{"type":"float"},
"Total_PosNeg_VN":{"type":"float"},
"anchor":{"type":"string"},
"boost":{"type":"string"},
"cache":{"type":"string"},
"content":{"type":"string"},
"content________________________________________":{"type":"string"},
"digest":{"type":"string"},
"host":{"type":"string"},
"id":{"type":"long"},
"title":{"type":"string"},
"title____________________________":{"type":"string"},
"tstamp":{"type":"date",
"format":"strict_date_optional_time||epoch_millis"},
"url":{"type":"string"}}}},
"settings":{"index":{"creation_date":"1467544885387","number_of_shards":"5","number_of_replicas":"1",
"uuid":"wuZGcWeFRd-sx55QGS2GHw","version":{"created":"2020099"}}},"warmers":{}}}
Kibana
Създават се подходящи търсения, визуализации, които се групират и подреждат на няколко екрана
Резултат
Crimes – Searches and Totals
в тази група визуализации се показва
Таблица с основните колони, подредена низходящо по обща оценка
Кръгова диаграма с разпределението на общата оценка по брой документи, таблица с
междинните оценки една спрямо друга и крива на общата оценка спрямо броя документи
Crimes – Annotations over totals
в тази група визуализации се показват по редове данни за ГлаголиСъществителни,
ПрилагателниНаречия и Хора
Първата колона: фразите са представени като тагове с различна големина, в зависимост от най-
голямата стойност на крайната оценка на документите, в които се срещат
Втората колона: корелацията между междинните оценки, показана в зависимост от съответната група
фрази – от тези радар-диаграми се вижда, че най-добре корелират Крайната оценка и
ТоталПрилагателниНаречия, както и има подобна връзка между оценките на заглавиете и съдържанието,
вижда се също, че крайната оценка е правопорционална на оценката на заглавието и обратно-пропорционална
на оценката на ГлаголиСъществителни
В третата колона са предоставени стълбове по хистограмата на крайната оценка, разбити на секции за
всяка дума според най-голямата стойност на крайната оценка
Crimes – HeatMaps
в тази група визуализации се показват
Първата таблица показва като редове ГлаголиСъществителни и като колони ПрилагателниНаречия,
подредени низходящо по брой документи, в които се срещат, а цветът на клетката се определя от средната
стойност на крайната оценка
Втората таблица е същата, но се взимат най-малко срещаните думи
Вижда се, че по-рядко срещаните думи се намират в документи с по-високранг
Crimes – Annotated Content
Показани са анотирани 6 документа в html формат. Избрани са:
1 от топ 5, 1 с тотал 80, 1 с тотал 60, 1 с тотал 4, 1 с тотал 20 и последният с тотал 4
Бъдещо развитие на проекта
Настоящият проект вероятно ще бъде използван като основа на проекта за PhD.
Насоки за развитие-
Подобряване на разпознаването на Хора, Организации и Локации
Класифициране на действията като деструктивни с различни степени на понятието – например единични
случаи на убийства на човек/семейство, рецидививиращи убийства и интересното за темата – масовите
убийства и терористичните актове.
Чрез кореферентен анализ да се намирят активни и пасивни субекти – такива, които извършват деструктивно
действие и жертви на такова.
От всички локации да се изолират само тези, където се извършват подобни действия. Да се намерят събития в
близост до локациите – например световни спортни мероприятия, които биха могли да бъдат използвани като
възможност.
Да бъде направен анализ на последователността на датите, когато такива актове се извършват и евентуално да
се направи прогноза за последващ такъв.
...
Литература
Introduction to Information Retrieval by Christopher D. Manning, Hinrich Schütze, Prabhakar Raghavan
Лекциите по „Извличане на Информация“ на доц. Койчев
GATE
GATE embedded
ANNIE: a Nearly-New Information Extraction System
Co-reference in Gate
Shallow Methods for Named Entity Coreference Resolution
Nutch
https://javalibs.com/artifact/org.apache.gora/gora-goraci
http://gora.apache.org/current/gora-mongodb.html
http://people.apache.org/~alfonsonishikawa/gora-174-notes.html
http://people.apache.org/~alfonsonishikawa/gora-174-notes.html
http://stackoverflow.com/questions/27450666/nutch-gora-and-mongodb
http://svn.apache.org/repos/asf/gora/trunk/
ElasticSearch
https://www.elastic.co/guide/en/elasticsearch/reference/2.0/search-aggregations-bucket-nested-
aggregation.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-percentile-rank-
aggregation.html
https://qbox.io/blog/introduction-to-elasticsearch-scripting
https://www.elastic.co/guide/en/elasticsearch/reference/2.0/nested.html
https://discuss.elastic.co/t/json-query-in-kibana-4/26128
https://www.elastic.co/guide/en/elasticsearch/guide/current/proximity-matching.html
MongoDB
http://www.tutorialspoint.com/mongodb/
http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/
https://docs.mongodb.com/getting-started/java/indexes/
https://docs.mongodb.com/getting-started/java/aggregation/
Kibana
https://www.digitalocean.com/community/tutorials/how-to-use-kibana-dashboards-and-visualizations
https://github.com/stormpython/heatmap
https://github.com/stormpython/tagcloud
http://logz.io/blog/kibana-visualizations/
Eclipse
http://www.vogella.com/tutorials/EclipsePlugIn/article.html
Различни други източници от интернет:
http://www.aossama.com/search-engine-with-apache-nutch-mongodb-and-elasticsearch/
http://cmusphinx.sourceforge.net/2012/06/building-a-java-application-with-apache-nutch-and-solr/
https://datayo.wordpress.com/2015/09/09/apache-nutch/
https://gist.github.com/xrstf/b48a970098a8e76943b9
https://spring.io/guides/gs/gradle/#initial
http://blog.ajduke.in/2013/04/10/install-setup-and-start-mongodb-on-windows/

More Related Content

Viewers also liked

Acquiring Your First Users Out of Thin Air by Kathryn Minshew
Acquiring Your First Users Out of Thin Air by Kathryn MinshewAcquiring Your First Users Out of Thin Air by Kathryn Minshew
Acquiring Your First Users Out of Thin Air by Kathryn MinshewLean Startup Co.
 
Аппарат Дюна-Т инструкция по применению
Аппарат Дюна-Т инструкция по применениюАппарат Дюна-Т инструкция по применению
Аппарат Дюна-Т инструкция по применениюDao Market
 
Frame Before You Build, Measure, Learn by Zach Nies
Frame Before You Build, Measure, Learn by Zach NiesFrame Before You Build, Measure, Learn by Zach Nies
Frame Before You Build, Measure, Learn by Zach NiesLean Startup Co.
 
sungrouprealestateLogo
sungrouprealestateLogosungrouprealestateLogo
sungrouprealestateLogoTina Wang
 
How You Can Start the Next Zipcar by Robin Chase
How You Can Start the Next Zipcar by Robin ChaseHow You Can Start the Next Zipcar by Robin Chase
How You Can Start the Next Zipcar by Robin ChaseLean Startup Co.
 
Instituionalizing Innovation by Diane Tavenner
Instituionalizing Innovation by Diane TavennerInstituionalizing Innovation by Diane Tavenner
Instituionalizing Innovation by Diane TavennerLean Startup Co.
 
CV 9+Yrs Exp Manjunatha V
CV 9+Yrs Exp Manjunatha VCV 9+Yrs Exp Manjunatha V
CV 9+Yrs Exp Manjunatha VManjunatha V
 
October 2016 replacement resume.docx one
October 2016 replacement resume.docx oneOctober 2016 replacement resume.docx one
October 2016 replacement resume.docx oneLloyd Fruhschien
 

Viewers also liked (12)

Acquiring Your First Users Out of Thin Air by Kathryn Minshew
Acquiring Your First Users Out of Thin Air by Kathryn MinshewAcquiring Your First Users Out of Thin Air by Kathryn Minshew
Acquiring Your First Users Out of Thin Air by Kathryn Minshew
 
Аппарат Дюна-Т инструкция по применению
Аппарат Дюна-Т инструкция по применениюАппарат Дюна-Т инструкция по применению
Аппарат Дюна-Т инструкция по применению
 
Frame Before You Build, Measure, Learn by Zach Nies
Frame Before You Build, Measure, Learn by Zach NiesFrame Before You Build, Measure, Learn by Zach Nies
Frame Before You Build, Measure, Learn by Zach Nies
 
sungrouprealestateLogo
sungrouprealestateLogosungrouprealestateLogo
sungrouprealestateLogo
 
How You Can Start the Next Zipcar by Robin Chase
How You Can Start the Next Zipcar by Robin ChaseHow You Can Start the Next Zipcar by Robin Chase
How You Can Start the Next Zipcar by Robin Chase
 
Instituionalizing Innovation by Diane Tavenner
Instituionalizing Innovation by Diane TavennerInstituionalizing Innovation by Diane Tavenner
Instituionalizing Innovation by Diane Tavenner
 
Director of HHS
Director of HHSDirector of HHS
Director of HHS
 
CV 9+Yrs Exp Manjunatha V
CV 9+Yrs Exp Manjunatha VCV 9+Yrs Exp Manjunatha V
CV 9+Yrs Exp Manjunatha V
 
Diploma MTSU
Diploma MTSUDiploma MTSU
Diploma MTSU
 
October 2016 replacement resume.docx one
October 2016 replacement resume.docx oneOctober 2016 replacement resume.docx one
October 2016 replacement resume.docx one
 
J. Neal Ref Letter
J. Neal Ref LetterJ. Neal Ref Letter
J. Neal Ref Letter
 
SoumyaCV-2016
SoumyaCV-2016SoumyaCV-2016
SoumyaCV-2016
 

Project_LyubkaGenova

  • 1. “Извличане на информация от статии, свързани с престъпления” Проект по “Извличане на информация“ на Любка Ташева Генова, Докторант, задочна форма на обучение юли 2016 ФМИ СУ „Св. Климент Охридски
  • 2. Contents Задача на курсовата работа......................................................................................................................................4 Избрано технологично решение ................................................................................................................................4 Apache Nutch.................................................................................................................................................................4 GORA.............................................................................................................................................................................4 MongoDB.......................................................................................................................................................................4 Gate...............................................................................................................................................................................4 Elastic search..................................................................................................................................................................4 Kibana............................................................................................................................................................................4 Java................................................................................................................................................................................4 Алгоритъм .....................................................................................................................................................................4 Crawl с Nutch.................................................................................................................................................................4 Injector job.........................................................................................................................................................................................................................4 Generator job.....................................................................................................................................................................................................................4 Fetcher job..........................................................................................................................................................................................................................4 Parser job............................................................................................................................................................................................................................4 DB updater job...................................................................................................................................................................................................................4 Процесване...................................................................................................................................................................5 Процесване на събраните документи - GATE..........................................................................................................................................................5 Събиране и едновременно филтриране на колекции от фрази ........................................................................................................................5 Намиране на косинусова прилика..............................................................................................................................................................................5 Намиране на TF-IDF.........................................................................................................................................................................................................6 Намиране на Обща оценка...........................................................................................................................................................................................6 Обновяване на златния списък....................................................................................................................................................................................7 Финална фаза ...............................................................................................................................................................7 Косинусова прилика:......................................................................................................................................................................................................7 CosineSim_Title............................................................................................................................................................................................................7 CosineSim_Content .....................................................................................................................................................................................................7 GateAnnotations_[колекция]_Total - .....................................................................................................................................................................7
  • 3. Total_PosNeg_AdjAdv, Total_PosNeg_VN ..............................................................................................................................................................7 Нормализация..................................................................................................................................................................................................................8 Обща оценка ...............................................................................................................................................................................................................8 Elastic индекс................................................................................................................................................................8 Kibana............................................................................................................................................................................9 Резултат......................................................................................................................................................................10 Crimes – Searches and Totals........................................................................................................................................ 10 Crimes – Annotations over totals .................................................................................................................................. 10 Crimes – HeatMaps....................................................................................................................................................... 12 Crimes – Annotated Content......................................................................................................................................... 13 Бъдещо развитие на проекта ..................................................................................................................................14 Литература.................................................................................................................................................................15
  • 4. Задача на курсовата работа Да се съберат статии, свързани с престъпления и да се извлекат от тях често срещани фрази, имена на хора и организации. Самите документи и намерените фрази да се подредят по определени критерии и да се покажат зависимости между тях Избрано технологично решение Apache Nutch като web crawler за намиране, събиране и парсиране на страниците- солиден, конфигурируем, позволява да се работи с HBase, MongoDB, CouchDB GORA за връзка между Nutch и MongoDB MongoDB за запазване на данните Gate за обработка и анотиране на събраните страници Elastic search за индексиране на документите Kibana за визуализация на резултата и по-лесно извършване на част от търсeнията Java за интеграция на модулите и извършване на допълнителна обработка Алгоритъм Crawl с Nutch Неколкократна итерация на следните стъпки Injector job на Nutch – взима URL-лите от сийд файла seed.txt Generator job – прави списък с URL-лите, които ще бъдат изтеглени като страници Fetcher job – Обхожда и взима съдържанието и метаданните за всеки от горните URL-ли Parser job – Изчиства съдържанието на страниците от html тагове и го предоставя като plain text DB updater job – вкарва данните, получени на предната стъпка в базата
  • 5. Процесване На всеки 5 итерации на горните стъпки се прави еднократно и Процесване на събраните документи - GATE  Document Reset PR  ANNIE English Tokeniser  ANNIE Gazetteer  ANNIE Sentence Splitter  ANNIE POS Tagger  ANNIE NE Transducer  ANNIE OrthoMatcher  ANNIE Pronominal Coref Събиране и едновременно филтриране на колекции от фрази  Хора  Организации  Локации  Прилагателни и Наречия  Глаголи и съществителни Намиране на косинусоваприлика на всеки документ с така наречения „златен стандарт“ – списък от думи, който първоначално е въведен на ръка, като на всяка итерация се обогатява с думи, които имат най-голяма тежест от всички най-високо оценени документи (подробно – по-надолу) o За всеки документ, който има косинусова прилика > 0, подредени в намаляващ ред според косинусовата им прилика със златния стандарт
  • 6. за всяка фраза от списъците се намира обща оценка на това доколко тя би се считала за свързана логически към понятието „престъпления“ Тотал_на косинусовата_прилика = 2 * [косинусовата прилика на вектора, съставен от корена на фразата с вектора на „златния стандарт“] + [косинусовата прилика на вектора, съставен от корена на фразата с вектора на „думите с негативно значение“] - [косинусовата прилика на вектора, съставен от корена на фразата с вектора на „думите с позитивно значение“] Думите на златния стандарт, положителните и отрицателните списъци се пазят съответно във файловете в Сonf папката – goldStandard.txt, positiveWords.txt, negativeWords.txt Намиране на TF-IDF За всяка фраза се намира TF-IDF стойността й за колекцията документи, където TF = 0.6 + 0.4 * TFd / maxTFd – ползва се нормализираната стойност на честотата на срещане на термина в документа спрямо максималната стойност на честота на термин в документа, за да се неутрализира аномалията, която се получава от влиянието на многото срещания на термина, ако документът е дълъг. 0.6 е изглаждащият фактор, чиято роля е да контролира тежестта на TFd/maxTFd IDF = numDocs / numDocsContainingP, където numDocs е общият брой документи, а numDocsContainingP е броят документи, съдържащи термина TF-IDF = tf * idf Намиране на Обща оценка За всяка фраза се намира тотал = Cos + TF-IDF Фразите са подреждат низходящо по обща оценка и се ограничават до топ 10 елемента
  • 7. Обновяванена златния списък За всеки документ в топ 100 се избират топ 2 фрази от Хора, Организации и топ 3 от Прилагателни_Наречия и Глаголи_Съществителни и се добавят към списъка със златни думи, ако коренът им вече не е вкаран там Ръчно се редактира списъка със златни думи, за да се премахнат ненужните думи(първите 4 итерации на документа са в папката на проекта, като и показано кои са добавени автоматичне и кои премахнати ръчно Накратко казано, до момента имаме събрани статии според запитване под формата на списък от златни думи, което неколкотратно е подобрявано Финална фаза Извършва се отново: Последователно се изпълняват логическите модули на GATE, след което се извършва допълнителната обработка, като оценката е вече спрямо новия списък със златни думи, а резултатът е не само списък от нови златни думи, но и самите списъци с фрази се сериализират и вкарват в базата, заедно с анотираното съдържание на документите Косинусоваприлика: Намира се CosineSim_Title - на заглавието CosineSim_Content - на съдържанието GateAnnotations_[колекция]_Total -общ тотал за цяла колекция за всяка от колекциите Total_PosNeg_AdjAdv, Total_PosNeg_VN - общ тотал на корелация на Прилагателни_Наречия и Глаголи_Съществителни с позитивните и негативните списъци
  • 8. Нормализация Оценките се нормализират в границите 1-100 и се изчислява обща крайна оценка на документа Обща оценка Total = 2 * косСъдържание + косЗаглавие + тоталПрилНар + тоталГлСъщ Elastic индекс с документите, а списъците се десериализират до полета от индекса {"nutch":{"aliases":{}, "mappings":{"doc":{"properties":{"ContentAnnotated":{"type":"string"}, "CosineSim_Content":{"type":"float"}, "CosineSim_Title":{"type":"float"}, "GateAnnotations_Address":{"type":"string"}, "GateAnnotations_Address_Total":{"type":"string"}, "GateAnnotations_Date":{"type":"string"}, "GateAnnotations_Date_Total":{"type":"string"}, "GateAnnotations_Location":{"type":"string"}, "GateAnnotations_Location_Total":{"type":"string"}, "GateAnnotations_Organization":{"type":"string"}, "GateAnnotations_Organization_Total":{"type":"string"}, "GateAnnotations_Person":{"type":"string"}, "GateAnnotations_Person_Total":{"type":"string"}, "GateAnnotations_TokenAdjAdv":{"type":"string"}, "GateAnnotations_TokenAdjAdv_Total":{"type":"string"}, "GateAnnotations_Token_AdjAdv":{"type":"string"}, "GateAnnotations_Token_AdjAdv_Total":{"type":"string"}, "GateAnnotations_Token_VN":{"type":"string"}, "GateAnnotations_Token_VN_Total":{"type":"string"}, "Total":{"type":"float"}, "Total_PosNeg_AdjAdv":{"type":"float"}, "Total_PosNeg_VN":{"type":"float"}, "anchor":{"type":"string"}, "boost":{"type":"string"}, "cache":{"type":"string"}, "content":{"type":"string"}, "content________________________________________":{"type":"string"}, "digest":{"type":"string"}, "host":{"type":"string"}, "id":{"type":"long"}, "title":{"type":"string"}, "title____________________________":{"type":"string"}, "tstamp":{"type":"date", "format":"strict_date_optional_time||epoch_millis"}, "url":{"type":"string"}}}}, "settings":{"index":{"creation_date":"1467544885387","number_of_shards":"5","number_of_replicas":"1", "uuid":"wuZGcWeFRd-sx55QGS2GHw","version":{"created":"2020099"}}},"warmers":{}}}
  • 9. Kibana Създават се подходящи търсения, визуализации, които се групират и подреждат на няколко екрана
  • 10. Резултат Crimes – Searches and Totals в тази група визуализации се показва Таблица с основните колони, подредена низходящо по обща оценка Кръгова диаграма с разпределението на общата оценка по брой документи, таблица с междинните оценки една спрямо друга и крива на общата оценка спрямо броя документи Crimes – Annotations over totals в тази група визуализации се показват по редове данни за ГлаголиСъществителни, ПрилагателниНаречия и Хора Първата колона: фразите са представени като тагове с различна големина, в зависимост от най- голямата стойност на крайната оценка на документите, в които се срещат Втората колона: корелацията между междинните оценки, показана в зависимост от съответната група фрази – от тези радар-диаграми се вижда, че най-добре корелират Крайната оценка и ТоталПрилагателниНаречия, както и има подобна връзка между оценките на заглавиете и съдържанието, вижда се също, че крайната оценка е правопорционална на оценката на заглавието и обратно-пропорционална на оценката на ГлаголиСъществителни
  • 11. В третата колона са предоставени стълбове по хистограмата на крайната оценка, разбити на секции за всяка дума според най-голямата стойност на крайната оценка
  • 12. Crimes – HeatMaps в тази група визуализации се показват Първата таблица показва като редове ГлаголиСъществителни и като колони ПрилагателниНаречия, подредени низходящо по брой документи, в които се срещат, а цветът на клетката се определя от средната стойност на крайната оценка Втората таблица е същата, но се взимат най-малко срещаните думи Вижда се, че по-рядко срещаните думи се намират в документи с по-високранг
  • 13. Crimes – Annotated Content Показани са анотирани 6 документа в html формат. Избрани са: 1 от топ 5, 1 с тотал 80, 1 с тотал 60, 1 с тотал 4, 1 с тотал 20 и последният с тотал 4
  • 14. Бъдещо развитие на проекта Настоящият проект вероятно ще бъде използван като основа на проекта за PhD. Насоки за развитие- Подобряване на разпознаването на Хора, Организации и Локации Класифициране на действията като деструктивни с различни степени на понятието – например единични случаи на убийства на човек/семейство, рецидививиращи убийства и интересното за темата – масовите убийства и терористичните актове. Чрез кореферентен анализ да се намирят активни и пасивни субекти – такива, които извършват деструктивно действие и жертви на такова. От всички локации да се изолират само тези, където се извършват подобни действия. Да се намерят събития в близост до локациите – например световни спортни мероприятия, които биха могли да бъдат използвани като възможност. Да бъде направен анализ на последователността на датите, когато такива актове се извършват и евентуално да се направи прогноза за последващ такъв. ...
  • 15. Литература Introduction to Information Retrieval by Christopher D. Manning, Hinrich Schütze, Prabhakar Raghavan Лекциите по „Извличане на Информация“ на доц. Койчев GATE GATE embedded ANNIE: a Nearly-New Information Extraction System Co-reference in Gate Shallow Methods for Named Entity Coreference Resolution Nutch https://javalibs.com/artifact/org.apache.gora/gora-goraci http://gora.apache.org/current/gora-mongodb.html http://people.apache.org/~alfonsonishikawa/gora-174-notes.html http://people.apache.org/~alfonsonishikawa/gora-174-notes.html http://stackoverflow.com/questions/27450666/nutch-gora-and-mongodb http://svn.apache.org/repos/asf/gora/trunk/ ElasticSearch https://www.elastic.co/guide/en/elasticsearch/reference/2.0/search-aggregations-bucket-nested- aggregation.html https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-percentile-rank- aggregation.html https://qbox.io/blog/introduction-to-elasticsearch-scripting https://www.elastic.co/guide/en/elasticsearch/reference/2.0/nested.html https://discuss.elastic.co/t/json-query-in-kibana-4/26128 https://www.elastic.co/guide/en/elasticsearch/guide/current/proximity-matching.html MongoDB http://www.tutorialspoint.com/mongodb/ http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/
  • 16. https://docs.mongodb.com/getting-started/java/indexes/ https://docs.mongodb.com/getting-started/java/aggregation/ Kibana https://www.digitalocean.com/community/tutorials/how-to-use-kibana-dashboards-and-visualizations https://github.com/stormpython/heatmap https://github.com/stormpython/tagcloud http://logz.io/blog/kibana-visualizations/ Eclipse http://www.vogella.com/tutorials/EclipsePlugIn/article.html Различни други източници от интернет: http://www.aossama.com/search-engine-with-apache-nutch-mongodb-and-elasticsearch/ http://cmusphinx.sourceforge.net/2012/06/building-a-java-application-with-apache-nutch-and-solr/ https://datayo.wordpress.com/2015/09/09/apache-nutch/ https://gist.github.com/xrstf/b48a970098a8e76943b9 https://spring.io/guides/gs/gradle/#initial http://blog.ajduke.in/2013/04/10/install-setup-and-start-mongodb-on-windows/