NLP as a Service - slovak texts analysis
NLP pipeline (system architecture)
From text to token sequence (NLP modules).
- -> Text Preprocessors
- -> Tokenization (Word / Sentence boundary identification)
- -> Restoration (Diacritic restoration, Abbreviation restoration)
- -> POS tagging
- -> Lemmatization
- -> Stemming
- -> Semantic tagging (NER, SCR, ...)
- -> Relationship tagging (Coreferences, Appositions,...)
- -> Sentiment analysis
- -> Linked Open Data (LOD)
- -> Resolvers
- -> Output Formatter
API Documentation
POST: http://arl6.library.sk/nlp4sk/api
Parameter | Possible values | Required |
---|---|---|
text | Text, ktorý chcem analyzovať. | Y |
apikey | DEMO | Y |
TextPreprocessor | BasicTextPreprocessor | ExtendedTextPreprocessor | ... | N |
tokenizer | WhiteSpaceTokenizer | WhiteSpaceAndPunctuationTokenizer | SmartRuleTokenizer | N |
textrestorer | DictionaryDiacriticRestorer | ProbabilisticDiacriticRestorer | N |
lemmatizer | DictionaryLemmatizer | ProbabilisticLemmatizer | N |
stemmer | DictionaryStemmer | ProbabilisticStemmer | N |
postagger | DictionaryPOSTagger | IntersectionPOSTagger | ProbabilisticPOSTagger | N |
semantictaggers[] | BasicNERTagger | BasicSCRTagger | NumberTagger | TemporalTagger | ContextualNERTagger | ... | N |
sentimentanalyser | DictionarySentimentAnalyser | ExtendedSentimentAnalyser | ... | N |
resolvers[] | NERResolver | LegalDocumentResolver ... | N |
formatters[] | POSFineGrainedFormatter | POSCoarseGrainedFormatter | ... | N |
Output example
[{ "word": "Text", "meta": "{S}", "pos": [ "SSis1" ], "lemma": [ "text" ], "ner": [], "scr": []},{ "word": ",", "pos": [ "Z" ], "lemma": [ null ], "ner": [], "scr": []},{ "word": "ktorý", "pos": [ "PAis1" ], "lemma": [ "ktorý" ], "ner": [], "scr": []},{ "word": "chcem", "pos": [ "VKesa" ], "lemma": [ "chcieť" ], "ner": [], "scr": []},{ "word": "analyzovať", "pos": [ "VIe" ], "lemma": [ "analyzovať" ], "ner": [], "scr": []},{ "word": ".", "meta": "{/S}", "pos": [ "Z" ], "lemma": [ null ], "ner": [], "scr": []}]
Demo
Modules
Brief description of several modules (in slovak language).
TextPreprocessors
- BasicTextPreprocessor - BasicTextPreprocessor
Základná úprava vstupného textu (odstránenie HTML tagov, referencií, nesprávneho kódovania... - LawTextPreprocessor - LawTextPreprocessor
Korekcia právnických textov
Tokenizers
- SmartRuleTokenizer - Tokenizer využívajúci naučené pravidlá
Rozdelí text na tokeny na základe bielych znakov a množiny špeciálnych pravidiel slovenského jazyka (zaužívané písanie čísiel, skratiek a pod.). - WhitespaceAndPunctuationTokenizer -
Rozdelí text na tokeny na základe bielych znakov a špeciálnych znakov (napr. bodka, čiarka ...). - WhitespaceTokenizer -
Rozdelí text na tokeny na základe bielych znakov.
TextRestorers
- AbbreviationRestorer - Rekonštrukcia skratiek a akronymov
Identifikácia skratiek a akronymov v texte - DictionaryDiacriticRestorer - DictionaryDiacriticRestorer
Identifikácia diakritiky na základe slovníka. - ProbabilisticDiacriticRestorer - ProbabilisticDiacriticRestorer
Identifikácia diakritiky na základe pravdepodobnosti. - ProbabilisticDiacriticRestorerPlus - ProbabilisticDiacriticRestorerPlus
Identifikácia diakritiky na základe pravdepodobnosti. - SlangRestorer - Rekonštrukcia slangových slov
Rekonštrukcia slangových slov v texte - TypoRestorer - Rekonštrukcia preklepov
Rekonštrukcia preklepov v texte
POSTaggers
- DictionaryPOSTagger - Slovníkový Tagger
Identifikácia slovných druhov na základe slovníka. - DictionarySlangPOSTagger - Slovníkový Tagger
Identifikácia slovných druhov na základe slovníka. - IntersectionPOSTagger - Prienikový Tagger
Identifikácia slovných druhov a gramatických kategórií na základe prieniku všetkých možností uvedených v slovníku. - ProbabilisticPOSTagger - Pravdepodobnostný (štatistický) Tagger
Identifikácia slovných druhov na základe pravdepodobnosti.
Lemmatizers
- DictionaryLemmatizer - Slovníkový lematizér
Identifikácia základných tvarov slov na základe slovníka. - ProbabilisticLemmatizer - Pravdepodobnostný lematizér
Identifikácia základných tvarov slov na základe pravdepodobnosti.
Stemmers
- DictionaryStemmer - Slovníkový stemmer
Identifikácia koreňov slov na základe slovníka. - ProbabilisticStemmer - Pravdepodobnostný stemmer
Identifikácia koreňov slov na základe pravdepodobnosti.
SemanticTaggers
- BasicNERTagger - Základný NER (identifikácia názvoslovných entít)
Priradí informáciu o entite zo slovníka pre slová, ktoré sa začínajú veľkým písmenom (PER = osoba, LOC = lokalita, ORG = organizácia). - BasicNERTaggerTeam13 - BasicNERTaggerTeam13
Experimentálny NER pre Tím 13. - BasicSCRMWETagger - Základný SCR MWE (Sense Category Recognizer) - rozpoznávač kategórií slov.
Priradí informáciu zo slovníka pre slová určitých slovných druhov - BasicSCRTagger - Základný SCR (Sense Category Recognizer) - rozpoznávač kategórií slov.
Priradí informáciu zo slovníka pre slová určitých slovných druhov - ContextualNERTagger - Kontextový NER
Priradí značku entity na základe kontextu (okolia slova), bez použitia slovníka. - NumberTagger - Identifikácia číselných údajov
Priradí značky súvisiacie s čislom (percento, hodnota, mena). - QuantityUnitTagger - Identifikácia pre jednotky (OTH/units)
Priradí značky pre fyzikálne jednotky a veličiny . - TemporalTagger - Identifikácia pre časové údaje (TMP/* => TMP/date,TMP/time,TMP/year,TMP/month,TMP/day,TMP/day_of_week)
Priradí značky pre časové údaje tokenom na základe lexikálnych a syntaktických pravidiel (rok, mesiac, deň, dátum, čas, ...). - UnitTagger - Identifikácia pre jednotky (OTH/units)
Priradí značky pre fyzikálne jednotky a veličiny .
RelationshipTaggers
- CoreferenceTagger - Identifikácia koreferencií
SentimentAnalysers
- DictionarySentimentAnalyser - DictionarySentimentAnalyser
Identifikácia sentimentu viet na základe slovníkov vyjadrujúcich polaritu slova + základné pravidlá pri použití negácie, intenzifikátorov (slov zvyšujúcich intenzitu) a deminutív (slov znižujúcich intenzitu). - ExtendedSentimentAnalyser - ExtendedSentimentAnalyser
Identifikácia sentimentu tokenov - specialny pristup bez nazvu 2
LODRecognizers
- LODRecognizer - LODRecognizer
Prepojí pojmy na otvorené a prepojené dáta (Linked Open Data).
Resolvers
- LegalDocumentResolver - Rekonštrukcia pojmov z oblasti práva
Rekonštrukcia pojmov z právnických dokumentov - NERResolver - Vyladenie NER
Vyladenie zajužívaných pojmov v slovenčine.
OutputFormatters
- BaseFormatter -
- CoarseGrainedFormatter -
Coarse formatter pre: POS, NER, CSR (slovné druhy bez gramatických kategórií) - FineGrainedFormatter -
Fine Formatter pre: POS, NER, CSR (slovné druhy vrátane gramatických kategórií - rod, čislo, pád, osoba, čas) - LemmatizationFormatter -
- NERCoarseGrainedFormatter -
NER Coarse - NERFineGrainedFormatter -
NER Fine - POSCoarseGrainedFormatter -
POS Coarse - POSFineGrainedFormatter -
POS Fine - SCRCoarseGrainedFormatter -
SCR Coarse - SCRFineGrainedFormatter -
SCR Fine - SCRMWEMerger -
SCR MWE token merger - SentenceSentimentFormatter -
Sentence sentiment formatter - SentimentKinit3classFormatter -
Kinit sentiment formatter - - SentimentKinit8classFormatter -
Kinit sentiment formatter - 7class + no sentiment - SimplePOSCoarseFormatter -
- SimplePOSFormatter -