tacrpy.nlp package
Submodules
tacrpy.nlp.fulltext module
Modul pro fulltextovou práci s texty např. extrahování informací, podobnost dokumentů.
- class tacrpy.nlp.fulltext.FulltextSimilarity(lemma_corpus_comparison: DataFrame, lemma_corpus_reference: DataFrame = None)[source]
Bases:
objectVytvoří podobnost mezi porovnávanými (kontrolovanými) a referenčními dokumenty.
- Parameters:
corpus_comparison (DataFrame) – soubor dokumentů k porovnání (včetně ID)
corpus_reference (DataFrame) – soubor dokumentů, vůči kterým porovnáváme (včetně ID)
lemma_comparison (list) – lemmatizované dokumenty k porovnání
lemma_reference (list) – lemmatizované dokumenty, vůči kterým porovnáváme
document_ids (list) – unikatní ID všech nahraných dokumentů
features (ndarray) – seznam slov a slovních spojení v modelu TF-IDF
tfidf_matrix (ndarray) – matice dokumentů a slov/slovních spojení (features)
cos_sim (ndarray) – matice podobných dokumentů
similar_documents (DataFrame) – dvojice podobných dokumentů včetně skóre podobnosti
include_comparison (bool) – zahrne porovnávané (kontrolované) dokumenty k referenčním
threshold (float) – hranice podobnosti (hodnoty 0-1), nad kterou chceme vyextrahovat podobné dokumenty
- add_info(comparison_info: DataFrame, reference_info: DataFrame = None) DataFrame[source]
Přidá k dvojicím podobných dokumentů další informace (např. název a cíle projektu, stavy projektů atd.).
- Parameters:
comparison_info – informace o kontrolovaných dokumentech
reference_info – informace o referenčních dokumentech
- Returns:
dvojice podobných projektů včetně dalších informací
- create_similarity(include_comparison: bool = False, **kwargs) FulltextSimilarity[source]
Vytvoří matici podobností na základě cosine similarity.
Pokud neexistují referenční dokumenty, tak porovnává kontrolované dokumenty mezi sebou. V případě parametru _include_comparison_ se porovnávají kontrolované dokumenty vůči referenčním i kontrolovaným.
- Parameters:
include_comparison – zahrne porovnávané (kontrolované) dokumenty k referenčním
- create_tfidf(**kwargs) FulltextSimilarity[source]
Vytvoří TF-IDF reprezentaci dokumentů.
Více o využití [TF-IDF](https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html)
- get_similar_documents(threshold: float = 0.5, include_comparison: bool = False, remove_duplicates: bool = True, **kwargs) DataFrame[source]
Vyextrahuje dvojice podobných dokumentů na základě hranice podobnosti.
Umožňuje odstranit duplicitní dvojice např. dvojice dokument1 a dokument2 je stejná jako dokument2 a dokument1.
- Parameters:
threshold – hranice podobnosti (hodnoty 0-1), nad kterou chceme vyextrahovat podobné dokumenty
include_comparison – zahrne porovnávané (kontrolované) dokumenty k referenčním
remove_duplicates – odstraní duplicitní dvojice
- Returns:
dvojice podobných dokumentů (repreznetované jako ID) a skóre podobnosti
tacrpy.nlp.preprocessing module
Tento modul slouží k předzpracování textových dat pro další využití v textových analýzích (NLP).
- tacrpy.nlp.preprocessing.create_corpus(df: DataFrame) DataFrame[source]
Vytvoří corpus (soubor textů) k dalšímu zpracování v textových analýzách.
- Parameters:
df – vstupní dataframe, kde první sloupec je ID a další sloupce obsahují textové informace
- Returns:
dataframe s ID a corpus textů
- tacrpy.nlp.preprocessing.text_cleaning(text: str) str[source]
Odstraní všechny netextové znaky.
- Parameters:
text – text k vyčištění
- Returns:
vyčištěný text
- tacrpy.nlp.preprocessing.text_lemmatization(text: str, model: Model) str[source]
Pro český text vytvoří lemmatizované tvary.
- Parameters:
text – text k lemmatizaci
model – UDPipe model, který slouží k lemmatizovaní českých slov
- Returns:
lemmatizovaný text
- tacrpy.nlp.preprocessing.text_preprocessing(text: str, model: Model) str[source]
Předzpracování (vyčištění a lemmatizace) českého textu pro další využití v textových analýzách.
- Parameters:
text – text k předzpracování
model – UDPipe model, který slouží k lemmatizovaní českých slov
- Returns:
předzpracovaný text
- tacrpy.nlp.preprocessing.text_preprocessing_bulk(df: DataFrame, model: Model) DataFrame[source]
Hromadné předzpracování __českého__ textu pro další využití v textových analýzách.
- Parameters:
df – vstupní dataframe, kde první sloupec je ID a další sloupce obsahují textové informace
model – UDPipe model, který slouží k lemmatizovaní českých slov
- Returns:
dataframe s předzpracovanými texty
tacrpy.nlp.semantic module
Modul pro vytváření sémantických embeddingů a dalších funkcí.
- tacrpy.nlp.semantic.get_embeddings(text: str, model: SentenceTransformer, sent_tokenize: bool = True) ndarray[source]
Převede text na sémantické embeddingy (vektor).
Umožňuje převést kratší i delší text na embeddingy. Pokud je sent_tokenize True, tak nejdříve zákoduje jednotlivé věty a pak jednotlivé věty zprůměruje k zákodování celého textu. V případě, že je False, tak zákoduje text jako celek. Druhá varianta lépe zachytí celkový kontext, ale většina SentenceTransformer modelů umí najednou zpracovat pouze určité množství tokenů (např. 128 tokenů, což to odpovídá cca třem průměrným větám), po tomto množství kvalita klesá.
- Parameters:
text – text, který chceme zakódvat do embeddingů
model – SentenceTransformer model, podle kterého se text zakóduje do embeddingů
sent_tokenize – pokud je nastavený, tak nejdříve zakóduje jednotlivé věty a až pak celý text.
- Returns:
embeddingový vektor vstupního textu