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: object

Vytvoří 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.fulltext.find_project_code(text: str, prog_select: str | list = None) list[source]

Vyhledá v textu kódy projektů.

Parameters:
  • text – vstupní text

  • prog_select – kód programu nebo list kódů programů, jejichž projekty nás specificky zajímají

Returns:

list kódů projektů v textu

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

Module contents